Monday morning stalled Zoho CRM deal digest to Slack
Every Monday at 8am, surface stalled Zoho CRM deals by stage, rank them by value at risk, and post a prioritized hit list to your sales Slack channel.
Build me an agent workflow that runs every Monday at 8am in my local timezone and posts a stalled deals digest from Zoho CRM to a Slack channel.
Trigger: cron, weekly on Monday at 8:00 in the user's local timezone (make the timezone configurable).
Step 1. Use Zoho CRM Get Records on the Deals module to pull every open deal. Filter out deals whose Stage is in the closed set (Closed Won, Closed Lost, or any custom closed stage). Page through results so nothing is missed. Request at least: Deal_Name, Owner, Amount, Stage, Probability, Closing_Date, Last_Activity_Time, and the deal id.
Step 2. For each deal, determine days stalled = today minus Last_Activity_Time. If Last_Activity_Time is missing, fall back to Modified_Time. If notes are needed to explain why a deal looks stuck, use Zoho CRM Get Notes for that deal id and look at the most recent note. Search Records is fine if you need to query by criteria directly.
Step 3. Apply stage-aware stall thresholds. Default thresholds the user can tune: early stages (Qualification, Needs Analysis, Value Proposition) flagged at greater than 7 days of inactivity; mid stages (Identify Decision Makers, Proposal, Price Quote) at greater than 14 days; late stages (Negotiation, Review) at greater than 21 days. Treat any stage you don't recognize as mid by default. Keep only the deals that exceed their stage threshold.
Step 4. Rank the stalled deals by value at risk = Amount multiplied by Probability/100 (use the stage default Probability if the deal-level field is empty). Take the top 10 by default, with the count configurable.
Step 5. Use Zoho CRM Get Users to resolve owner display names and, where available, out-of-office or status info. If a deal's owner is marked out of office for the week, skip that deal and log it under a separate Skipped section at the bottom of the digest.
Step 6. For each surviving top deal, draft a single short line in the form: why it looks stuck (use the latest note or last touch context) plus a suggested next step (concrete: send a recap, request a call, loop in champion, send pricing, etc.). Keep each line to one sentence.
Step 7. Compose one skim-friendly Slack message. Header line: 'Stalled deals at risk this week, sorted by value.' Then a numbered list, one row per deal, formatted like: Deal name, owner, $amount, X days stalled, stage, suggested action. End with the Skipped (out of office) section if any. Use Slack mrkdwn so deal names are bold and dollar amounts are inline code.
Step 8. Post the digest to a configurable Slack channel (default #pipeline-review) using the Slack Bot Send a Message operation. Send it as a single message; only thread additional detail beneath it if the list overflows Slack's message length limit.
Inputs the user should be able to configure: Slack channel name or id, the Zoho stage-to-threshold mapping, top N count (default 10), the user's timezone, and an optional list of stage names to treat as closed in addition to Closed Won and Closed Lost.
Use the Zoho CRM and Slack Bot integrations. Authentication for both is already handled, just use the provided credentials.
Additional information
What does this prompt do?
- Pulls every open deal from your Zoho CRM pipeline and flags the ones that have gone quiet, using a different stall threshold for early, mid, and late stages.
- Ranks the stalled deals by value at risk so the biggest, latest-stage deals float to the top of the list.
- Writes a one-line nudge for each top deal explaining why it looks stuck and what the owner should do next, based on recent notes.
- Posts a single skim-friendly digest to a Slack channel of your choice every Monday at 8am, so sales managers walk in with a hit list.
What do I need to use this?
- A Zoho CRM account where your deals live, with permission to read deals, notes, and users.
- A Slack workspace and a channel you want the Monday digest posted to, like #pipeline-review.
- A rough idea of how many days of silence counts as stalled at each stage of your pipeline.
How can I customize it?
- Change the day or time the digest is sent, for example Friday afternoon as a week-end wrap instead of Monday morning.
- Tune the stall thresholds for each stage of your pipeline, like 5 days for early stages and 30 days for late stages.
- Swap the destination channel, mention specific owners, or have the digest also direct message each deal owner their own list.
Frequently asked questions
How does it decide which deals count as stalled?
Will this include closed-won or closed-lost deals?
Can I send it to more than one Slack channel?
What if a deal owner is out of office?
Do I need a Zoho CRM Enterprise plan?
Start every week with a sales hit list, not a guessing game.
Connect Zoho CRM and Slack once, and Geni posts your stalled deal digest every Monday at 8am.