Action Items

Use the Conversation API to identify an Action Item as a specific task from the conversation. Action Items usually require one or more people to do something like schedule a meeting, share a file, or complete a task.

Action Items provide the insights of who needs to do what, by when. The definition of when is optional when identifying Action Items.

For example:

  • "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.

Action items have the ability to:

  • Recognize the assignee and assignor of an action item when possible.

  • Recognize the date and time, if specified in the Insight.

  • Use speaker context to enhance the quality of the insights. For example, if speaker events are passed and the algorithm knows which speaker is speaking, it changes "I will defend the North till the end of the day" to "John Snow will defend the North till the end of the day."

  • Use timezone to calculate accurate date and time references. If timezone details are passed in the API call and a known speaker says "I will defend the North till the end of the day", in action item response the dueBy time appears as dueBy: "2020-02-10T07:00:00.000Z".

  • 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.

Authentication

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


Get Action Items

This section describes how to get Action Items 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 action items, use the GET https://api.symbl.ai/v1/conversations/<CONVERSATION_ID>/action-items 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/action-items" \
  --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}/action-items`, {
  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 + "/action-items",
  headers=headers
)

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

Where:

For additional reference information, see Retrieve Action Items by conversation ID.

Example response

{
  "actionItems": [
    {
      "id": "4692444825255936",
      "text": "I will finish my work by 5 PM so you could send a technician after that, okay.",
      "type": "action_item",
      "score": 0.9168735317493,
      "messageIds": [
        "6226587111391232"
      ],
      "entities": [
        {
          "type": "timerange",
          "text": "by 5 pm",
          "offset": 22,
          "end": "17:00:00"
        }
      ],
      "phrases": [],
      "from": {},
      "definitive": true,
      "assignee": {}
    },
    {
      "id": "5215284515307520",
      "text": "I will call you back in an hour to confirm your appointment.",
      "type": "action_item",
      "score": 0.8742814190284066,
      "messageIds": [
        "4550301271982080"
      ],
      "entities": [
        {
          "type": "datetime",
          "text": "in an hour",
          "offset": 21,
          "value": "2022-07-27 18:29:56"
        }
      ],
      "phrases": [],
      "from": {},
      "definitive": true,
      "assignee": {},
      "dueBy": "2022-07-28T01:29:56.000Z"
    }
  ]
}

Did this page help you?