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, to configure
Design goal for Twilio: critical alerts that bypass the inbox; customer notifications from workflows; two-way SMS approval gates. The template below supplies configurable nodes, not the complete logic for those goals.
Use this Twilio setup template to arrange the schedule, input review and API operation. Configure the account-specific fields and add your own decision and approval controls before activation.
This is a schema-checked starting point, not an end-to-end tested automation. Replace every CONFIGURE_ value, choose the operations you intend, connect credentials and map source outputs into later inputs. An edge orders steps; it does not supply a condition, an approval gate or a field mapping. Add and test those controls explicitly before any write. Cloud APIs and model providers may receive data. Keep the workflow inactive until tested with fixtures.
{
"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": {
"fireOnStart": "No",
"scheduleType": "Interval",
"schedule": "Every 15 Minutes"
},
"description": "Setup template for Timer Trigger. This trigger node fires the workflow at specified intervals or at a specific time. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "8dfccf80-33b3-4b3e-a588-9f98e1afa5a4",
"text": "Review source and draft",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "agnt",
"category": "action",
"isSelected": false,
"parameters": {
"agentId": "CONFIGURE_AGENTID",
"message": "Decide what needs to happen in Twilio. Explain your reasoning.\nSource input: CONFIGURE_SOURCE_INPUT. Produce a reviewable draft only; do not take external actions."
},
"description": "Setup template for Agent Chat. Chat with an AI agent from your agent library. Select an agent and send messages to interact with it within your workflow. Configure credentials, inputs and output mapping before use.",
"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": "GET",
"authType": "None",
"headers": "{}",
"query": ""
},
"description": "Setup template for Custom API Request. This action node makes a custom API request to any endpoint with configurable method, headers, and authentication. Configure credentials, inputs and output mapping before use.",
"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
}
Configure Custom API Request
This action node makes a custom API request to any endpoint with configurable method, headers, and authentication.
- url — The URL of the API endpoint Current example:
https://api.twilio.com/2010-04-01/Accounts/{accountSid}/Messages.json. - method — The HTTP method for the request Current example:
GET. - authType — The type of authentication Current example:
None. - query — Query parameters for the request (e.g., 'key1=value1&key2=value2') Current example:
. - headers — Optional headers for the request. e.g., {"Content-Type": "application/json"} Current example:
{}.
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.