Conversation analytics

Analyze a conversation to better understand the interactions and gain insights about participant behavior.

For example: John and Arya talked over the phone for 60 minutes. John talked for 40 mins. Arya talked for 10 minutes. No one spoke for 10 minutes because John kept Arya on hold.

Use the Conversations API Get analytics request to view speaker ratio, talk time per speaker, duration of silence, pace, and overlap.

  • Speaker Ratio is the total ratio of a speaker's time spent talking compared to other speakers in the conversation. In our example, the ratio will be 4:1 signifying that John spoke 4 times more than Arya.

  • Talk Time is per speaker. In our example, Talk Time is 40 minutes for John and 10 minutes for Arya.

  • Silence indicates the time during which none of the speakers said anything. In our current example, Silence is 10 minutes.

  • Pace is the rate of speech in words per minute (wpm), per speaker. If John speaks at 100 words per minute, the pace as wpm: 100.

  • Overlap occurs in a conversation if two or more people are speaking at the same time. Analytics reports overlap as a percentage of the total conversation in seconds.

Authentication

This request requires an access token, as described in Authenticate.


Get conversation analytics

This section describes how to get conversation analytics from a conversation. This request requires a conversation ID. You receive a conversation ID when you process a conversation with the Symbl.ai APIs.

To get conversation analytics, use the GET <https://api.symbl.ai/v1/conversations/><CONVERSATION_ID>/analytics operation:

👍

Try our interactive examples!

We provide interactive versions of these code samples: curl, Node.js, Python

To get started with our code samples, see Set Up Your Test Environment.

ACCESS_TOKEN="<ACCESS_TOKEN>"
CONVERSATION_ID="<CONVERSATION_ID>"

curl --request GET \
  --url "https://api.symbl.ai/v1/conversations/$CONVERSATION_ID/analytics" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json"
import fetch from 'node-fetch';

const accessToken = '<ACCESS_TOKEN>';
const conversationId = '<CONVERSATION_ID>';

const fetchResponse = await fetch(`https://api.symbl.ai/v1/conversations/${conversationId}/analytics`, {
  method: 'get',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  }
});

const responseBody = await fetchResponse.json();

console.log(JSON.stringify(responseBody, null, 2));
import json
import requests

access_token = "<ACCESS_TOKEN>"
conversation_id = "<CONVERSATION_ID>"

headers = {
  "Authorization": "Bearer " + access_token,
  "Content-Type": "application/json"
}

response = requests.request(
  method="GET", 
  url="https://api.symbl.ai/v1/conversations/" + conversation_id + "/analytics",
  headers=headers
)

print(json.dumps(response.json(), indent=2))

Where:

For additional reference information, see Get analytics.

Example response

{
  "metrics": [
    {
      "type": "total_silence",
      "percent": 26.245,
      "seconds": 8.22
    },
    {
      "type": "total_talk_time",
      "percent": 73.755,
      "seconds": 23.1
    },
    {
      "type": "total_overlap",
      "percent": 0,
      "seconds": 0
    }
  ],
  "members": [
    {
      "name": "unknown_speaker",
      "pace": {
        "wpm": 246
      },
      "talkTime": {
        "percentage": 100,
        "seconds": 23.1
      },
      "listenTime": {
        "percentage": 0,
        "seconds": 0
      },
      "overlap": {}
    }
  ]
}

Did this page help you?