Twilio node reference - all 80 operations, the credential it needs, and a worked example.
Twilio (Communication). 80 operations: messages (send SMS, MMS, WhatsApp and content templates, schedule, get, list, update, redact, cancel, delete) and their media; Messaging Services and sender pools; voice calls (place, list, redirect, hang up) with recordings and transcriptions; conferences and participants; phone numbers (search, buy, list, update webhooks); Verify 2FA (start, check, services); Lookup; Conversations with participants, messages and scoped webhooks; WhatsApp content templates and approvals; Studio flow triggers; account and usage reads.
Credential: Twilio - see Credentials.
Twilio has no scope, permission or capability system: the AccountSid:AuthToken pair (or an API Key used in its place) authenticates every product below - Messaging, Voice, Verify, Lookup, Conversations, Content, Phone Numbers and Studio - with the same account-level authority. So a refusal is never a missing checkbox. A 401 means the credential itself is wrong or the Auth Token was rotated; a 403 means the product is not enabled on the account, the destination is outside the account's geographic permissions, or a trial account is contacting an unverified number. Limit the blast radius by issuing a restricted API Key or by running the workflow against a subaccount rather than the parent.
| Operation | What it does |
|---|
sendSms | Send SMS |
sendWhatsapp | Send WhatsApp message |
sendMms | Send MMS |
sendTemplateMessage | Send a content template (WhatsApp / RCS) |
scheduleMessage | Schedule a message for later |
getMessage | Get message |
listMessages | List recent messages |
updateMessage | Update message |
redactMessage | Redact message body |
cancelScheduledMessage | Cancel a scheduled message |
deleteMessage | Delete message |
| Operation | What it does |
|---|
listMessageMedia | List media on a message |
getMessageMedia | Get one media item |
deleteMessageMedia | Delete a media item |
| Operation | What it does |
|---|
createMessagingService | Create Messaging Service |
getMessagingService | Get Messaging Service |
listMessagingServices | List Messaging Services |
updateMessagingService | Update Messaging Service |
deleteMessagingService | Delete Messaging Service |
addServicePhoneNumber | Add a number to the sender pool |
listServicePhoneNumbers | List numbers in the sender pool |
removeServicePhoneNumber | Remove a number from the sender pool |
| Operation | What it does |
|---|
makeCall | Place an outbound call |
getCall | Get call |
listCalls | List calls |
updateCall | Redirect a live call |
endCall | Hang up a call |
deleteCall | Delete call record |
| Operation | What it does |
|---|
listRecordings | List recordings |
getRecording | Get recording |
deleteRecording | Delete recording |
listTranscriptions | List transcriptions |
getTranscription | Get transcription |
listRecordingTranscriptions | List a recording's transcriptions |
| Operation | What it does |
|---|
listConferences | List conferences |
getConference | Get conference |
endConference | End conference |
announceToConference | Announce into a conference |
addConferenceParticipant | Dial a participant into a conference |
listConferenceParticipants | List conference participants |
getConferenceParticipant | Get conference participant |
updateConferenceParticipant | Mute / hold / coach a participant |
removeConferenceParticipant | Remove a participant |
| Operation | What it does |
|---|
searchAvailableNumbers | Search buyable phone numbers |
buyPhoneNumber | Buy a phone number |
listPhoneNumbers | List numbers you own |
getPhoneNumber | Get an owned number |
updatePhoneNumber | Update a number's webhooks |
| Operation | What it does |
|---|
startVerification | Send a verification code |
checkVerification | Check a verification code |
getVerification | Get verification |
updateVerificationStatus | Approve / cancel a verification |
createVerifyService | Create Verify Service |
getVerifyService | Get Verify Service |
listVerifyServices | List Verify Services |
| Operation | What it does |
|---|
lookupNumber | Look up a phone number |
| Operation | What it does |
|---|
createConversation | Create conversation |
getConversation | Get conversation |
listConversations | List conversations |
updateConversation | Update conversation |
deleteConversation | Delete conversation |
addConversationParticipant | Add participant |
listConversationParticipants | List participants |
removeConversationParticipant | Remove participant |
sendConversationMessage | Post a message to a conversation |
listConversationMessages | List conversation messages |
createConversationWebhook | Register a conversation webhook |
listConversationWebhooks | List conversation webhooks |
deleteConversationWebhook | Delete a conversation webhook |
| Operation | What it does |
|---|
createContent | Create content template |
getContent | Get content template |
listContent | List content templates |
deleteContent | Delete content template |
listContentAndApprovals | List templates with approval status |
submitContentForWhatsappApproval | Submit template to WhatsApp |
getContentApprovalStatus | Get template approval status |
| Operation | What it does |
|---|
triggerStudioFlow | Trigger a Studio flow |
| Operation | What it does |
|---|
getAccount | Get account |
getAccountBalance | Get account balance |
listUsageRecords | List usage records |
Send an SMS that Twilio queues for later instead of sending now
A workflow that fires at 3am should not text a customer at 3am. Rather than parking the run with a Delay node for hours, hand Twilio the send time and let it hold the message — the run finishes immediately and Twilio owns the schedule. Scheduled sends require a Messaging Service; a bare from number cannot schedule.
Set Operation to scheduleMessage, then fill in:
| Field | Value | Notes |
|---|
to | {{ myTrigger.phone }} | E.164, e.g. +14155551234 |
messagingServiceSid | {{ vars.twilioMessagingServiceSid }} | Required for scheduling — Twilio refuses a scheduled send from a plain from-number |
body | Reminder: your appointment is tomorrow at {{ dateFormat myTrigger.startsAt "time" }}. | The message text |
sendAt | {{ dateSubtract myTrigger.startsAt 1 "day" }} | ISO 8601. Twilio requires it to be between 15 minutes and 7 days out |
Sets {{reminder.messageSid}} and {{reminder.status}} (scheduled). Cancel it later with cancelScheduledMessage and that same sid.