# 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.

- Workflow type: agent
- Services: Kapso, Slack Bot
- Categories: Sales, Customer Support
- Published: 2026-08-07

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## FAQ

### Does this reply to customers automatically?

No. It only alerts your team and drafts a suggested reply for them. Nothing is ever sent to the customer without a person choosing to send it.

### Will it spam my Slack channel with one message per conversation?

No. Every conversation that has breached the threshold is grouped into a single post per sweep, with the longest waits listed first.

### What happens when nothing is waiting?

Nothing gets posted at all. There is no "all clear" message, so a quiet channel genuinely means every customer has been answered.

### Can I use a waiting time other than 10 minutes?

Yes. Ten minutes is just the default. Sales teams often shorten it to five, and support teams often stretch it to 30.

### Will it wake my team up at night?

By default the sweep only runs during business hours on weekdays, so nobody gets pinged overnight or at the weekend. You can widen the hours if you cover evenings.

### How does it know a message has not been answered?

It looks at the most recent message in each conversation. If the customer spoke last and enough time has passed, the thread counts as waiting. As soon as anyone on your team replies, it drops off the list.

Use this prompt in General Input: https://www.generalinput.com/prompts/catch-unanswered-whatsapp-messages-before-the-lead-goes-cold