Insights API (v3) - Twilio Insights endpoints
Public beta
Conversation Insights, including the APIs, is currently available as a public beta release and the information contained in this document is subject to change. Some features are not yet implemented and others may be changed before the product is declared as generally available. Public beta products are not covered by the Twilio Support Terms or Twilio Service Level Agreement.
Conversation Insights is not PCI compliant or a HIPAA Eligible Service and should not be used 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.
Fetch Metadata for the Conversations domain
Execute a semantic query
Fetch semantic query results
GET/v3/InsightsDomains/Conversations/Metadata
Base url: https://insights.twilio.com (base url)
Fetch Metadata for the Conversations domain.
successful operation
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 fetchMetadata() {11const metadata = await client.insights.v3.metadata.fetch();1213console.log(metadata.domain);14}1516fetchMetadata();
Response
1{2"cubes": [3{4"name": "name",5"description": "description",6"measures": [7{8"name": "name",9"description": "description",10"type": "type",11"aggregation": "aggregation"12}13],14"dimensions": [15{16"name": "name",17"description": "description",18"type": "type"19}20]21}22],23"domain": "domain"24}
POST/v3/InsightsDomains/Conversations/Query
Base url: https://insights.twilio.com (base url)
Execute a semantic query against the Conversations domain.
Number of items per page
20Minimum: 1application/jsonStructured query definition that specifies what data to retrieve and how to filter, group, and order it
Successful query response
Indicates the business domain the query was executed against
InsightsArray of result objects containing the query results. Each object contains properties matching the requested measures and dimensions.
[{"Id":"conv1","Languages":["en"],"Channels":["voice"],"OperatorResult.Value":"positive"},{"Id":"conv2","Languages":["en","es"],"Channels":["chat"],"OperatorResult.Value":"negative"}]Pagination metadata containing navigation tokens and result information, this schema should according to convention be added to the response payload's 'meta' attribute
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 createQueryResults() {11const query = await client.insights.v3.query.create({12query: {13measures: ["measures"],14dimensions: ["dimensions"],15filters: [16{17op: "AND",18expressions: [19{20op: "IN",21field: "field",22values: ["values"],23},24],25},26],27orderBy: [28{29field: "field",30direction: "DESC",31},32],33},34});3536console.log(query.domain);37}3839createQueryResults();
Response
1{2"domain": "domain",3"items": [4{}5],6"meta": {7"key": "key",8"pageSize": 20,9"previousToken": "previousToken",10"nextToken": "nextToken"11}12}
GET/v3/InsightsDomains/Conversations/Query
Base url: https://insights.twilio.com (base url)
Pagination token
eyJwYWdlIjoyLCJxdWVyeSI6ImJvb2tzIn0=Successful query response
Indicates the business domain the query was executed against
InsightsArray of result objects containing the query results. Each object contains properties matching the requested measures and dimensions.
[{"Id":"conv1","Languages":["en"],"Channels":["voice"],"OperatorResult.Value":"positive"},{"Id":"conv2","Languages":["en","es"],"Channels":["chat"],"OperatorResult.Value":"negative"}]Pagination metadata containing navigation tokens and result information, this schema should according to convention be added to the response payload's 'meta' attribute
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 fetchQueryResults() {11const query = await client.insights.v3.query.fetch({12pageToken: "pageToken",13});1415console.log(query.domain);16}1718fetchQueryResults();
Response
1{2"domain": "domain",3"items": [4{}5],6"meta": {7"key": "key",8"pageSize": 20,9"previousToken": "previousToken",10"nextToken": "nextToken"11}12}