Catch unanswered WhatsApp messages before the lead goes cold

By General Input

Every 15 minutes, find the WhatsApp conversations where a customer is still waiting on a reply and post one Slack alert with ready to send responses.

Integrations

  • Kapso
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Customer Support

Every 15 minutes during business hours, sweep my WhatsApp inbox for conversations where a customer is waiting on a reply, and escalate the ones that have gone unanswered for too long into Slack. This is deliberately an SLA breach sweep, not general inbox triage. The single job is surfacing conversations that have been left hanging past a threshold and making it trivial for a rep to respond. Do not create tickets, CRM records, or any other downstream records.

Run this on a cron schedule, every 15 minutes on weekdays during business hours (default 9am to 6pm in my timezone). Skip evenings and weekends so nobody is paged when the team is offline.

Start by using Kapso's List Messages operation to pull recent messages across all conversations. Results come back newest first and use cursor pagination with limit, after, and before, so page back far enough to cover the current working day (roughly the last 12 hours is plenty) and stop paging once the messages are older than that window.

Group those messages by conversation and look only at the most recent message in each one. Every Kapso message record carries a direction field telling you whether it was inbound (sent by the customer) or outbound (sent by my team). A conversation counts as a breach when its newest message is inbound and that message is more than 10 minutes old, meaning the customer spoke last and nobody has answered since. If the newest message in a conversation is outbound, the thread has already been handled, so ignore it.

For every breaching conversation, use Kapso's List Customers operation to attach the customer's name and any useful details such as their phone number or company, matching on the customer or phone identifier carried on the message. If no customer record matches, fall back to showing the raw WhatsApp number rather than dropping the conversation from the report.

Report the results with Slack Bot's Send a Message operation, as one single message per run that groups every breach together. Never post one Slack message per conversation. Open the post with a one line summary such as "3 WhatsApp conversations waiting on a reply, 1 of them over an hour."

Split the body into two sections. Put conversations waiting more than an hour first, under an urgent heading, and escalate them loudly, since those are the ones most likely to be lost for good. List the shorter breaches underneath as ordinary waits. Within each section, sort by longest waiting first.

For each breach include the customer's name (plus company if known), how long they have been waiting in plain language such as "1h 20m waiting", a short verbatim quote of the last thing they said, and a suggested first reply. Write that suggested reply so the rep can copy and send it as is: in the same language the customer wrote in, answering what they actually asked, warm and specific rather than a generic apology for the delay.

If no conversation has breached the threshold, post nothing at all. Stay completely quiet. Do not send an all clear or a nothing to report message, so that a silent channel reliably means every customer has been answered.

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