Search all guides

Reference · Tools

Plivo integration

Send SMS/MMS messages or make phone calls via the Plivo cloud communications API.

Action Communication v1

The Plivo node sends SMS and MMS messages and places phone calls through Plivo's cloud communications API. A typical build is texting a delivery notification and escalating to an automated call if it is not acknowledged.

Works as
Action
Tool name
plivo
Operations
3 — Call: Make , MMS: Send , SMS: Send
Parameters
16
Outputs
Output, Error
Credentials
Plivo API
Official docs
Plivo docs plivo.com

What you can build with Plivo

  • Send an SMS message to a phone number.
  • Send an MMS with media attachments.
  • Make an outbound voice call.

Overview

Plivo is a cloud communications platform that provides SMS, MMS, and voice call APIs. This tool supports sending SMS messages, sending MMS messages (US/Canada only), and initiating outbound voice calls. It uses the Plivo REST API v1 with HTTP Basic Auth. SMS and MMS use the /Message/ endpoint while calls use the /Call/ endpoint.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Plivo API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Callcall
MMSmms
SMSsms

Operations

OperationValueDescription
Call: MakemakeMake a voice call
MMS: SendsendSend an MMS message (US/Canada only)
SMS: SendsendSend an SMS message

Parameters

Call: Make

ParameterTypeRequiredDefaultDescription
FromstringYes—Plivo phone number to send or call from (E.164 format).
TostringYes—Destination phone number (E.164 format).
Answer MethodoptionsYesPOSTHTTP method Plivo uses to request the answer URL.
Options: GET, POST
Answer URLstringYes—URL Plivo will request when the call is answered. Must return valid Plivo XML to control the call.

MMS: Send

ParameterTypeRequiredDefaultDescription
FromstringYes—Plivo phone number to send or call from (E.164 format).
TostringYes—Destination phone number (E.164 format).
MessagestringNo—Text content of the message; optional for MMS.
Media URLsstringNo—Comma-separated list of media file URLs from your file server.

SMS: Send

ParameterTypeRequiredDefaultDescription
FromstringYes—Plivo phone number to send or call from (E.164 format).
TostringYes—Destination phone number (E.164 format).
MessagestringYes—Text content of the message; optional for MMS.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item, on the Output port. Plivo’s API response is merged onto the item JSON at the top level rather than nested under a wrapper, so the incoming fields pass through unchanged and the response fields sit beside them; binary data on the input item is forwarded untouched.

Every operation returns the same shape of acknowledgement: the UUID Plivo assigns to the message or call, together with the status text describing what it accepted. The exact key names come straight from the Plivo API, so run the node once and read the output item before wiring those fields into downstream expressions.

An item whose request is rejected — an unverified caller ID, a destination Plivo will not deliver to, an answer URL it cannot reach — fails individually. In errorPort mode that item leaves through the Error port carrying an _error object; the successful items continue out of Output.

Example Configuration

Send a fixed SMS to one number:

{
  "type": "plivo",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "+15551234567",
    "to": "+15559876543",
    "message": "Your order #12345 has been shipped and will arrive tomorrow."
  }
}

Send a personalised SMS per item, with concurrency held down for a bulk run:

{
  "type": "plivo",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "+15551234567",
    "to": "{{ $json.customer_phone }}",
    "message": "Hi {{ $json.customer_name }}, your appointment is confirmed for {{ $json.appointment_date }}.",
    "maxConcurrency": 5
  }
}

Send an MMS with two media files attached (US and Canada numbers only):

{
  "type": "plivo",
  "parameters": {
    "resource": "mms",
    "operation": "send",
    "from": "+15551234567",
    "to": "{{ $json.subscriber_phone }}",
    "message": "Here is your receipt and the product photo.",
    "media_urls": "https://files.example.com/receipt.pdf,https://files.example.com/product.jpg"
  }
}

Place an outbound call and hand control to your own Plivo XML endpoint:

{
  "type": "plivo",
  "parameters": {
    "resource": "call",
    "operation": "make",
    "from": "+15551234567",
    "to": "{{ $json.customer_phone }}",
    "answer_url": "https://app.example.com/plivo/emergency-alert",
    "answer_method": "POST",
    "maxConcurrency": 1
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

This tool sends SMS and MMS messages and makes voice calls using the Plivo service. It is ideal for direct communication when a text message or a phone call is the desired method. It produces a confirmation of the sent message or initiated call.

Notes

  • Each resource has exactly one operation. Picking SMS or MMS gives you send; picking Call gives you make. Switching resource changes which fields the node shows, so set Resource first.
  • Message is optional for MMS, Media URLs is not marked required either — but an MMS carrying neither has nothing to deliver. Set at least one of them.
  • Expressions are resolved per item in From, To, Message, Media URLs, Answer URL and Answer Method, so one node can message a different recipient for every item that reaches it.
  • A call needs somewhere to go once answered. Answer URL must serve valid Plivo XML; without it the call connects and then has no instructions to follow.

Frequently asked questions

Why do the fields change when I switch resource?

Each resource has exactly one operation — SMS and MMS give you `send`, Call gives you `make` — and switching resource changes which fields the node shows. Set Resource first.

What does an MMS actually need?

Message and Media URLs are both technically optional, but an MMS carrying neither has nothing to deliver. Set at least one of them.

Can it place voice calls as well as text?

Yes — the Call resource places phone calls, which is useful for escalation paths where a text may go unnoticed.

Which credential does it need?

A Plivo API credential covering both messaging and voice.

Build with Plivo

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Plivo API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.