Skip to contentSkip to navigationSkip to topbar
On this page

Voice Intelligence Onboarding Guide


Voice Intelligence helps you analyze and collect useful data insights from recorded conversations through artificial intelligence and machine learning technologies.

Diagram showing transcript sources to integrations via prebuilt and custom operators through API and webhooks.

In this guide, you'll learn the key concepts of Voice Intelligence, including:

  • An introduction to Transcripts and their supported languages.
  • An explanation of Language Operators.
  • The definition and settings of a Voice Intelligence Service.

Then, you'll be guided through the steps required to set up and use Voice Intelligence, including:

  1. Setting up transcriptions.
  2. Confirming transcriptions are successful.
  3. Setting up Language Operators.
  4. Viewing Operator Results

For each step, instructions are provided for using both the Twilio Console and the Voice Intelligence API.


Key concepts

key-concepts page anchor

Transcripts

transcripts page anchor

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.

Supported languages

supported-languages page anchor

The following table lists the current language support for Voice Intelligence Transcriptions.

(information)

Info

PII redaction removes personally identifiable information from text transcriptions or media recordings to help protect sensitive data.

  • PII redaction from Transcripts is available for all supported Transcription languages.
  • PII redaction from media recordings is available only in en-US.
  • For Operator language support, see the Multilanguage support section of the Language Operators page.
Supported languageLanguage code
Danish - Denmarkda-DK
Dutch - Netherlandsnl-NL
English - Australiaen-AU
English - United Kingdomen-GB
English - United Statesen-US
French - Francefr-FR
German - Germanyde-DE
Italian - Italyit-IT
Norwegian - Norwayno-NO
Polish - Polandpl-PL
Portuguese - Brazilpt-BR
Portuguese - Portugalpt-PT
Spanish - Mexicoes-MX
Spanish - Spaines-ES
Spanish - United Stateses-US
Swedish - Swedensv-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:

  • Transcribe a recorded call in the language set for your Service.
  • Control and configure the processing of recordings into Transcripts.
  • Add one or more Language Operators to your Transcripts to gain insights.

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.


Create or sign in to your Twilio account

create-or-sign-in-to-your-twilio-account page anchor
(warning)

Warning

Voice Intelligence can't transcribe encrypted recordings or recordings of PCI(link takes you to an external page)-compliant accounts.

Identify your Service configuration settings

identify-your-service-configuration-settings page anchor

Determine the following before creating your Service:

  • Whether you need automatic transcription for all Voice recordings on your Twilio Account.
  • Whether you need to redact Personally Identifiable Information (PII) from the recording media, not just the Transcript text.
  • The language you want to use for transcriptions.

Enable automatic transcription of all Twilio voice call recordings

enable-automatic-transcription-of-all-twilio-voice-call-recordings page anchor

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(link takes you to an external page) > Settings. You can enable this option at any time during and after the initial Service creation.

(warning)

Warning

Enabling auto_transcribe in more than one Service results in multiple transcriptions and charges.

(information)

Info

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(link takes you to an external page).

The auto_transcribe property doesn't function as expected under these conditions:

  • If the Account is PCI-compliant.
  • If the recordings are encrypted with a client key.
  • If the recordings use external storage.

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.

(warning)

Warning

If you change the PII redaction or auto-transcribe setting on a Service, it may take up to 10 minutes to take effect.

Set the transcription language

set-the-transcription-language page anchor

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.

(information)

Info

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.


Step 1: Set up Transcription using the Twilio Console

step-1-set-up-transcription-using-the-twilio-console page anchor

Create a Voice Intelligence Service and Configure Transcription

create-a-voice-intelligence-service-and-configure-transcription page anchor
  1. Log in(link takes you to an external page) to the Twilio Console.
  2. Navigate to Voice Intelligence > Services(link takes you to an external page).
  3. Click Create new Service. A pop-up window will appear asking you to:
    • Provide a UniqueName for your Service, such as CustomerSupportTranscription.
    • Add a FriendlyName, a brief description of your Service.
    • Select the language that best fits your needs.
    • Accept the Predictive and Generative AI/ML Features Addendum.
    • (Optional) Select one or more of the following options:
      • PII redaction: Redacts Personally Identifiable Information from your data.
      • Auto Transcribe: Automatically transcribes the recorded voice data.
      • Enable data use (optional): Allows the usage of captured data.
  4. Click Create to complete the setup. Your new Service is ready for use.

Next, you can choose between two methods for handling transcriptions:

  • Auto Transcribe: Configure your Voice Intelligence Service to automatically transcribe all new Voice call recordings. While this option offers convenience by processing recordings automatically, it doesn't provide fine-grained control over transcript attributes.
  • Create Transcripts via API: Use the Transcript REST API(link takes you to an external page) to trigger transcription for specific recordings. This method allows for more detailed configuration of transcript attributes by referencing the Twilio Recording SID.
(warning)

Warning

Enabling Auto Transcribe on multiple Services results in all new recordings being processed multiple times and charged accordingly.

(information)

Info

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(link takes you to an external page).


Step 2: View completed transcriptions

step-2-view-completed-transcriptions page anchor

Using the Twilio Console

using-the-twilio-console page anchor

Navigate to Voice Intelligence > Transcripts(link takes you to an external page) to view and manage Transcripts. On this page, you can:

  • Search for phrases within Transcripts.
  • Select the Service(s) to display.
  • Select a date range for the Transcripts.
  • Review recently processed recordings.

Using the Voice Intelligence API

using-the-voice-intelligence-api page anchor

Use the Transcript Resource API to retrieve a list of Transcripts.

Fetch multiple TranscriptsLink to code sample: Fetch multiple Transcripts
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function listTranscript() {
11
const transcripts = await client.intelligence.v2.transcripts.list({
12
limit: 20,
13
});
14
15
transcripts.forEach((t) => console.log(t.accountSid));
16
}
17
18
listTranscript();

Output

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
}

Set up a Webhook for new Transcript notifications

set-up-a-webhook-for-new-transcript-notifications page anchor

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(link takes you to an external page) > 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(link takes you to an external page).

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.


Step 3: Set up Language Operators

step-3-set-up-language-operators page anchor

Add a Pre-built Language Operator

add-a-pre-built-language-operator page anchor

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.

  1. Navigate to Voice Intelligence > Services(link takes you to an external page) and select your Service.
  2. To add a Pre-built Language Operator, click Add next to the Operator entry or click the Operator name and select Add to service. A confirmation message appears upon successful addition.

Create and add a Custom Operator

create-and-add-a-custom-operator page anchor

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:

OptionUse caseChecksSample scenario
Phrase MatchingDetect 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.
ClassifyCategorize 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.
  1. Navigate to Voice Intelligence > Services(link takes you to an external page) and select your Service.
  2. Click Create Custom Operator to be redirected to the Select operator type page.
  3. Enter an Operator name and select the desired Custom Operator Type: Phrase Matching or Classify.
  4. Proceed to the Setup operator page to specify phrases for your Operator to match or classify. Complete the Phrase Set Label, Phrase match type (exact or fuzzy), and Phrases for the Operator to search for. Click Add and then Create to view the newly created Language Operator page.
  5. To add the Custom Operator to your Service, click Add to service on the Operator page.
(information)

Info

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.


Step 4: View Operator Results

step-4-view-operator-results page anchor
  1. Navigate to Voice Intelligence > Transcripts(link takes you to an external page).
  2. Select a Transcript to view its details.
  3. In the Transcript details, review the results of the Language Operators applied to the Transcript.

Using the Voice Intelligence API

using-the-voice-intelligence-api-1 page anchor

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/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function listOperatorResult() {
11
const operatorResults = await client.intelligence.v2
12
.transcripts("GTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
13
.operatorResults.list({ limit: 20 });
14
15
operatorResults.forEach((o) => console.log(o.operatorType));
16
}
17
18
listOperatorResult();

Output

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
}

Set up a Webhook for new Operator Results notifications

set-up-a-webhook-for-new-operator-results-notifications page anchor

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(link takes you to an external page) > 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(link takes you to an external page).

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.


5. Consume Transcripts & Operator Results in your applications

5-consume-transcripts--operator-results-in-your-applications page anchor

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:

  • Using the API: Programmatically consume the results in your app using a Webhook + REST API call architecture
  • Using Single-Page Applications: Embed single-page applications in your own application with pre-built UIs that mirror the Console

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.

Using Single-Page Applications

using-single-page-applications page anchor

Embed pre-built single-page applications in your own application to view Voice Intelligence Transcripts: