Appearance
SMS node
The SMS node sends a text message via Twilio — the third notification channel alongside Email and Slack. Order confirmations, alerts, one-time codes, appointment reminders.
Component id: flowrunner/sms.
IMPORTANT
This node is an installable component, not part of the engine. Every workspace gets it installed automatically; if it has been removed, the node passes straight through at run time and the editor marks it Not installed in the Add panel. Open Components in the project header to reinstall it.
How it works
The SMS node makes a single call to Twilio's Messages API using HTTP Basic auth. You provide:
- your Account SID and Auth token, as secret references (
${secrets.TWILIO_ACCOUNT_SID}/${secrets.TWILIO_AUTH_TOKEN}) so they never live in the flow; - the From number (a Twilio number you own) and the To number (a literal, or a reference like
${start.phone}); - the message, which is a full template —
${...}flow references are interpolated.
On success the send result is stored under your result variable:
text
refs.<resultVar> = { sid: "SM…", status: "queued" }The Auth token is read from your secret vault and is redacted from run traces. If retries are configured, a rate limit (429), a 5xx, or a network error triggers a bounded retry (the shared retry/delay budget, like HTTP/Email). Other failures route to the error port.
Config
| Field | Required | Description |
|---|---|---|
accountSid | Yes | Twilio Account SID, as a secret reference. |
authToken | Yes | Twilio Auth token, as a secret reference. |
from | Yes | The Twilio number to send from, e.g. +15550000000. |
to | Yes | The recipient number in E.164, e.g. +15551234567 — a literal or a reference. |
body | Yes | The message. A template — ${...} references are interpolated. |
resultVar | No (default sms) | The variable the { sid, status } result is written to. |
Ports
next and error.
Example
Text a customer when their order ships:
text
SMS from: +15550000000
to: ${start.phone}
body: "Hi ${start.name}, order #${start.orderId} is on its way!"
resultVar: text
# → refs.text.sid = "SM…", refs.text.status = "queued"TIP
Store your Twilio credentials once under Secrets as TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN, then reference them in every SMS node — see Secrets.