Every 5 minutes
Sort voicemails into urgent and not urgent
Each voicemail gets a one-line summary, urgent ones go to Slack and the rest arrive by email.
- Runs
- Every 5 minutes
- Apps
- Twilio
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: summarise each new voicemail on my Twilio number in one line; if it sounds urgent, post it to #on-call in Slack, otherwise email it to me.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Voicemail is a poor way to run a business. A property manager comes back from a viewing to nine messages, each thirty seconds of rambling, and has to listen to all of them to find the tenant reporting a burst pipe. Meanwhile the supplier asking about next week's order waits just as long. Urgent calls get the same slow treatment as trivial ones.
Every five minutes, this checks Twilio for new voicemail transcriptions. An AI step reads each transcript, writes a one-line summary and decides whether it is urgent. Urgent voicemails are posted to Slack straight away, while the others go into an email, so you read the important ones first.
It is aimed at small teams on call, such as repair services, clinics and property managers. Nobody needs to listen to every recording to find the urgent one.
What you get out of it
Urgent messages reach you first
A burst pipe or a missed delivery slot gets posted to Slack within minutes of the call. The tenant is called back before the damage spreads, rather than after you have worked through the whole queue.
Read ten voicemails in a minute
One-line summaries let you scan the day's calls quickly. You decide what to answer first without listening to every recording, which matters when messages ramble or the audio is poor.
Two lanes for two kinds of message
Urgent items go to the channel your team watches, and the rest go to an email you read at a calmer moment. Nobody has to monitor everything to avoid missing the one call that matters.
Fewer missed emergencies
Without triage, a serious message can sit unheard behind trivial ones. An explicit urgency tag reduces the chance that a call about a safety issue is found a day late.
A written record of every call
Summaries and transcripts are kept in Slack and email, so anyone can search for what a caller said. That helps when a customer disputes what they reported and when handing over between shifts.
How it works
What happens, step by step
Every 5 minutes, ClickRuntime checks your Twilio number for new voicemail transcripts. Ones it has already handled are skipped.
AI reads each transcript, sums it up in one line and decides whether it is urgent.
Urgent voicemails are posted to your #support Slack channel with the caller's number, such as "Urgent voicemail: Burst pipe at Northwind's office".
Everything else arrives in your inbox as an email with the summary.
Before it runs live
- Connect Twilio
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 Slack
- Combine it with other Twilio steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, ai, notify, report_fetched
@on_trigger
def run(event):
sid = credentials.secret("TWILIO_ACCOUNT_SID")
base, auth = f"https://api.twilio.com/2010-04-01/Accounts/{sid}", (sid, credentials.secret("TWILIO_AUTH_TOKEN"))
items = http.get(f"{base}/Transcriptions.json", auth=auth, params={"PageSize": 20}).json()["transcriptions"]
seen = state.get("seen") or []
new = [t for t in items if t["sid"] not in seen and t["status"] == "completed"]
report_fetched(len(new))
if not new:
return {"summary": "Nothing new"}
for t in new:
rec = http.get(f"{base}/Recordings/{t['recording_sid']}.json", auth=auth).json()
caller = http.get(f"{base}/Calls/{rec['call_sid']}.json", auth=auth).json()["from"]
out = ai.generate(t["transcription_text"] or "", system="Summarise this voicemail in one line and say if it is urgent.",
json_schema={"type": "object", "properties": {"summary": {"type": "string"}, "urgent": {"type": "boolean"}}}, max_output_tokens=80).json
if out["urgent"]:
notify.slack(f"🚨 Urgent voicemail from {caller}: {out['summary']}", channel="#support")
else:
notify.email_me(f"Voicemail from {caller}", out["summary"])
seen.append(t["sid"])
state.set("seen", seen[-500:])
return {"processed": len(new)}FAQ
Common questions
How does the AI decide what is urgent?
What if the transcription is wrong?
Does it call people back?
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
Hear when texts start failing
Failed or undelivered messages are posted with their error codes, so you can spot a problem with a number or carrier early.
See how it worksAnswer incoming texts with AI
Customers who text your number get a reply based on your FAQ, even when they send several messages in a row.
See how it worksGet a text when your form or app reports something
A new form entry, order or failed job sends a short SMS to your phone with the details that matter.
See how it worksKeep exploring
Set up “Sort voicemails into urgent and not urgent” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.