Send SMS
Identifier and availability
- Type:
action - Stable identifier:
send_sms_template - Status: Selectable — available in the new-node selector and importable.
Purpose
Sends an SMS template to the contact.
Prerequisites and context
Required configuration: communication_template. Runtime requires a contact in context.
Parameters
| JSON path | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
communication_template |
communication_template_reference | Yes | — | — | Either {"name": ..., "type": "email|message"} or {"custom": true}. |
sms_channel |
sms_channel_reference | No | — | — | Optional sending-number endpoint. Omit to use the tenant default. |
settings |
object | No | — | — | Node-specific settings. Unknown keys are rejected. |
settings.custom_message |
string | No | — | — | Message body required when custom=true. |
Unknown parameter and settings keys are rejected. Resource references use names, emails, document keys, or endpoints rather than database IDs.
Inputs and available variables
This node declares no additional variable groups. The always-available date group and context inherited from its path still apply.
Templated strings use double braces, for example {{contact.first_name}}. Availability in the editor does not create runtime context; the trigger and preceding branch still need to provide it.
Connections and branches
This is a sequential action with no branch ports. A root placement uses from set to null and branch set to actions; a branch placement uses the branching action key and branch token. Use a 1-based order within that path.
Connection fragment:
{
"from": null,
"to": "action_send_sms_template",
"branch": "actions",
"order": 1
}
Valid JSON node example
{
"key": "action_send_sms_template",
"type": "action",
"name": "send_sms_template",
"display_name": null,
"parameters": {
"communication_template": {
"custom": true
},
"sms_channel": {
"endpoint": "+18015550100",
"label": "Main SMS"
},
"settings": {
"custom_message": "Hello {{contact.first_name}}, this is an automated follow-up."
}
}
}
Validation and runtime caveats
A referenced template must have the correct type and be a reusable library template. Custom mode requires a nonblank custom_message.
See the Automation JSON import format for the envelope, dependency resolution, graph rules, complete examples, and AI author checklist.