Stalled Deal Detector
Every weekday at 8 AM this Zap checks how long each open deal in Zoho CRM has sat in its current stage. Past the stage’s nudge threshold, the team gets a Slack nudge. Past the escalation threshold, the sales manager gets a DM.
All 7 builds
- 6 open deals evaluated in one run
- 3 exact-boundary cases, all correct
- 3 stages, each with its own thresholds
The problem
Deals don’t fail loudly. They go quiet.
A bad lead announces itself. A stalled deal doesn’t: it can sit in Proposal Sent for three weeks, still open, still worth money, still assigned, and nobody notices.
Once a day this Zap compares each deal’s time in stage with a threshold and speaks up: a nudge first, then an escalation if the silence continues.
The logic
“Too long” depends on the stage
| Stage | Nudge after | Escalate after |
|---|---|---|
| Qualification | 5 days | 10 days |
| Proposal / Price Quote | 7 days | 14 days |
| Negotiation / Review | 10 days | 20 days |
A fresh deal under both thresholds passes through with no Slack action. Silence is the correct outcome there.
Under the hood
Catching every stale deal, not just one

Live test
Six deals, one run, three outcomes
| Deal | Stage | Days | Outcome |
|---|---|---|---|
| Ridgeline Manufacturing | Negotiation / Review | 10 | Nudge (exact boundary) |
| Summit Retail Group | Proposal / Price Quote | 14 | Escalate (exact boundary) |
| Cascade Health Partners | Qualification | 5 | Nudge (exact boundary) |
| Vantage Point Consulting | Negotiation / Review | 25 | Escalate |
| Harborline Freight | Qualification | 1 | No action |
| BrightPeak Retail | Proposal / Price Quote | 5 | No action |
| Meridian Analytics | Closed Won | — | Excluded by the search |



What broke
Two things that went wrong
Looping handed over the whole record as one blob
Feeding full deal objects into Looping exposed one bundled field per pass, not six. The date step was comparing the entire JSON record. The fix was upstream: output six separate parallel arrays from the Code step.
Shape the data for the next step’s limits.

Zapier has no “greater than or equal”
Number conditions stop at greater-than and less-than, and the obvious equality option is the wrong data type. I built each ≥ as two rule groups joined by OR: Greater Than, plus Text Exactly Matches for the boundary, then tested deals sitting exactly on it.
Test the boundary, where off-by-one bugs live.

TaskFlow and every company and person shown are fictional mock data. Built on Zoho CRM Free, Slack and a Zapier Professional trial; the Zaps are switched off now the trial has ended, and every screenshot comes from the real Zapier, Zoho and Slack accounts.
Hiring, or have a process to automate?
