Monday morning stalled Zoho CRM deal digest to Slack

By General Input

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.

Integrations

  • Zoho CRM
  • Slack Bot

Type

Agentic Task

Categories

  • Sales

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them