ByteChef LogoByteChef

Twilio

Twilio is a cloud communications platform that enables developers to integrate messaging, voice, and video capabilities into their applications.

Categories: Communication

Type: twilio/v1


Connections

Version: 1

Basic Auth

Properties

NameLabelTypeDescriptionRequired
usernameAccount SIDSTRINGThe Account SID from your Twilio account.true
passwordAuth TokenSTRINGThe Auth Token from your Twilio account.true

Actions

Make Outbound Call

Name: makeCall

Initiates an outbound voice call and executes a real-time workflow synchronously during the call. The action blocks until the call completes, allowing real-time audio processing and AI conversations.

Properties

NameLabelTypeDescriptionRequired
ToToSTRINGThe phone number to call in E.164 format.true
FromFromSTRINGYour Twilio phone number in E.164 format.true
subWorkflowReal-Time WorkflowSTRINGThe workflow ID to execute synchronously during the phone call. This workflow handles real-time audio processing and AI responses via WebSocket streaming.true
timeoutRing TimeoutINTEGERMaximum time in seconds to wait for the call to be answered. If not answered within this time, the call fails.false
maxDurationMax Call DurationINTEGERMaximum duration in minutes to wait for the call to complete. After this time, the action returns with a timeout status.false

Example JSON Structure

{
  "label" : "Make Outbound Call",
  "name" : "makeCall",
  "parameters" : {
    "To" : "",
    "From" : "",
    "subWorkflow" : "",
    "timeout" : 1,
    "maxDuration" : 1
  },
  "type" : "twilio/v1/makeCall"
}

Output

Type: OBJECT

Properties

NameTypeDescription
callSidSTRINGUnique identifier for the call
statusSTRINGFinal call status (completed, failed, busy, no-answer, timeout)
durationINTEGERCall duration in seconds
directionSTRINGCall direction (outbound-api)

Output Example

{
  "callSid" : "",
  "status" : "",
  "duration" : 1,
  "direction" : ""
}

Send SMS

Name: sendSMS

Send a new SMS message

Properties

NameLabelTypeDescriptionRequired
ToToSTRINGThe recipient's phone number in E.164 format.true
FromFromSTRINGThe sender's Twilio phone number (in E.164 format), alphanumeric sender ID, Wireless SIM, short code, or channel address (e.g., whatsapp:+15554449999). The value of the from parameter must be a sender that is hosted within Twilio and belongs to the Account creating the Message. If you are using messaging_service_sid, this parameter can be empty (Twilio assigns a from value from the Messaging Service's Sender Pool) or you can provide a specific sender from your Sender Pool.true
BodyBodySTRINGThe text content of the outgoing message. SMS only: If the body contains more than 160 GSM-7 characters (or 70 UCS-2 characters), the message is segmented and charged accordingly. For long body text, consider using the send_as_mms parameter.true

Example JSON Structure

{
  "label" : "Send SMS",
  "name" : "sendSMS",
  "parameters" : {
    "To" : "",
    "From" : "",
    "Body" : ""
  },
  "type" : "twilio/v1/sendSMS"
}

Output

Type: OBJECT

Properties

NameTypeDescription
bodySTRING
numSegmentsSTRING
directionSTRING
fromOBJECT
Properties {STRING(rawNumber)}
toSTRING
dateUpdatedOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
priceSTRING
errorMessageSTRING
uriSTRING
accountSidSTRING
numMediaSTRING
statusSTRING
messagingServiceSidSTRING
sidSTRING
dateSentOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
dateCreatedOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
errorCodeINTEGER
currencyOBJECT
Properties {STRING(currencyCode), INTEGER(defaultFractionDigits), INTEGER(numericCode)}
apiVersionSTRING
subresourceUrisOBJECT
Properties {}

Output Example

{
  "body" : "",
  "numSegments" : "",
  "direction" : "",
  "from" : {
    "rawNumber" : ""
  },
  "to" : "",
  "dateUpdated" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "price" : "",
  "errorMessage" : "",
  "uri" : "",
  "accountSid" : "",
  "numMedia" : "",
  "status" : "",
  "messagingServiceSid" : "",
  "sid" : "",
  "dateSent" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "dateCreated" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "errorCode" : 1,
  "currency" : {
    "currencyCode" : "",
    "defaultFractionDigits" : 1,
    "numericCode" : 1
  },
  "apiVersion" : "",
  "subresourceUris" : { }
}

Send WhatsApp Message

Name: sendWhatsAppMessage

Send a new WhatsApp message.

Properties

NameLabelTypeDescriptionRequired
ToToSTRINGThe recipient channel address.true
FromFromSTRINGThe sender's Twilio channel address.true
useTemplateUse TemplateBOOLEAN
Options true, false
Use a template for the message body.true
ContentSidContent SidSTRINGThe SID of the content template to be used for the message body.true
ContentVariablesnullOBJECT
Properties {}
Key-value pairs of template variables and their substitution values.false
BodyBodySTRINGThe text content of the outgoing message.true

Example JSON Structure

{
  "label" : "Send WhatsApp Message",
  "name" : "sendWhatsAppMessage",
  "parameters" : {
    "To" : "",
    "From" : "",
    "useTemplate" : false,
    "ContentSid" : "",
    "ContentVariables" : { },
    "Body" : ""
  },
  "type" : "twilio/v1/sendWhatsAppMessage"
}

Output

Type: OBJECT

Properties

NameTypeDescription
bodySTRING
numSegmentsSTRING
directionSTRING
fromOBJECT
Properties {STRING(rawNumber)}
toSTRING
dateUpdatedOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
priceSTRING
errorMessageSTRING
uriSTRING
accountSidSTRING
numMediaSTRING
statusSTRING
messagingServiceSidSTRING
sidSTRING
dateSentOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
dateCreatedOBJECT
Properties {DATE_TIME(dateTime), STRING(zoneId)}
errorCodeINTEGER
currencyOBJECT
Properties {STRING(currencyCode), INTEGER(defaultFractionDigits), INTEGER(numericCode)}
apiVersionSTRING
subresourceUrisOBJECT
Properties {}

Output Example

{
  "body" : "",
  "numSegments" : "",
  "direction" : "",
  "from" : {
    "rawNumber" : ""
  },
  "to" : "",
  "dateUpdated" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "price" : "",
  "errorMessage" : "",
  "uri" : "",
  "accountSid" : "",
  "numMedia" : "",
  "status" : "",
  "messagingServiceSid" : "",
  "sid" : "",
  "dateSent" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "dateCreated" : {
    "dateTime" : "2021-01-01T00:00:00",
    "zoneId" : ""
  },
  "errorCode" : 1,
  "currency" : {
    "currencyCode" : "",
    "defaultFractionDigits" : 1,
    "numericCode" : 1
  },
  "apiVersion" : "",
  "subresourceUris" : { }
}

Triggers

Inbound Voice Call

Name: inboundCall

Triggers when an inbound voice call is received. Returns TwiML that establishes a WebSocket connection for real-time audio streaming and AI conversation.

Type: STATIC_WEBHOOK

Properties

NameLabelTypeDescriptionRequired
subWorkflowReal-Time WorkflowSTRINGThe workflow ID to execute synchronously during the phone call. This workflow handles real-time audio processing and AI responses.true

Output

Type: OBJECT

Properties

NameTypeDescription
callSidSTRINGUnique identifier for the call
fromSTRINGCaller phone number
toSTRINGCalled phone number
directionSTRINGCall direction (inbound/outbound)
accountSidSTRINGTwilio account SID
callStatusSTRINGCall status

JSON Example

{
  "label" : "Inbound Voice Call",
  "name" : "inboundCall",
  "parameters" : {
    "subWorkflow" : ""
  },
  "type" : "twilio/v1/inboundCall"
}

New WhatsApp Message

Name: newWhatsappMessage

Triggers when a new WhatsApp message is received.

Type: STATIC_WEBHOOK

Output

The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.

JSON Example

{
  "label" : "New WhatsApp Message",
  "name" : "newWhatsappMessage",
  "type" : "twilio/v1/newWhatsappMessage"
}

What to do if your action is not listed here?

If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.

To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.

How is this guide?

Last updated on

On this page