Conversations API (v2) - Action endpoints
Legal information
Conversation Orchestrator, including the APIs, may use artificial intelligence or machine learning technologies and is subject to the terms of the Predictive and Generative AI/ML Features Addendum. For details on AI usage and data, see the AI Nutrition Facts for Real-Time Transcription and Conversation Relay.
Conversation Orchestrator is not a HIPAA Eligible Service or PCI compliant and should not be enabled in workflows that are subject to HIPAA or PCI.
Conversations products are only available in the new Twilio Console. If your account hasn't been migrated, you'll be redirected to the legacy Console where these products won't appear.
Perform actions within a Conversation. Actions trigger side effects such as sending messages and return 202 Accepted.
Create an Action
Get Action Status
POST/v2/Conversations/{ConversationId}/Actions
Base url: https://conversations.twilio.com (base url)
Creates an Action within a Conversation. Currently supports SEND_MESSAGE, which sends a message to recipients via the configured channel.
Returns 202 Accepted with the Action in PENDING status. Poll
GET /v2/Conversations/{ConversationId}/Actions/{ActionId} to check completion.
application/jsonAction accepted. Returns the Action in PENDING status.
Unique identifier for this Action.
conv_action_01k1etx3jbfx88476ccja0889eCurrent status of the Action.
- PENDING: Action accepted, awaiting downstream confirmation
- COMPLETED: Downstream backend confirmed the action
- FAILED: Downstream backend reported a failure
PENDINGPossible values: PENDINGCOMPLETEDFAILEDThe conversation this action belongs to.
conv_conversation_01k1etx3jbfx88476ccja0889cNamed identifiers from downstream. For SEND_MESSAGE:
- messageSid: The downstream message SID (present when PENDING or COMPLETED)
- communicationId: The Communication ID (present when COMPLETED)
{"messageSid":"SM1234567890abcdef1234567890abcdef","communicationId":"conv_communication_01k1etx3jbfx88476ccja0889c"}Timestamp when the action was created.
2026-03-30T10:30:00ZTimestamp when the action was last updated.
2026-03-30T10:30:02ZTimestamp when the action reached a terminal status.
2026-03-30T10:30:02Z1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function createConversationAction() {11const action = await client.conversations.v212.actions("ConversationId")13.create({14type: "type",15payload: {16from: {17participantId: "participantId",18address: "address",19channel: "VOICE",20},21to: [22{23participantId: "participantId",24address: "address",25channel: "VOICE",26},27],28content: {29text: "text",30contentId: "contentId",31variables: {},32mediaUrls: ["https://www.example.com"],33},34channelSettings: {},35},36});3738console.log(action.id);39}4041createConversationAction();
Response
1{2"completedAt": "2009-07-06T20:30:00Z",3"conversationId": "conversationId",4"createdAt": "2009-07-06T20:30:00Z",5"id": "id",6"related": {},7"status": "PENDING",8"type": "type",9"updatedAt": "2009-07-06T20:30:00Z"10}
GET/v2/Conversations/{ConversationId}/Actions/{ActionId}
Base url: https://conversations.twilio.com (base url)
Retrieve the current status of an Action.
Action status.
Unique identifier for this Action.
conv_action_01k1etx3jbfx88476ccja0889eCurrent status of the Action.
- PENDING: Action accepted, awaiting downstream confirmation
- COMPLETED: Downstream backend confirmed the action
- FAILED: Downstream backend reported a failure
PENDINGPossible values: PENDINGCOMPLETEDFAILEDThe conversation this action belongs to.
conv_conversation_01k1etx3jbfx88476ccja0889cNamed identifiers from downstream. For SEND_MESSAGE:
- messageSid: The downstream message SID (present when PENDING or COMPLETED)
- communicationId: The Communication ID (present when COMPLETED)
{"messageSid":"SM1234567890abcdef1234567890abcdef","communicationId":"conv_communication_01k1etx3jbfx88476ccja0889c"}Timestamp when the action was created.
2026-03-30T10:30:00ZTimestamp when the action was last updated.
2026-03-30T10:30:02ZTimestamp when the action reached a terminal status.
2026-03-30T10:30:02Z1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function fetchConversationAction() {11const action = await client.conversations.v212.actions("ConversationId", "ActionId")13.fetch();1415console.log(action.id);16}1718fetchConversationAction();
Response
1{2"completedAt": "2009-07-06T20:30:00Z",3"conversationId": "conversationId",4"createdAt": "2009-07-06T20:30:00Z",5"id": "id",6"related": {},7"status": "PENDING",8"type": "type",9"updatedAt": "2009-07-06T20:30:00Z"10}