On a schedule
Get a daily list of deals going stale
Each weekday you see the open deals with no activity in two weeks, grouped by owner.
- Runs
- On a schedule
- Apps
- Pipedrive
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every weekday at 8am, email me open Pipedrive deals with no activity in the last 14 days, grouped by owner.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Pipedrive can flag a deal as rotten once it has sat in a stage longer than the rotten time you set, but the flag is just a red marker on a board nobody opens daily. A $15,000 deal that has not had a call in three weeks keeps its place in the forecast, and the rep who owns it has moved on to newer prospects. By quarter end it is quietly dead, and the forecast was wrong the whole time.
Each morning, open deals are listed and filtered by their rotten_time setting and last_activity_date. The stale ones are grouped by owner, and you receive an email showing who has which neglected deals and how long each has been idle. The list is short and specific, which makes it hard to ignore.
Sales managers who run weekly forecast calls and reps with big personal pipelines use it as a daily nudge.
What you get out of it
Revive deals before they die
A deal that is stale for two weeks can often be saved with one good call. A daily list prompts that call while the buyer still remembers the conversation. Calls made at that moment feel natural to the buyer.
Forecasts reflect reality
Deals that are not moving should not carry full weight in a forecast. Seeing them each morning lets you downgrade or close them honestly instead of discovering the gap in the final week of the quarter.
Grouped by owner for easy action
The email shows each rep's stale deals together, so managers can raise them in a quick chat. No one has to filter a board to find who is neglecting what.
A fair, consistent standard
The same rule applies to every deal, based on the stage settings you chose. Reps cannot say their deal was overlooked, and managers do not have to rely on opinion.
Better use of rep time
Instead of reviewing all open deals, reps are directed to the ones that need attention. That focuses effort where money is at risk and is easier to maintain than a weekly pipeline scrub.
How it works
What happens, step by step
Every weekday at 8 am, ClickRuntime goes through your open Pipedrive deals.
It picks out the ones with no activity in the last 14 days.
They are grouped by owner.
You get an email listing each deal with its value and the date of its last activity.
Before it runs live
- Connect Pipedrive
What you get
Build your own
Need it to work differently?
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
- Add an AI step, for example to summarize, sort or draft a reply
- 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
from collections import defaultdict
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify
API = "https://api.pipedrive.com"
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.connection('pipedrive', 'work')}"}
cutoff = (date.today() - timedelta(days=14)).isoformat()
deals = http.get(f"{API}/api/v2/deals", headers=headers, params={"status": "open", "limit": 500}).json()["data"]
users = {u["id"]: u["name"] for u in http.get(f"{API}/v1/users", headers=headers).json()["data"]}
by_owner = defaultdict(list)
for d in deals:
last = d.get("last_activity_date") or d["add_time"][:10]
if last < cutoff:
by_owner[users.get(d["owner_id"], "Unknown")].append(f" - {d['title']} ({d['value']:,.0f} {d['currency']}), last activity {last}")
if not by_owner:
return {"rotten": 0}
notify.email_me("Deals with no activity in 14 days",
"\n\n".join(f"{o}\n" + "\n".join(items) for o, items in sorted(by_owner.items())))
return {"rotten": sum(len(v) for v in by_owner.values())}FAQ
Common questions
What makes a deal rotten in Pipedrive?
Can I send each rep their own list instead of one email?
Does it include deals with a scheduled activity?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a daily list of overdue activities
Each morning you see the calls, meetings and tasks that are past due and not done.
See how it worksGet a weekly sales report
Each Monday you get last week's won, lost and new deals with totals per owner.
See how it worksGet a morning summary of your open deals
Each weekday you get a short read on every open deal by stage, with its latest notes.
See how it worksKeep exploring
Set up “Get a daily list of deals going stale” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
