Skip to content

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 bitrix24 connections
  • 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

json
{
  "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

MetricTypeDescription
deals_countnumberNumber of deals
deal_amountcurrencyTotal deal amount
won_dealsnumberNumber of won deals
won_amountcurrencyTotal amount of won deals
lost_dealsnumberNumber of lost deals
lost_amountcurrencyTotal amount of lost deals
in_progress_dealsnumberNumber of deals in progress
avg_deal_durationnumberAverage deal duration, in days

Calculated metrics:

json
{
  "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

json
{
  "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. SoftRefresh will 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

json
{
  "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]

Maintained by the LightLead Documentation Team · Last verified: 2026-07-26