Skip to content

Monthly

See why you lost deals last month

On the 1st of each month you get last month's lost deals counted by reason, with common themes pulled out.

Runs
Monthly
Apps
Pipedrive
AI
Yes, uses the built-in AI allowance
Access
read

Send this to your assistant

Create a ClickRuntime automation: on the 1st of every month, email me last month's lost Pipedrive deals counted by lost reason, plus the main themes in any free-text reasons.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Every sales team agrees it should learn from lost deals, and almost none do it consistently. In Pipedrive, a rep marks a deal lost and picks a reason such as price, timing or competitor, sometimes typing a free-text explanation. Months later nobody has counted them, so leadership argues from memory: is it really price, or is it that the product lacks a feature that three prospects asked about?

On the first of each month, deals marked lost in the previous month are listed and grouped by lost_reason. Where reps wrote free-form explanations, ClickRuntime's built-in AI can read them and pull out common themes. The result is one email with counts per reason, the value lost to each and the recurring themes. A monthly rhythm keeps the lessons from fading.

It suits sales managers, founders and product leads who want a factual basis for pricing, positioning and roadmap decisions.

What you get out of it

  • Decisions based on counts, not anecdotes

    Seeing that twelve of twenty lost deals cite timing, not price, changes the conversation. You avoid cutting prices to fix a problem that price does not explain. That clarity saves months of misdirected effort.

  • Revenue lost, not just deals lost

    Grouping by value shows which reasons cost the most money. A single reason might account for a few deals but half of the lost revenue, which changes what you fix first.

  • Free-text reasons become usable

    Reps write real explanations in the notes, but nobody reads them. AI themes turn dozens of sentences into a few patterns, such as missing integrations or slow onboarding. That turns scattered comments into evidence a leadership team can use.

  • Product gets real customer input

    Feature gaps mentioned by lost prospects are the best roadmap evidence available. Sharing the monthly email with product puts those requests in front of the team that can act. Roadmap debates become far easier when real lost revenue is attached to them.

  • Month-to-month trends

    Comparing this month's email with last month's shows whether a fix worked. If competitor losses drop after a new battlecard, you have evidence that the effort paid off. Trends are what turn a report into learning.

How it works

What happens, step by step

  1. On the 1st of each month, the automation collects last month's lost deals from Pipedrive.

  2. It counts them by lost reason, such as "Price too high" or "Chose competitor".

  3. If you want, AI reads the free-text reasons and pulls out common themes.

  4. The counts and themes are emailed to you.

Before it runs live

  • Connect Pipedrive

What you get

RunsMonthly
See why you lost deals last monthtoday, 9:00Succeeded
Email · Lost deals last month: 14 6 Price too high 4 Chose competitor Themes: pricing came up late in 4 deals; two wanted an on-prem option.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other Pipedrive steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
lost_reasons_report.pyexample
from collections import Counter
from datetime import date
from clickruntime import on_trigger, credentials, http, ai, notify

API = "https://api.pipedrive.com"

@on_trigger
def run(event):
    first = date.today().replace(day=1)
    start = (first.replace(year=first.year - 1, month=12) if first.month == 1 else first.replace(month=first.month - 1)).isoformat()
    deals = http.get(f"{API}/api/v2/deals", headers={"Authorization": f"Bearer {credentials.connection('pipedrive', 'work')}"},
                     params={"status": "lost", "updated_since": f"{start}T00:00:00Z", "limit": 500}).json()["data"]
    deals = [d for d in deals if start <= (d.get("lost_time") or "")[:10] < first.isoformat()]
    counts = Counter((d.get("lost_reason") or "No reason").strip() for d in deals)
    table = "\n".join(f"{n:>3}  {reason}" for reason, n in counts.most_common())
    free_text = [d["lost_reason"] for d in deals if d.get("lost_reason") and len(d["lost_reason"]) > 25]
    themes = ""
    if free_text:
        themes = ai.generate("\n".join(free_text)[:6000], max_output_tokens=200,
                             system="List the 3 main themes in these lost-deal reasons, one line each.").text
    notify.email_me(f"Lost deals last month: {len(deals)}", f"{table}\n\nThemes:\n{themes}".strip())
    return {"lost": len(deals)}

FAQ

Common questions

What if reps do not fill in the lost reason?
Deals without a reason are shown as unspecified, which is a useful signal in itself. If many are blank, the report shows that the data needs better discipline before it can drive decisions. Making the field required in Pipedrive is the usual remedy.
Is the AI step required?
No. The grouping by reason works without it. The AI is useful only if reps type free-text explanations that you want summarized into themes, and it can be turned off if you prefer only the counts.
Can I look at a different period than last month?
Yes. A quarterly version works well for teams with few deals per month. Describe the period in chat and approve the revised schedule before it goes live. A quarterly version often suits slower sales cycles. Larger windows smooth out noise from months with only a handful of losses.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (monthly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “See why you lost deals last month” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.