Conversations API (v2) - Conversation 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.
A conversation is a record of interactions between participants. It's the container for all communications that occur during an interaction, including voice calls, SMS messages, and other supported channels.
Create a new Conversation
List Conversations
Fetch Conversation
Update a Conversation
Partially Update a Conversation
Delete a Conversation (async)
POST/v2/Conversations
Base url: https://conversations.twilio.com (base url)
Create a new conversation
application/jsonThe ID of an existing configuration.
conv_configuration_01k1etx3jbfx88476ccja0889dOptional list of Participants to create with the Conversation.
50Created
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// 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 createConversationWithConfig() {11const conversation = await client.conversations.v2.conversations.create({12configurationId: "configurationId",13});1415console.log(conversation.id);16}1718createConversationWithConfig();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
GET/v2/Conversations
Base url: https://conversations.twilio.com (base url)
Retrieve a list of Conversations.
Filters for specific statuses
ACTIVEINACTIVECLOSEDThe resource identifier (such as callSid or messageSid) to filter conversations.
Maximum number of items to return in a single response
50Example: 50Minimum: 1Maximum: 1000A URL-safe, base64-encoded token representing the page of results to return
eyJwYWdlIjoyLCJxdWVyeSI6ImJvb2tzIn0=1// 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 listConversationByAccount() {11const conversations = await client.conversations.v2.conversations.list({12limit: 20,13});1415conversations.forEach((c) => console.log(c.id));16}1718listConversationByAccount();
Response
1{2"conversations": [3{4"id": "id",5"accountId": "accountId",6"configurationId": "configurationId",7"status": "ACTIVE",8"name": "name",9"createdAt": "2009-07-06T20:30:00Z",10"updatedAt": "2009-07-06T20:30:00Z",11"configuration": {12"displayName": "My Support Config",13"description": "description",14"conversationGroupingType": "GROUP_BY_PROFILE",15"memoryStoreId": "memoryStoreId",16"channelSettings": {},17"statusCallbacks": [18{19"url": "https://www.example.com",20"method": "POST"21}22],23"intelligenceConfigurationIds": [24"intelligenceConfigurationIds"25],26"memoryExtractionEnabled": false,27"conversationsV1Bridge": {28"serviceId": "IS00000000000000000000000000000000"29}30},31"participants": [32{33"id": "id",34"conversationId": "conversationId",35"accountId": "accountId",36"name": "name",37"type": "CUSTOMER",38"profileId": "profileId",39"addresses": [40{41"channel": "SMS",42"address": "address",43"channelId": "channelId"44}45],46"createdAt": "2009-07-06T20:30:00Z",47"updatedAt": "2009-07-06T20:30:00Z"48}49]50}51],52"meta": {53"key": "key",54"pageSize": 20,55"previousToken": "previousToken",56"nextToken": "nextToken"57}58}
GET/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Retrieve a Conversation.
OK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// 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 fetchConversation() {11const conversation = await client.conversations.v212.conversations("Sid")13.fetch();1415console.log(conversation.id);16}1718fetchConversation();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
PUT/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Update an existing conversation
application/jsonOK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// 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 updateConversationById() {11const conversation = await client.conversations.v212.conversations("Sid")13.update({14status: "ACTIVE",15});1617console.log(conversation.id);18}1920updateConversationById();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
PATCH/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Partially update the details of an existing Conversation.
application/jsonThe state of the Conversation.
ACTIVEINACTIVECLOSEDPartial configuration update for an existing conversation. Only statusCallbacks can be modified.
OK
Configuration ID.
conv_configuration_01k1etk2y5f1y9fpe2epfdtvv2Conversation status.
ACTIVEPossible values: ACTIVEINACTIVECLOSEDTimestamp when this Conversation was created.
2023-07-01T12:00:00ZTimestamp when this Conversation was last updated.
2023-07-01T12:30:00ZFull configuration settings for this Conversation.
Participants in this Conversation.
1// 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 patchConversationById() {11const conversation = await client.conversations.v212.conversations("Sid")13.patch({14name: "Miss Christine Morgan",15});1617console.log(conversation.id);18}1920patchConversationById();
Response
1{2"accountId": "ZGkrHSypTsudrGkmdpJJ",3"configuration": {4"displayName": "My Support Config",5"description": "description",6"conversationGroupingType": "GROUP_BY_PROFILE",7"memoryStoreId": "memoryStoreId",8"channelSettings": {},9"statusCallbacks": [10{11"url": "https://www.example.com",12"method": "POST"13}14],15"intelligenceConfigurationIds": [16"intelligenceConfigurationIds"17],18"memoryExtractionEnabled": false,19"conversationsV1Bridge": {20"serviceId": "IS00000000000000000000000000000000"21}22},23"configurationId": "configurationId",24"createdAt": "2009-07-06T20:30:00Z",25"id": "id",26"name": "Miss Christine Morgan",27"participants": [28{29"id": "id",30"conversationId": "conversationId",31"accountId": "accountId",32"name": "name",33"type": "CUSTOMER",34"profileId": "profileId",35"addresses": [36{37"channel": "SMS",38"address": "address",39"channelId": "channelId"40}41],42"createdAt": "2009-07-06T20:30:00Z",43"updatedAt": "2009-07-06T20:30:00Z"44}45],46"status": "ACTIVE",47"updatedAt": "2009-07-06T20:30:00Z"48}
DELETE/v2/Conversations/{Sid}
Base url: https://conversations.twilio.com (base url)
Asynchronously delete a conversation and all associated data. Returns 202 Accepted with an Operation-Id for status tracking via GET /v2/ControlPlane/Operations/{operationId}.
Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Operation accepted for asynchronous processing
URL to poll for operation status.
https://conversations.twilio.com/v2/ControlPlane/Operations/proc_job_01h9d8r0vte3hz8tykdj329t7rNamed resource identifiers associated with this operation. Keys depend on the operation type:
- config-create, config-update, config-delete: configurationId
- conversation-delete: conversationId
{"configurationId":"cfg_configuration_01h9d8r0vte3hz8tykdj329t7r"}1// 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 deleteConversationAsync() {11await client.conversations.v2.conversations("Sid").remove();12}1314deleteConversationAsync();
Response
1{2"related": {},3"statusUrl": "https://www.example.com"4}