Send SMS or MMS
plivo.send_message
ActionVoice & SMSconnection required
Calls the Plivo API with the connection's credentials.
Send an SMS, MMS or WhatsApp message to one or more numbers. Plivo queues the message and reports delivery afterwards, so the output carries one message UUID per destination and flags a partial send rather than reporting a single success.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Username & password
- Providers
- Plivo
- Secret shape
- {"username": "<Auth ID>", "password": "<Auth Token>"}
- Config it needs
- auth_id, src, answer_url, base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
13 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
to Destination numbers in international format, as a comma-separated list or a JSON array. Plivo sends one message per destination. | string | Yes | — | — | 14155550123 |
text The text of the message the handset will show. Optional for an MMS that carries only media. | string | No | — | — | Your order has shipped. |
src The sender number or alphanumeric sender id. Overrides the connection's default src; not used when a powerpack sends. | string | No | — | — | — |
message_type Which channel to send on: a plain sms, an mms carrying media, or a whatsapp message. Plivo defaults to sms. | string | No | — | one of "sms", "mms", "whatsapp" | — |
media_urls Publicly reachable URLs of the media to attach to an MMS, as a JSON array or a comma-separated list. | array | No | — | array of string | — |
media_ids Identifiers of media already uploaded to the Plivo media store, as an alternative to media_urls. | array | No | — | array of string | — |
powerpack_uuid Send from a Plivo Powerpack instead of a fixed src number, so Plivo picks the sending number itself. | string | No | — | — | — |
callback_url URL Plivo posts this message's delivery status reports to. | string | No | — | url format | — |
callback_method The HTTP verb Plivo uses when it calls the callback URL. | string | Conditional | — | one of "GET", "POST"; only with callback_url | — |
message_expiry How many seconds Plivo keeps trying before giving up on the message. | number | No | — | ≥ 1 | — |
log How much of the message Plivo keeps in its logs and debug tools: true logs everything, false masks both the text and the destination, content_only masks the destination, number_only masks the text. Plivo defaults to true. | string | No | — | one of "true", "false", "content_only", "number_only" | — |
trackable True to have Plivo shorten and track links contained in the text. | boolean | No | — | — | — |
template The approved WhatsApp template object, required only when message_type is whatsapp. | object | Conditional | — | only with message_type | — |
- At least one of text, media_urls, media_ids, template must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"text": "Your order has shipped.",
"to": "14155550123"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
status queued when Plivo took every destination, partial when it took some, failed when it took none. Never means delivered. | string | — |
partial True when Plivo queued fewer messages than asked. | boolean | — |
message_uuid The first message UUID Plivo returned. | string | — |
message_uuids One message UUID per destination Plivo queued. | array | — |
queued_count How many messages Plivo actually queued. | number | — |
recipient_count How many destinations were requested. | number | — |
recipients The destination numbers as they were sent. | array | — |
api_id Plivo's identifier for this API request. | string | — |
message Plivo's acknowledgement, 'message(s) queued'. | string | — |
response The send response exactly as Plivo returned it. | object | — |
{
"api_id": "",
"message": "",
"message_uuid": "",
"message_uuids": [],
"partial": false,
"queued_count": 0,
"recipient_count": 0,
"recipients": [],
"response": {},
"status": ""
}Notes
- Delivery is reported later, on the callback URL or by plivo.get_message — a queued status is not a delivered message.
See Send SMS or MMS run in a workflow.
In a technical demo we add the Plivo connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.