Conversation Resource
A Conversation is a unique message thread that contains Participants and the Messages they have sent.
Do not use Personally Identifiable Information (PII) for the friendlyName field Avoid using a person's name, home address, email, phone number, or other PII in the friendlyName
field. Use some form of pseudonymized identifier, instead.
You can learn more about how we process your data in our privacy policy.(link takes you to an external page)
All URLs in the reference documentation use the following base URL:
_10 https://conversations.twilio.com/v1
Using the REST API, you can interact with Conversation resources in the default Conversation Service instance via a "shortened" URL that does not include the Conversation Service instance SID ("ISXXX..."). If you are only using one Conversation Service (the default), you do not need to include the Conversation Service SID in your URL, e.g.
For Conversations applications that build on more than one Conversation Service instance, you will need to specify the Conversation Service SID in the REST API call:
_10 GET /v1/Services/ISxx/Conversations
Property name Type PII Description
The unique ID of the Account responsible for this conversation.
Pattern: ^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The unique ID of the Conversation Service this conversation belongs to.
Pattern: ^IS[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
messaging_service_sid SID<MG> The unique ID of the Messaging Service this conversation belongs to.
Pattern: ^MG[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
A 34 character string that uniquely identifies this resource.
Pattern: ^CH[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The human-readable name of this conversation, limited to 256 characters. Optional.
An application-defined string that uniquely identifies the resource. It can be used to address the resource in place of the resource's sid
in the URL.
An optional string metadata field you can use to store any data you wish. The string value must contain structurally valid JSON if specified. Note that if the attributes are not set "{}" will be returned.
Current state of this conversation. Can be either active
, inactive
or closed
and defaults to active
Possible values: inactive
active
closed
date_created string<date-time> The date that this resource was created.
date_updated string<date-time> The date that this resource was last updated.
Timer date values representing state update for this conversation.
An absolute API resource URL for this conversation.
POST https://conversations.twilio.com/v1/Conversations
Property name Type Required PII Description
FriendlyName string Optional The human-readable name of this conversation, limited to 256 characters. Optional.
An application-defined string that uniquely identifies the resource. It can be used to address the resource in place of the resource's sid
in the URL.
DateCreated string<date-time> Optional The date that this resource was created.
DateUpdated string<date-time> Optional The date that this resource was last updated.
MessagingServiceSid SID<MG> Optional The unique ID of the Messaging Service this conversation belongs to.
Pattern: ^MG[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
An optional string metadata field you can use to store any data you wish. The string value must contain structurally valid JSON if specified. Note that if the attributes are not set "{}" will be returned.
State enum<string> Optional Current state of this conversation. Can be either active
, inactive
or closed
and defaults to active
Possible values: inactive
active
closed
Timers.Inactive string Optional ISO8601 duration when conversation will be switched to inactive
state. Minimum value for this timer is 1 minute.
Timers.Closed string Optional ISO8601 duration when conversation will be switched to closed
state. Minimum value for this timer is 10 minutes.
Bindings.Email.Address string Optional The default email address that will be used when sending outbound emails in this conversation.
Bindings.Email.Name string Optional The default name that will be used when sending outbound emails in this conversation.
_18 // Download the helper library from https://www.twilio.com/docs/node/install
_18 const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18 // Find your Account SID and Auth Token at twilio.com/console
_18 // and set the environment variables. See http://twil.io/secure
_18 const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18 const authToken = process.env.TWILIO_AUTH_TOKEN;
_18 const client = twilio(accountSid, authToken);
_18 async function createConversation() {
_18 const conversation = await client.conversations.v1.conversations.create({
_18 friendlyName: "Friendly Conversation",
_18 console.log(conversation.sid);
_23 "sid": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "chat_service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "friendly_name": "Friendly Conversation",
_23 "unique_name": "unique_name",
_23 "attributes": "{ \"topic\": \"feedback\" }",
_23 "date_created": "2015-12-16T22:18:37Z",
_23 "date_updated": "2015-12-16T22:18:38Z",
_23 "date_inactive": "2015-12-16T22:19:38Z",
_23 "date_closed": "2015-12-16T22:28:38Z"
_23 "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
_23 "messages": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages",
_23 "webhooks": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks"
GET https://conversations.twilio.com/v1/Conversations/{Sid}
You can fetch a Conversation by providing your account credentials and the conversation SID (provided when the Conversation is created).
The most valuable part of the Conversation resource itself is the attributes
key, which includes metadata attached to the conversation from the moment of its creation.
The other relevant parts of a Conversation include its Participants (the entities who are currently conversing) and the Messages they've sent. Both of these are linked directly from the top-level url
key.
Property name Type Required PII Description
A 34 character string that uniquely identifies this resource. Can also be the unique_name
of the Conversation.
Fetch Conversation by SID
_18 // Download the helper library from https://www.twilio.com/docs/node/install
_18 const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18 // Find your Account SID and Auth Token at twilio.com/console
_18 // and set the environment variables. See http://twil.io/secure
_18 const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18 const authToken = process.env.TWILIO_AUTH_TOKEN;
_18 const client = twilio(accountSid, authToken);
_18 async function fetchConversation() {
_18 const conversation = await client.conversations.v1
_18 .conversations("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
_18 console.log(conversation.accountSid);
_23 "sid": "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_23 "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "chat_service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "friendly_name": "My First Conversation",
_23 "unique_name": "first_conversation",
_23 "attributes": "{ \"topic\": \"feedback\" }",
_23 "date_created": "2015-12-16T22:18:37Z",
_23 "date_updated": "2015-12-16T22:18:38Z",
_23 "date_inactive": "2015-12-16T22:19:38Z",
_23 "date_closed": "2015-12-16T22:28:38Z"
_23 "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
_23 "messages": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages",
_23 "webhooks": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks"
GET https://conversations.twilio.com/v1/Conversations
Returns a list of conversations sorted by recent message activity.
Property name Type Required PII Description
Specifies the beginning of the date range for filtering Conversations based on their creation date. Conversations that were created on or after this date will be included in the results. The date must be in ISO8601 format, specifically starting at the beginning of the specified date (YYYY-MM-DDT00:00:00Z), for precise filtering. This parameter can be combined with other filters. If this filter is used, the returned list is sorted by latest conversation creation date in descending order.
Defines the end of the date range for filtering conversations by their creation date. Only conversations that were created on or before this date will appear in the results. The date must be in ISO8601 format, specifically capturing up to the end of the specified date (YYYY-MM-DDT23:59:59Z), to ensure that conversations from the entire end day are included. This parameter can be combined with other filters. If this filter is used, the returned list is sorted by latest conversation creation date in descending order.
State enum<string> Optional State for sorting and filtering list of Conversations. Can be active
, inactive
or closed
Possible values: inactive
active
closed
How many resources to return in each list page. The default is 50, and the maximum is 1000.
Minimum: 1
Maximum: 1000
The page index. This value is simply for client state.
Minimum: 0
The page token. This is provided by the API.
_18 // Download the helper library from https://www.twilio.com/docs/node/install
_18 const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18 // Find your Account SID and Auth Token at twilio.com/console
_18 // and set the environment variables. See http://twil.io/secure
_18 const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18 const authToken = process.env.TWILIO_AUTH_TOKEN;
_18 const client = twilio(accountSid, authToken);
_18 async function listConversation() {
_18 const conversations = await client.conversations.v1.conversations.list({
_18 conversations.forEach((c) => console.log(c.accountSid));
_36 "sid": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_36 "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_36 "chat_service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_36 "messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_36 "friendly_name": "Home Repair Visit",
_36 "attributes": "{ \"topic\": \"feedback\" }",
_36 "date_created": "2015-12-16T22:18:37Z",
_36 "date_updated": "2015-12-16T22:18:38Z",
_36 "date_inactive": "2015-12-16T22:19:38Z",
_36 "date_closed": "2015-12-16T22:28:38Z"
_36 "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_36 "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
_36 "messages": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages",
_36 "webhooks": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks"
_36 "first_page_url": "https://conversations.twilio.com/v1/Conversations?PageSize=50&Page=0",
_36 "previous_page_url": null,
_36 "url": "https://conversations.twilio.com/v1/Conversations?PageSize=50&Page=0",
_36 "next_page_url": null,
_36 "key": "conversations"
POST https://conversations.twilio.com/v1/Conversations/{Sid}
The core definition of any Conversation can be modified on the fly. Update a Conversation to attach metadata that you extract on the fly (e.g. "customer-loyalty-status": "gold", or "aml-risk-level": "heightened"), or to correct mistakes manually.
Property name Type Required PII Description
A 34 character string that uniquely identifies this resource. Can also be the unique_name
of the Conversation.
Property name Type Required PII Description
FriendlyName string Optional The human-readable name of this conversation, limited to 256 characters. Optional.
DateCreated string<date-time> Optional The date that this resource was created.
DateUpdated string<date-time> Optional The date that this resource was last updated.
An optional string metadata field you can use to store any data you wish. The string value must contain structurally valid JSON if specified. Note that if the attributes are not set "{}" will be returned.
MessagingServiceSid SID<MG> Optional The unique ID of the Messaging Service this conversation belongs to.
Pattern: ^MG[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
State enum<string> Optional Current state of this conversation. Can be either active
, inactive
or closed
and defaults to active
Possible values: inactive
active
closed
Timers.Inactive string Optional ISO8601 duration when conversation will be switched to inactive
state. Minimum value for this timer is 1 minute.
Timers.Closed string Optional ISO8601 duration when conversation will be switched to closed
state. Minimum value for this timer is 10 minutes.
An application-defined string that uniquely identifies the resource. It can be used to address the resource in place of the resource's sid
in the URL.
Bindings.Email.Address string Optional The default email address that will be used when sending outbound emails in this conversation.
Bindings.Email.Name string Optional The default name that will be used when sending outbound emails in this conversation.
Update a Conversation's property
_18 // Download the helper library from https://www.twilio.com/docs/node/install
_18 const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18 // Find your Account SID and Auth Token at twilio.com/console
_18 // and set the environment variables. See http://twil.io/secure
_18 const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18 const authToken = process.env.TWILIO_AUTH_TOKEN;
_18 const client = twilio(accountSid, authToken);
_18 async function updateConversation() {
_18 const conversation = await client.conversations.v1
_18 .conversations("Sid")
_18 .update({ friendlyName: "Important Customer Question" });
_18 console.log(conversation.friendlyName);
_23 "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "chat_service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
_23 "friendly_name": "Important Customer Question",
_23 "unique_name": "unique_name",
_23 "attributes": "{ \"topic\": \"feedback\" }",
_23 "date_created": "2015-12-16T22:18:37Z",
_23 "date_updated": "2015-12-16T22:18:38Z",
_23 "date_inactive": "2015-12-16T22:19:38Z",
_23 "date_closed": "2015-12-16T22:28:38Z"
_23 "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23 "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
_23 "messages": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages",
_23 "webhooks": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks"
DELETE https://conversations.twilio.com/v1/Conversations/{Sid}
Property name Type Required PII Description
A 34 character string that uniquely identifies this resource. Can also be the unique_name
of the Conversation.
_16 // Download the helper library from https://www.twilio.com/docs/node/install
_16 const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_16 // Find your Account SID and Auth Token at twilio.com/console
_16 // and set the environment variables. See http://twil.io/secure
_16 const accountSid = process.env.TWILIO_ACCOUNT_SID;
_16 const authToken = process.env.TWILIO_AUTH_TOKEN;
_16 const client = twilio(accountSid, authToken);
_16 async function deleteConversation() {
_16 await client.conversations.v1
_16 .conversations("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")