Comprehensive action items (Labs)

Comprehensive action items are an enhanced version of action items.

Comprehensive action items build upon the accuracy and context of an action item by analyzing the previous 20 messages in the conversation. The corresponding context provides more information about the who, what, and when of an action item. developed this enhancement to help you better understand an action item by summarizing the conversation leading up to it.

Additional context and processing also help reduce false positives for comprehensive action items.

Action item examples:

  • "I will complete the management presentation by the end of today." Here, a person is committing to complete the presentation (task) by the end of the day.

  • "I will make sure that all the bugs are fixed before the start of the next Sprint." Here, the person is committing to fix the relevant bugs in a specific window of time.

Comprehensive action items build upon the following abilities of action items:

  • Better able to recognize the assignee and assignor of an action item, if available.

  • Able to identify the date and time, if specified.

  • Increased accuracy of speaker context by processing up to twenty messages preceding the action item.

  • Use timezone to calculate accurate date and time references.

  • Control the confidence threshold for the insight. The confidence threshold is a number between 0.0 and 1.0 where a decimal value closer to 1.0 means the detected phrase is an action item.


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

To get comprehensive action items, you must first process your conversation using the Async API. After you process the conversation, pass the Conversation ID as a request parameter in the Fetch comprehensive action items request.

Comprehensive action items request


Note that the base URL for all Symbl Labs feature is:

Example comprehensive action items request

curl "$CONVERSATION_ID/comprehensive/action-items" \
    -H "Authorization: Bearer $AUTH_TOKEN"
const request = require('request');
const authToken = AUTH_TOKEN;
const conversationId = CONVERSATION_ID;

    url: `${conversationId}/comprehensive/action-items`,
    headers: { 'Authorization': `Bearer ${authToken}` },
    json: true
}, (err, response, body) => {
import requests

baseUrl = "{conversationId}/comprehensive/action-items"
conversationId = 'your_conversation_id'  # Generated using Submit text end point

url = baseUrl.format(conversationId=conversationId)

# set your access token here. See
access_token = 'your_access_token'

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

responses = {
    401: 'Unauthorized. Please generate a new access token.',
    404: 'The conversation and/or it\'s metadata you asked could not be found, please check the input provided',
    500: 'Something went wrong! Please contact [email protected]'

response = requests.request("GET", url, headers=headers)

if response.status_code == 200:
    # Successful API execution
    print("actionItems => " + str(response.json()['actionItems']))  # actionsItems object containing actionItem id, text, type, score, messageIds, phrases, definitive, entities, assignee
elif response.status_code in responses.keys():
    print(responses[response.status_code])  # Expected error occurred
    print("Unexpected error occurred. Please contact [email protected]" + ", Debug Message => " + str(response.text))


Example response

    "actionItems": [
            "id": "4875991597973504",
            "text": "Stella and John need to shift their focus more towards dev. John will go ahead and set up a discussion with product.",
            "type": "action_item",
            "score": 0.8735619108573252,
            "messageRefs": [
                  "id": "5943054110294016"
                  "id": "4960777540730880"
            "entities": [],
            "phrases": [],
            "from": {
                "id": "10aa881e-4c70-4060-8886-66a5e5c9b788",
                "name": "John",
                "userId": "[email protected]"
            "definitive": true,
            "assignee": {
                "id": "10aa881e-4c70-4060-8886-66a5e5c9b788",

                "name": "John",
                "email": "[email protected]"

Response parameters

idUnique identifier of the comprehensive action item.
textText of the comprehensive action item.
typeResponse type. Default is action_item.
scoreConfidence score of the detected action item. Value from 0 - 1. The score shows the relevancy of the action item in the transcript. The higher the confidence score, the more relevant it is.
messageRefs.idUnique identifiers of the corresponding messages from where the action item was derived. You may get multiple message IDs as the algorithm identifies all the relevant messages in the conversation and generates the required action items
entitiesList of detected entity objects in the insight with type - entity type and text - corresponding text.
definitiveBoolean indicating if the action item is definitive or not. Implies that the action item is conclusive and not open-ended. For example, ‘I will complete this task today’ is a definitive sentence.
phrasesList of detected phrases with type - phrase type and text - corresponding text. The action_phrase type represents the actionable part of an insight.
assigneeThis field contains the name and email of the person to whom the action item is assigned.