AI agents for Twilio
SMS and voice when the alert genuinely cannot wait. AGNT connects to Twilio so agents can read what happens there, reason about it, and act — with a receipt for every run.
Twilio and AGNT, in brief
| What it does | Lets an AGNT agent read from and act in Twilio. |
|---|---|
| Connects with | Basic — held in the local vault |
| AGNT node | custom-api, or the zapier-action bridge |
| Runs when | An SMS arrives |
| Typical build time | Ten minutes |
| Where data goes | Nowhere by default — AGNT runs on your machine and credentials never leave it. |
What you can automate
Reacts when…
- an SMS arrives
- a call completes
Agents can…
- send SMS alerts
- trigger call flows
- notify on-call
Teams use it for
- critical alerts that bypass the inbox
- customer notifications from workflows
- two-way SMS approval gates
The Twilio workflow, ready to paste
Take the simplest useful version: an SMS arrives in Twilio. Instead of a rule firing blindly, an agent reads the item in full, works out whether it matters and what it means, and then decides whether to send SMS alerts. Over a week that turns critical alerts that bypass the inbox from something a person checks into something that reports to a person.
Three nodes carry that: something happens in Twilio, an agent reads it and forms a view, and it acts only where that view says it should. The definition below is the whole thing — paste it into a new workflow and it loads exactly as drawn.
{
"id": "5509991f-2afb-4d0c-a761-b7538015b9c8",
"name": "Twilio — read, decide, act",
"nodes": [
{
"id": "e725b8c9-5291-4a71-a2a2-9d4e9d7e0f16",
"text": "Run on a schedule",
"x": 512,
"y": 144,
"isEditing": false,
"type": "trigger-timer",
"icon": "clock",
"category": "trigger",
"isSelected": false,
"parameters": {
"interval": "15",
"unit": "minutes"
},
"description": "Checks Twilio every fifteen minutes.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "8dfccf80-33b3-4b3e-a588-9f98e1afa5a4",
"text": "Work out what should change",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "agnt",
"category": "action",
"isSelected": false,
"parameters": {
"instructions": "Decide what needs to happen in Twilio. Explain your reasoning."
},
"description": "Decides what needs to happen in Twilio, and why.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "c3969117-bd0d-4b34-a5ea-612bcdf1c1e0",
"text": "Call the Twilio API",
"x": 512,
"y": 528,
"isEditing": false,
"type": "custom-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"url": "https://api.twilio.com/2010-04-01/Accounts/{accountSid}/Messages.json",
"method": "POST",
"authType": "Basic",
"headers": "{\"Content-Type\": \"application/json\"}"
},
"description": "POST against the Twilio API, authenticated with basic.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "dd9a8c79-22c8-4dc3-a253-a59289c70062",
"start": {
"id": "e725b8c9-5291-4a71-a2a2-9d4e9d7e0f16",
"type": "output"
},
"end": {
"id": "8dfccf80-33b3-4b3e-a588-9f98e1afa5a4",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "45a45ff5-5a72-49f7-a4a7-54ba7fbfb856",
"start": {
"id": "8dfccf80-33b3-4b3e-a588-9f98e1afa5a4",
"type": "output"
},
"end": {
"id": "c3969117-bd0d-4b34-a5ea-612bcdf1c1e0",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Run this against your own Twilio
Free to download, local by default — your Twilio credentials stay in a vault on your own disk.
For the alerts that genuinely cannot wait
Email and chat are both easy to miss. SMS and voice are the escalation path for the small number of events that warrant interrupting someone — and being deliberate about which events those are is most of the design work.
Two-way approval
Because SMS is bidirectional, it can carry an approval gate to someone with no laptop open. For on-call and out-of-hours decisions, that is often the difference between a workflow that waits and one that proceeds.
How to reach Twilio from a workflow
Twilio has no dedicated node in AGNT so far. That is not a blocker — it authenticates with basic, which the custom-api node handles directly, and the exact call is below.
| What you need | Value |
|---|---|
| Endpoint | https://api.twilio.com/2010-04-01/Accounts/{accountSid}/Messages.json |
| Method | POST |
| Authentication | Basic |
| Header | Authorization: Basic base64({accountSid}:{authToken}) |
| Reference | Twilio API documentation |
Worth knowing: The body is form-encoded, not JSON — a JSON payload is accepted and then ignored.
The part that catches people out
The body is form-encoded, not JSON — a JSON payload is accepted and then ignored.
Everything else about Twilio behaves the way you would expect, so once that is handled the rest of the build is ordinary. The POST above is the shape every other call takes.
Connect Twilio in two minutes
- Download AGNT Community Core — free, local-first, no account needed to run.
- Connect by pasting an API key into AGNT’s vault — stored encrypted on your machine, never uploaded.
- Drop the Twilio node into a workflow or hand it to an agent — the first run produces a receipt you can read line by line.
Twilio + AGNT — common questions
When should a workflow use SMS?
Rarely and deliberately — for events where missing the notification has real consequences.
Can customers reply?
Yes, and an inbound SMS can trigger a workflow of its own.
How is Twilio connected?
With API credentials held encrypted in the local vault.