Catch unanswered WhatsApp messages before the lead goes cold
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.
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.
What does this prompt do?
- Checks your WhatsApp inbox every 15 minutes during business hours and finds the conversations where the customer sent the last message and nobody has replied
- Flags any thread left waiting longer than 10 minutes, and calls out anything past an hour as urgent so the oldest ones get picked up first
- Posts a single Slack alert per sweep with the customer name, a quote of what they actually said, how long they have been waiting, and a suggested reply your rep can copy and send
- Stays completely silent when every conversation has been answered, so the channel only lights up when someone is genuinely waiting
What do I need to use this?
- A Kapso account connected to the WhatsApp Business number your customers message
- A Slack workspace and a channel where the alerts should land
- A team who replies to WhatsApp, so there is someone to act on the alert
How can I customize it?
- Change the waiting threshold. Ten minutes suits inbound sales, while support teams often prefer 30 minutes
- Adjust the schedule and business hours so the sweep only runs when your team is actually online
- Point the alerts at a different channel, or route them to the rep who owns each conversation
- Raise or lower the one hour mark that decides what gets escalated as urgent
FAQs
Does this reply to customers automatically?
Will it spam my Slack channel with one message per conversation?
What happens when nothing is waiting?
Can I use a waiting time other than 10 minutes?
Will it wake my team up at night?
How does it know a message has not been answered?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
Stop losing WhatsApp leads to silence.
Set this sweep up once and your team gets nudged the moment a customer has been left waiting, with a reply already drafted.