Daily report on new leads from Kommo
Business task
A sales manager needs to see every morning how many new leads came in over the previous day, which sources they came from, which managers they were assigned to, and which pipelines they're in. This lets you monitor manager workload, evaluate lead quality by source, and respond quickly to spikes or drops in inbound flow.
Connections
This report requires a Kommo CRM connection.
- Connector:
kommo - Required permissions:
crm_read(read access to Kommo entities) - Connection status:
active - Entities in the report: deals (lead), contacts (contact), companies (company), pipelines (pipeline)
- Setup: in the connection settings, select the pipelines that should be included in the report
If Kommo uses multiple pipelines, make sure all the necessary ones are selected in the connection settings. Pipelines that aren't selected won't appear in the report.
Report settings
- Name:
New Kommo leads from yesterday - Report type: operational CRM report
- Data source: all
kommoconnections - Date range:
yesterday - Grouping: by lead source, responsible manager, pipeline, and deal status
- Sorting: by lead count, descending
- Timezone:
Europe/Moscow
Parameters
{
"date_range": "yesterday",
"group_by": ["lead_source", "responsible_user", "pipeline_name", "status_name"],
"sort": { "field": "leads_count", "direction": "desc" },
"timezone": "Europe/Moscow",
"limit": 1000
}yesterday ensures that when run daily, the report always looks at the previous day. For extended analysis, switch to last_7_days and add grouping by creation date.
Metrics
| Metric | Type | Description |
|---|---|---|
leads_count | number | Number of new leads |
contacts_count | number | Number of new contacts |
companies_count | number | Number of new companies |
deals_with_contact | number | Deals with a linked contact |
leads_without_manager | number | Unassigned leads with no responsible manager |
Calculated metric:
{
"calculated_metrics": [
{
"name": "assignment_rate",
"formula": "IF([leads_count] > 0, ([leads_count] - [leads_without_manager]) / [leads_count] * 100, 0)",
"type": "percent",
"description": "Percentage of leads assigned to a manager"
}
]
}If assignment_rate is below 95%, there are unassigned leads that need a manager's attention.
Filters
{
"logic": "AND",
"conditions": [
{
"field": "is_deleted",
"operator": "EQUAL",
"value": "false"
},
{
"field": "created_date",
"operator": "GREATER_OR_EQUAL",
"value": "2026-07-01"
}
]
}is_deleted = false— excludes deleted dealscreated_date >= 2026-07-01— a safeguard against old data slipping in
To analyze a specific source: lead_source EQUAL "website_form" or lead_source IN ["instagram", "telegram", "facebook"].
Write mode
Mode: AppendDedup
CRM leads are a growing stream. Yesterday's leads don't change, so there's no need to rewrite the entire history every day. It's enough to append new records with deduplication on lead_id + created_date.
If leads can change status retroactively, use SoftRefresh.
Schedule
{
"schedule": {
"enabled": true,
"interval": "daily",
"time": "08:30",
"timezone": "Europe/Moscow",
"retry_on_failure": true,
"max_retries": 2
}
}Daily at 8:30 AM. Only 2 retries — yesterday's data is definitely already available, so additional attempts would be unnecessary.
Expected result
- Status:
completed - Row count: sources × managers × pipelines × statuses (typically 30-150 rows)
- Key metrics: total lead count, breakdown by source, manager workload, assignment percentage
- Interpretation: a low
assignment_ratemeans unassigned leads; 50+ leads on one manager is an overload; a lot of leads from a source with a low share reaching active statuses is a qualification problem - Export: delivery to Google Sheets, with optional Telegram notifications
Screenshot
[Screenshot]
[Screenshot]