Bitrix24 sales rep performance report
Business task
A sales manager needs a weekly KPI report for each rep: number of closed deals, sales amount, average order value, stage-by-stage funnel conversion, and deal cycle speed. This data is needed to calculate bonuses, identify underperforming reps, and plan training.
Connections
This report requires a Bitrix24 CRM connection.
- Connector:
bitrix24 - Required permissions: CRM read access (deals, pipelines, users)
- Connection status:
active - Specifics: the Bitrix24 API has a rate limit — no more than one request every 2 seconds. With a large number of deals, the report may take longer than usual to run
- Entities: deals (
deal), pipelines (pipeline), stages (stage), users (user) - Setup: in the connection settings, select the deal category (or categories) to include in the report
If Bitrix24 is used in its self-hosted (on-premise) version, make sure the webhook or OAuth key has permissions to read deals (crm.deal.list, crm.deal.get). In the cloud version, a standard marketplace connection is sufficient.
Report settings
- Name:
Bitrix24 sales rep performance - Report type: analytical CRM report grouped by manager
- Data source: all
bitrix24connections - Date range:
last_week— the past week - Grouping: by manager (
responsible_user), pipeline (pipeline_name), and stage (stage_name) - Sorting: by deal amount (
deal_amount), descending - Timezone:
Europe/Moscow
Parameters
{
"date_range": "last_week",
"group_by": ["responsible_user", "pipeline_name", "stage_name"],
"sort": { "field": "deal_amount", "direction": "desc" },
"timezone": "Europe/Moscow",
"limit": 5000
}For a monthly KPI report, switch date_range to last_month or this_month. To drill into a specific manager, add them as a filter rather than a grouping field.
Metrics
| Metric | Type | Description |
|---|---|---|
deals_count | number | Number of deals |
deal_amount | currency | Total deal amount |
won_deals | number | Number of won deals |
won_amount | currency | Total amount of won deals |
lost_deals | number | Number of lost deals |
lost_amount | currency | Total amount of lost deals |
in_progress_deals | number | Number of deals in progress |
avg_deal_duration | number | Average deal duration, in days |
Calculated metrics:
{
"calculated_metrics": [
{
"name": "avg_check",
"formula": "IF([won_deals] > 0, [won_amount] / [won_deals], 0)",
"type": "money",
"description": "Manager's average order value"
},
{
"name": "win_rate",
"formula": "IF([deals_count] > 0, ROUND([won_deals] / [deals_count] * 100, 1), 0)",
"type": "percent",
"description": "Win Rate (percentage of deals won)"
}
]
}A Win Rate below 20% is a signal that a manager is either working leads inefficiently or receiving low-quality leads. An average order value 2-3x lower than peers' means the manager is working small deals and not attempting to upsell.
Filters
{
"logic": "AND",
"conditions": [
{
"field": "deal_amount",
"operator": "GREATER_THAN",
"value": 0
},
{
"field": "stage_name",
"operator": "NOT_EQUAL",
"value": "Draft"
}
]
}deal_amount > 0— deals with a nonzero amount only (excludes empty placeholders)stage_name != "Draft"— excludes unfinished draft deals
For a specific manager's KPIs: responsible_user EQUAL "John Smith". To filter by pipeline: pipeline_name EQUAL "Main pipeline".
Write mode
Mode: SoftRefresh
- Logic: existing deals are updated by ID, new ones are added, missing ones are not deleted
- Why SoftRefresh: deal data can change retroactively — the amount gets adjusted, the status changes, the duration is recalculated.
SoftRefreshwill update changed rows and add new ones, but won't delete old ones (in case a deal was deleted and then restored) - Update key:
deal_id
Alternative: if deals in Bitrix24 never change after closing (a strict business process), you can use AppendDedup — it's faster.
Schedule
{
"schedule": {
"enabled": true,
"interval": "weekly",
"time": "09:00",
"timezone": "Europe/Moscow",
"days_of_week": [1],
"retry_on_failure": true,
"max_retries": 3
}
}Running on Mondays at 9:00 AM gives you a report for the completed work week. For a monthly KPI report, create a separate report with interval: "monthly" and day_of_month: 1.
Expected result
After a successful run:
- Status:
completed - Row count: number of managers × pipelines × stages (typically 50-200 rows)
- KPI figures: for each manager you can see the number of closed deals, amount, average order value, Win Rate, and deal cycle duration
- Comparison: you can sort managers by Win Rate or average order value and compare performance
- Actions: managers with a low Win Rate are sent for training; managers with a high average order value share their approach with colleagues
Screenshot
[Screenshot]
[Screenshot]