Skip to content

Sales funnel conversion in Pipedrive

Business task

A sales manager and CRM analyst need to see at which stages of the sales funnel the largest deal drop-off occurs. A classic picture: 100 leads in, 60 reach qualification, 30 reach the proposal stage, 10 reach close. You need to understand which stage is underperforming, compare conversion across different managers, and identify best practices that can be scaled across the whole team.

Connections

This report requires a Pipedrive CRM connection.

  • Connector: pipedrive
  • Required permissions: read access to Pipedrive deals and pipelines via the API
  • Connection status: active
  • Entities: deals (deal), stages (stage), pipelines (pipeline), users (user)
  • Specifics: Pipedrive has a rigid pipeline structure — a deal can't skip a stage. Every stage transition is logged, which lets you build an accurate conversion funnel
  • Setup: select the pipelines to include in the analysis (usually the main sales pipeline)

Make sure Pipedrive's pipeline stages are set up correctly and that deals actually move through the stages. If managers close deals without moving them through the pipeline, conversion will be displayed incorrectly. Audit the process before running the report.

Report settings

  • Name: Pipedrive funnel conversion
  • Report type: analytical funnel report
  • Data source: all pipedrive connections
  • Date range: last_quarter — a quarter provides a representative sample for conversion analysis
  • Grouping: by pipeline (pipeline_name), stage (stage_name), manager (responsible_user)
  • Sorting: by pipeline stage order (first to last)
  • Timezone: Europe/Moscow

Parameters

json
{
  "date_range": "last_quarter",
  "group_by": ["pipeline_name", "stage_order", "stage_name", "responsible_user"],
  "sort": { "field": "stage_order", "direction": "asc" },
  "timezone": "Europe/Moscow",
  "limit": 2000
}

Sorting by stage_order ensures the pipeline stages appear in the correct sequence. To analyze a specific manager, leave the grouping unchanged but add a filter — that way you can see their individual funnel against the overall picture.

Metrics

MetricTypeDescription
deals_enterednumberNumber of deals that entered the stage
deals_exitednumberNumber of deals that left the stage
deals_lostnumberDeals lost at the stage
deals_wonnumberDeals that reached the final stage and were won
avg_time_in_stagenumberAverage time spent in the stage, in days
total_valuecurrencyTotal value of deals at the stage

Calculated metrics:

json
{
  "calculated_metrics": [
    {
      "name": "stage_conversion",
      "formula": "IF([deals_entered] > 0, ROUND([deals_exited] / [deals_entered] * 100, 1), 0)",
      "type": "percent",
      "description": "Stage conversion: percentage of deals that moved to the next stage"
    },
    {
      "name": "overall_conversion",
      "formula": "IF([total_deals] > 0, ROUND([deals_won] / [total_deals] * 100, 1), 0)",
      "type": "percent",
      "description": "End-to-end conversion: from first stage to win"
    }
  ]
}

stage_conversion shows the conversion rate of a specific stage: 80% means 80% of deals at that stage moved to the next one. 50% is a clear bottleneck that needs analysis. overall_conversion is the funnel's end-to-end conversion rate.

Filters

json
{
  "logic": "AND",
  "conditions": [
    {
      "field": "deal_status",
      "operator": "NOT_EQUAL",
      "value": "deleted"
    },
    {
      "field": "deals_entered",
      "operator": "GREATER_THAN",
      "value": 5
    }
  ]
}
  • deal_status != "deleted" — excludes deleted deals
  • deals_entered > 5 — only stages with enough deals for statistical significance

To isolate a specific stage: stage_name EQUAL "Proposal". This allows a detailed look at why deals are being lost specifically at that stage.

Write mode

Mode: Replace

  • Why Replace: funnel analysis requires a complete, consistent picture for the whole period. A partial update can cause desynchronization: deals at different stages on different dates would distort conversion figures
  • Data volume: Pipedrive typically has 500-2,000 deals per quarter — Replace runs quickly

Alternative: for very large funnels (10,000+ deals), use RewriteFromLast with the rewrite start date set to the beginning of the current month — but make sure deals from previous months don't change.

Schedule

json
{
  "schedule": {
    "enabled": true,
    "interval": "weekly",
    "time": "09:30",
    "timezone": "Europe/Moscow",
    "days_of_week": [1],
    "retry_on_failure": true,
    "max_retries": 3
  }
}

A weekly run on Mondays at 9:30 AM — data for the past week plus quarterly context. If you need a monthly cut, create a separate report with interval: "monthly" and day_of_month: 1.

Expected result

After a successful run:

  • Status: completed
  • Row count: funnel stages × managers (typically 20-80 rows)
  • Visualization: the data is easy to read as a classic funnel: first stage at 100%, last stage at win conversion
  • Bottlenecks: stages with stage_conversion below 50% are candidates for optimizing processes, sales scripts, or training
  • Manager comparison: one manager may have 90% conversion at the "Qualification" stage, another 40% — a clear signal for individual coaching
  • Time in stage: if avg_time_in_stage is abnormally high, deals are getting stuck — you may need more automation or triggers for managers

Screenshot

[Screenshot]

[Screenshot]

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