Configure conversation intelligence to connect call data
Configure call data to assist sales managers to get an overview of the call center and drill down to get call statistics for individual sellers.
License and role requirements
Requirement type | You must have |
---|---|
License | Dynamics 365 Sales Premium or Dynamics 365 Sales Enterprise More information: Dynamics 365 Sales pricing |
Security roles | System Administrator More information: Predefined security roles for Sales |
Create repository and upload call data
Conversation intelligence in Dynamics 365 Sales Insights assists the sales managers in your organization to get an overview of the call center and drill down to get call statistics for individual sellers. This helps the sales managers change the shape of the business by giving smarter coaching and enhancing sales to generate revenue.
You must have administrative privileges to configure Call intelligence for your organization. To configure Call intelligence, perform the following steps:
Note
If you want to update the storage container and connection string, see Update configuration of call data.
Create call recording repository
Create a call recording repository (blob container) in an Azure storage account to help you upload the call recordings in the repository for Call intelligence to assess.
Note
While creating the repository, ensure that the repository is created in the same region as your tenant to upload the call recordings. For example, if your tenant is in NAM (North America), ensure that you create the repository in the NAM region only.
- Sign in to the Azure dashboard.
- On the navigation pane, select All resources, and open the desired storage account.
- From Blob service, select Blobs then + Container.
- Specify the container information, such as name and public access level.
- Select OK.
The container is created. To learn more, see Create a container - From Settings, go to Access keys and note the Connection string of the storage account. This connection string is used to connect Call intelligence to your Azure storage account.
Now you are ready to upload call recordings to the blob container and configure the call data for conversation intelligence.
Upload call recordings or transcripts
Upload the call recording or transcript to the created call recording repository (blob container) in Azure to process and get data. Upload the following files to process the call or transcript:
- Call recording or transcript file.
- The format of audio file can be MP3, WAV, or OGG.
- To know about transcript file, see Transcript file.
- Corresponding metadata file in JSON format.
Note
- You must have at least 10 call recording files in the call recording repository to process and display the data in Call intelligence.
- The conversation-intelligence-managed container is created and managed automatically by the application.
Review the following requirements for files before you upload
The file name cannot contain reserved characters, such as, !*'();:@&=+$,/?%#[]".
The length of the file name should be fewer than 260 characters.
The call recording should be a stereo type recording only.
The names of the uploaded files must be unique for your organization and must not be repeated.
The file names for the audio or transcript file, and its corresponding JSON files must be the same. For example, if you name the audio file call-recording-10-dec-2018.wav, the corresponding JSON file should be named call-recording-10-dec-2018.json. Similarly, name of the transcript file is call-recording-10-dec-2018.transcript.json, the corresponding JSON file is named call-recording-10-dec-2018.json.
The JSON file parameters must be properly configured. The JSON file contains the following parameters:
Name Type Description fileName
— Specifies the name of the conversation file. conversationType
— Specifies the type of conversation. The following types of conversation are supported: audio and transcript. startTime
— Specifies the start time of the conversation and calculated based on the ISO 8601 format. For example, 2020-11-17T13:33:59.909Z. participants
Specifies the details of the participants. id
Enter the unique identification number of each participant. The numbers must be positive numbers. For example, 1, 2, and 3. role
Specifies the role of the participant. The value must be agent, customer, or other. email
Specifies the email ID of the participant. crmId
Specifies the CRM ID of the participant. aadId
Specifies the Azure Directory ID of the participant. Note: To uniquely identify the participant, one of the following objects is required in the file: email
,crmId
, oraadId
.displayName
(Optional) Specifies the display name of the participant. phoneNumber
(Optional) Specifies the phone number of the participant. crm
Specifies the details of CRM. accounts
(Optional) Specifies an array of the CRM accounts that are related to the conversation. Each account is an object that contains id
.contacts
(Optional) Specifies an array of the CRM contacts that are related to the conversation. Each contact is an object that contains id
.lead
(Optional) Specifics the CRM lead details that are related to the conversation. The lead is an object that contains id
.opportunity
(Optional) Specifics the CRM opportunity details that are related to the conversation. The opportunity is an object that contains id
.activity
(Optional) Specifics the CRM activity details that are related to the conversation. The activity is an object that contains id
.mediaReferenceId
(Optional) Specifics the CRM media reference ID (Guid). locale
— Specifies the locale used in the conversation. Currently, we support en-US, en-GB, de-DE, fr-FR, it-IT, es-ES, es-MX, ja-JP, pt-BR, zh-CN, nl-NL, fr-CA, pt-PT, he-IL, da-DK, sv-SE, fi-FI, nb-NO, and ar-BH. version
— Specifies the version of metadata file. The value is 3.0.0. title
— (Optional) Specifies the title of the conversation. scope
— (Optional) Specifies whether the conversation is internal or external. The value is External or Internal. agentChannel
— (Optional) Specifies the channel that the agent is recorded on. The value is Left or Right. By default, the value Left is selected. country
— (Optional) Specifies from which country the conversation originated. provider
— (Optional) Specifies the service provider of the conversation such as Skype. payload
— (Optional) Specifies the customer custom payload. The payload will be returned only when calling the infra api. More information: Conversation Intelligence Infra API. trackedKeywords
— (Optional) Specifies the keywords that must be tracked in the conversation along with the organization and manager level keywords. trackedCompetitors
— (Optional) Specifies the competitors that must be tracked in the conversation and along with the organization and manager level competitors. The following sample is an example of JSON file format:
{ "id": "c5538c88-2f87-436e-bdd8-ac4cdb77ba66", "fileName": "c5538c88-2f87-436e-bdd8-ac4cdb77ba66.mp3", "conversationType": "audio", "title": "Contoso Deal 1/1. Metadata version: v3.0.0", "startTime": "2020-11-17T13:33:59.909Z", "participants": [ { "id": 1, "role": "agent", "email": "username@yourorganization.com" }, { "id": 2, "role": "customer" } ], "locale": "en-us", "direction": "outbound", "agentChannel": "left", "scope": "internal", "version": "3.0.0", "payload": { "internalId": "a38ad647-ea6c-4e2d-a833-c60d1748b14d" }, "region": "North America", "country": "United states", "provider": "Skype", "crm": { "activity":{ "id": "f470ea8b-d928-eb11-a813-000d3a8d88aa", }, "contacts": [ { "id": "ec0cc9bf-2595-ea11-a812-000d3a54419d", } ], "accounts": [ { "id": "ec0cc9bf-2595-ea11-a812-000d3a54419d", } ], "lead": { "id": "438c8775-7af8-44e3-b5ec-07dd5f561c52", }, "opportunity": { "id": "b01138c5-9d50-4da7-a2ca-31cf180d0b8c", }, "mediaReferenceId": "2d960ae3-e527-477c-83aa-862794ad5795" }, "trackedKeywords": [ "printer", "price" ], "trackedCompetitors": [ "Contoso", "Alpine Ski House" ] }
The transcript file must be a JSON file and the format of the file name is name.transcript.json and contains an array of fragments. Each fragment contains the following parameters:
Parameter Objects Description id
— The unique ID of the transcript fragment (GUID). text
— The content of the fragment. offset
— The relative start time of the fragment from the start of the conversation in milliseconds. duration
— The duration of the fragment from the offset in milliseconds. participantId
— The participant ID in the conversation. For example, 1, 2, and 3. words
— (Optional) An array of words in the fragment. word
A word in a phrase. offset
The time of the word from the start of the conversation in milliseconds. duration
The audio duration of this word in milliseconds. confidence
— (Optional) The confidence value of the fragment. The value must be between 0 to 1. locale
— The locale of the fragment. Currently, we support en-US, en-GB, de-DE, fr-FR, it-IT, es-ES, es-MX, ja-JP, pt-BR, zh-CN, nl-NL, fr-CA, pt-PT, he-IL, and ar-BH. The following sample is an example of transcript JSON file:
[ { "id": "3fc7468d-85e1-990d-de37-d6a65bd8233f", "text": "Hello hello Matthews, this Scott calling from Contoso to see how your printer trial is going.", "offset": 1230, "duration": 6460, "participantId": 1, "words": [ { "text": "Hello", "offset": 12300, "duration": 5300 }, { "text": "hello", "offset": 17800, "duration": 3100 }, { "text": "Matthews,", "offset": 20900, "duration": 5000 }, { "text": "this", "offset": 25900, "duration": 1700 }, { "text": "Scott", "offset": 27600, "duration": 3500 }, { "text": "calling", "offset": 31100, "duration": 3100 }, { "text": "from", "offset": 34200, "duration": 1400 }, { "text": "Contoso", "offset": 35600, "duration": 5600 }, { "text": "to", "offset": 41200, "duration": 1100 }, { "text": "see", "offset": 42300, "duration": 2000 }, { "text": "how", "offset": 44300, "duration": 1200 }, { "text": "your", "offset": 45500, "duration": 2200 }, { "text": "printer", "offset": 47700, "duration": 5000 }, { "text": "trial", "offset": 65900, "duration": 4000 }, { "text": "is", "offset": 69900, "duration": 1600 }, { "text": "going.", "offset": 71500, "duration": 5400 } ], "confidence": 0.925755441, "locale": "en-us" }, { "id": "4f86204d-9a1b-4967-a66f-e2c40fa33484", "text": "Are you able to start using it?", "offset": 7710, "duration": 1330, "participantId": 1, "words": [ { "text": "Are", "offset": 77100, "duration": 1800 }, { "text": "you", "offset": 78900, "duration": 900 }, { "text": "able", "offset": 79800, "duration": 1700 }, { "text": "to", "offset": 81500, "duration": 800 }, { "text": "start", "offset": 82300, "duration": 2700 }, { "text": "using", "offset": 85000, "duration": 2700 }, { "text": "it?", "offset": 87700, "duration": 2700 } ], "confidence": 0.925755441, "locale": "en-us" }, ]
Update configuration of call data
Configuring the call data helps us to fetch the call recording from your repository and process the audio file for call analytics. The analysis includes creating transcripts and providing insights for the call recordings. To configure the call data:
Open the Conversation Intelligence application.
Select the settings icon on the top-right of the page and then select Settings.
On the Settings page, select Data source.
In the Call data section, enter the Storage connection string that you configured in Azure.
The list of containers that are available is displayed in the Container name drop-down.
Select Container name from the list.
(Optional) Download the metadata file sample that is used to upload to the call recording repository in Azure along with the call recording file.
Select Save.
The call data storage container is updated, and you can start uploading the call data into the new container.
Can't find the options in your app?
There are three possibilities:
You don't have the necessary license or role.
Your administrator hasn't turned on the feature.
Your organization is using a custom app. Check with your administrator for exact steps. The steps described in this article are specific to the out-of-the-box apps such as, the Sales Hub or Sales Professional app.
See also
Introduction to administer conversation intelligence
Prerequisites to configure conversation intelligence
Conversation Intelligence FAQs
Feedback
Submit and view feedback for