The moment it happens
Answer WhatsApp support questions and escalate to Slack
Customers get instant answers on WhatsApp, and anything the bot isn't confident about is posted to Slack for a person to pick up.
- Runs
- The moment it happens
- Apps
- Slack, WhatsApp Business
- AI
- Yes, uses the built-in AI allowance
- Access
- whatsapp_business_messaging; chat:write
Send this to your assistant
Create a ClickRuntime automation: when a customer messages our WhatsApp number, answer from our FAQ; if you're not confident, tell them a person will reply and post the question to #support in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A support team that works in Slack doesn't want to sit in a WhatsApp inbox all day, but customers increasingly prefer WhatsApp. Routine questions take up time, and the important ones get lost among them.
Letting a bot answer the routine questions and post the rest to the support channel means customers get quick answers and the team only spends time on conversations that need them, from the tool they already use.
What you get out of it
Instant answers for common questions
Customers aren't kept waiting for things your FAQ already covers.
Your team stays in Slack
Escalations arrive in the channel the team already watches.
Honest about limits
When the bot isn't sure, it says a person will reply instead of guessing.
Fewer repeated questions
The team only handles questions the FAQ doesn't answer, which shows where to improve it.
How it works
What happens, step by step
A customer messages your WhatsApp number.
AI drafts an answer from your FAQ and rates how confident it is.
Confident answers are sent straight back on WhatsApp.
Otherwise the customer is told a person will reply, and the question is posted to your support channel in Slack.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect WhatsApp Business
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Slack and WhatsApp Business steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify, ai
FAQ = "Plans start at £9/month. Cancel any time in Settings. Support hours 8-6 UK."
SCHEMA = {"type": "object", "properties": {"reply": {"type": "string"}, "confident": {"type": "boolean"}}, "required": ["reply", "confident"]}
WA = "https://graph.facebook.com/v20.0/your-phone-number-id/messages"
def wa(to, text):
http.post(WA, headers={"Authorization": f"Bearer {credentials.secret('WHATSAPP_TOKEN')}"},
json={"messaging_product": "whatsapp", "to": to, "type": "text", "text": {"body": text}}).raise_for_status()
def incoming(event):
changes = [c for e in (event.json or {}).get("entry", []) for c in e.get("changes", [])]
return [(m["from"], m["text"]["body"]) for c in changes for m in c["value"].get("messages", []) if m.get("type") == "text"]
@on_event
def handle(event):
for phone, text in incoming(event):
r = ai.generate(text[:1500], json_schema=SCHEMA, max_output_tokens=200,
system=f"Answer from these facts only: {FAQ}. confident=false if unsure, a complaint, or they want a person.").json
if r["confident"]:
wa(phone, r["reply"])
else:
wa(phone, "Thanks for your message. A member of our team will reply here shortly.")
notify.slack(f":speech_balloon: WhatsApp +{phone}: {text[:800]}", channel="#support")
return {"ok": True}FAQ
Common questions
How does it decide to escalate?
What's in the Slack post?
Can the FAQ be updated?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Share sales call summaries in Slack and on WhatsApp
After each call, a summary with next steps is posted to your sales channel and sent to the rep on WhatsApp.
See how it worksQualify WhatsApp leads and alert sales about hot ones
New WhatsApp enquiries are asked a few qualifying questions, scored, and hot leads are posted to your sales channel straight away.
See how it worksSend system alerts to Slack and the on-call phone
When something breaks, the team sees it in Slack and the person on call gets a WhatsApp message, without repeats.
See how it worksKeep exploring
Set up “Answer WhatsApp support questions and escalate to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.