Voice Intelligence helps you analyze and collect useful data insights from recorded conversations through artificial intelligence and machine learning technologies.
In this guide, you'll learn the key concepts of Voice Intelligence, including:
Then, you'll be guided through the steps required to set up and use Voice Intelligence, including:
For each step, instructions are provided for using both the Twilio Console and the Voice Intelligence API.
A Voice Intelligence Transcript resource represents a transcribed voice conversation. Creating a new Transcript resource initiates the transcription process for a specific recording's audio. In addition to call recordings, Real-Time Transcriptions can now be persisted in Voice Intelligence. You can transcribe recordings made via Twilio and recordings stored outside Twilio.
The following table lists the current language support for Voice Intelligence Transcriptions.
PII redaction removes personally identifiable information from text transcriptions or media recordings to help protect sensitive data.
en-US
.Supported language | Language code |
---|---|
Danish - Denmark | da-DK |
Dutch - Netherlands | nl-NL |
English - Australia | en-AU |
English - United Kingdom | en-GB |
English - United States | en-US |
French - France | fr-FR |
German - Germany | de-DE |
Italian - Italy | it-IT |
Norwegian - Norway | no-NO |
Polish - Poland | pl-PL |
Portuguese - Brazil | pt-BR |
Portuguese - Portugal | pt-PT |
Spanish - Mexico | es-MX |
Spanish - Spain | es-ES |
Spanish - United States | es-US |
Swedish - Sweden | sv-SE |
Language Operators use artificial intelligence and machine learning technologies to provide additional analysis and insights on your Transcripts.
Voice Intelligence supports two types of Language Operators:
You can add and configure Language Operators to a Service using the Twilio Console or the Voice Intelligence API. For more detailed information, see Language Operators.
A Voice Intelligence Service represents an individual configuration for Transcripts and Language Operators. Services help you organize and centralize the resources needed to efficiently manage transcription and analysis tasks.
Twilio's Voice Intelligence Service allows you to:
You can create multiple Services within a single Account to suit your needs. To learn more about the different configuration options for a Voice Intelligence Service, see Identify your Service configuration settings.
You must create at least one Service before you can transcribe a recording or add Language Operators to your Transcripts.
Now that you've learned the key concepts of Voice Intelligence, let's start setting it up for your Twilio account.
Account SID
and Auth Token
because you will need them in future steps.Voice Intelligence can't transcribe encrypted recordings or recordings of PCI-compliant accounts.
Determine the following before creating your Service:
Enabling automatic transcription lets you transcribe Voice call recordings without needing to call the Create Transcript Resource endpoint. Enable auto_transcribe
through the Service Resource or via the Console by navigating to Voice Intelligence > Services > Settings. You can enable this option at any time during and after the initial Service creation.
Enabling auto_transcribe
in more than one Service results in multiple transcriptions and charges.
While the auto_transcribe
feature provides simplicity and convenience by automatically sharing recordings with Voice Intelligence, it doesn't offer fine-grained control for setting transcript attributes—such as participant settings and media information—that may be useful when viewing transcript and Language Operator results. For complete transcript attribute control, we recommend creating transcripts using the Create Transcription API Endpoint.
The auto_transcribe
property doesn't function as expected under these conditions:
PII redaction removes personally identifiable information from text transcriptions or media recordings to help protect sensitive data.
Voice Intelligence allows you to redact PII from your voice call recordings and Transcripts. PII redaction utilizes artificial intelligence and machine learning technologies.
Update your Service with auto_redaction = true
to automatically redact PII from all Transcripts made on this Service. To automatically redact PII from all recording media sent to the Service, set media_redaction = true
.
If you change the PII redaction or auto-transcribe setting on a Service, it may take up to 10 minutes to take effect.
The LanguageCode
set during Service creation determines the Transcription language for all voice call recordings processed by that Service. The default is en-US
if no LanguageCode
is set.
A Service supports only one LanguageCode
, which can't be updated once set. To transcribe voice call recordings in multiple languages, create a separate Service for each language.
UniqueName
for your Service, such as CustomerSupportTranscription.FriendlyName
, a brief description of your Service.Next, you can choose between two methods for handling transcriptions:
Enabling Auto Transcribe on multiple Services results in all new recordings being processed multiple times and charged accordingly.
For most customers, using the Twilio Console is recommended for creating and managing your Voice Intelligence Service. If preferred, you may also use the API for creating a Service.
Navigate to Voice Intelligence > Transcripts to view and manage Transcripts. On this page, you can:
Use the Transcript Resource API to retrieve a list of Transcripts.
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 listTranscript() {11const transcripts = await client.intelligence.v2.transcripts.list({12limit: 20,13});1415transcripts.forEach((t) => console.log(t.accountSid));16}1718listTranscript();
1{2"transcripts": [3{4"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"service_sid": "GAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",6"sid": "GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",7"date_created": "2010-08-31T20:36:28Z",8"date_updated": "2010-08-31T20:36:28Z",9"status": "queued",10"channel": {},11"data_logging": false,12"language_code": "en-US",13"media_start_time": null,14"duration": 0,15"customer_key": null,16"url": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",17"redaction": true,18"links": {19"sentences": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Sentences",20"media": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media",21"operator_results": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/OperatorResults"22}23}24],25"meta": {26"key": "transcripts",27"page": 0,28"page_size": 50,29"first_page_url": "https://intelligence.twilio.com/v2/Transcripts?LanguageCode=en-US&SourceSid=REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&ServiceSid=GAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&AfterDateCreated=2019-11-22T23%3A46%3A00Z&PageSize=50&Page=0",30"next_page_url": null,31"previous_page_url": null,32"url": "https://intelligence.twilio.com/v2/Transcripts?LanguageCode=en-US&SourceSid=REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&ServiceSid=GAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&AfterDateCreated=2019-11-22T23%3A46%3A00Z&PageSize=50&Page=0"33}34}
In addition, you can be notified every time that a new Transcript is ready by setting up a Webhook. This is useful if you'd like to take immediate action in your system when a new Transcript is ready. The Webhook is configured at the Voice Intelligence Service level.
You can configure this in Console by navigating to Services > select your Service > click the "Webhooks" tab.
Here, you can provide a Callback URL (where you want to send the request) and an HTTP Method (POST
or GET
) for the Webhook. To see the signature of the Webhook request body, please see here.
The Webhook payload will contain the transcript_sid
, which can then be used to send a follow-up request to fetch transcript sentences.
Note: The transcript_sid
from the Webhook payload can also be used to fetch Language Operator results, covered later in this guide.
Pre-built Language Operators are maintained by Twilio and offered for common language analysis use cases. Refer to Pre-built Language Operators for a complete list of available pre-built Operators.
When creating a Custom Operator, choose between Phrase Matching and Classify Operator Types. Use the following table to determine which option best fits your needs:
Option | Use case | Checks | Sample scenario |
---|---|---|---|
Phrase Matching | Detect specific keywords or phrases within a transcript. | Specific segments of the conversation where the phrase might appear. | Identify when a customer mentions a product name or asks a specific question. |
Classify | Categorize entire transcripts or conversation segments into predefined groups. | The entire transcript or specific conversation segments for overall categorization. | Determine if a call should be classified as a sales inquiry or a support request. |
For most customers, the Twilio Console provides a simple and efficient way to manage Language Operators. For API integration or advanced use cases, refer to the Language Operators API documentation.
Use the OperatorResults Resource API to retrieve analyzed data from a Transcript after applying specific Operators.
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 listOperatorResult() {11const operatorResults = await client.intelligence.v212.transcripts("GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")13.operatorResults.list({ limit: 20 });1415operatorResults.forEach((o) => console.log(o.operatorType));16}1718listOperatorResult();
1{2"operator_results": [],3"meta": {4"page": 0,5"page_size": 50,6"first_page_url": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/OperatorResults?PageSize=50&Page=0",7"previous_page_url": null,8"url": "https://intelligence.twilio.com/v2/Transcripts/GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/OperatorResults?PageSize=50&Page=0",9"next_page_url": null,10"key": "operator_results"11}12}
In addition, you can be notified every time that new Operator Results is ready by setting up a Webhook. To do this, you'll use the same Webhook used for notification of new Transcript availability.
If you haven't already done so, you can configure this in Console by navigating to Services > select your Service > click the "Webhooks" tab.
Here, you can provide a Callback URL (where you want to send the request) and an HTTP Method (POST
or GET
) for the Webhook. To see the signature of the Webhook request body, please see here.
The Webhook payload will contain the transcript_sid
, which can then be used to send a follow-up request to fetch Operator Results.
Note: A recommended architecture is to consume the single Webhook in your application, and use the trancription_sid
to fetch both the Transcript sentences and Operator Results at the same time.
Integration of Voice Intelligence Transcript and Language Operator Results into your system(s) is critical to leveraging the insights gained from your customer conversations.
There are two main ways to integrate Voice Intelligence into your applications:
This is the most common and flexible way that you can consume Transcript & Operator Results in your systems.
A Webhook can be set up to notify your application when new Transcripts / Operator Results are ready. Your application can then make a REST API call to fetch the results. This model is covered in more detail in the above sections.
Embed pre-built single-page applications in your own application to view Voice Intelligence Transcripts: