List of Webhook events

EventType Description Example of webhook payload
CallComplete

When a customer record has reached a conclusive outcome, its call analytics results will be queued to be sent back to the configured webhook URI for your organisation. This list size is subject to the max `batchSize` set in your webhook config. The following tables illustrate scenarios for different `CallComplete` event status the webhook would receive for outbound and inbound campaigns.

Example: Outbound Campaign with 3 attempts

Outbound campaign can be setup with re-attempts, webhook event will be sent for a record until the re-attempts are exhausted or a complete call status has been reached.

Attempt 1 Attempt 2 Attempt 3 Webhook Sent Info
Scenario 1 Complete - - Webhook Sent with result Complete at attempt 1
Scenario 2 Failed Complete - Webhook Sent with result Complete at attempt 2
Scenario 3 Failed Failed Complete Webhook Sent with result Complete at attempt 3
Scenario 4 Failed Failed Failed Webhook Sent with result Failed at attempt 3
Response Payload
  • correlationId: ID for a scheduled call list. Field is optional and is only present for outbound campaign.

Example: Inbound Campaign

Inbound campaign doesn't have re-attempts, every single incoming call is standalone which will trigger a webhook event to be sent.

Status Webhook Sent info
Scenario 1 Complete Webhook Sent with result Complete
Scenario 2 Failed Webhook Sent with result Failed

The above mentioned status group Complete and Failed contain a list of webhook status respectively:

Complete: The callee(for outbound call) or caller(for inbound call) has started a conversation and answered at least the first question.

Status Description
Complete Callee/Caller has fully completed the conversation flow of the campaign.
Partial Callee/Caller has partially completed the conversation flow of the campaign. i.e. at least the first question has been answered, but the entire flow has not been completed yet.

Failed: The callee(for outbound call) or caller(for inbound call) failed to commence a conversation or he/she hasn't answered the first question.

Status Description
Not Complete Callee/Caller hasn't answered the first question of the conversation for the campaign. e.g. callee/caller hung up before commencing the conversation or it reaches their voicemail.
Partial Failed Partial is for when the AI detects voicemail and leaves a voicemail message only. Please note this is different than the Complete Partial.
Error There are issues when trying to connect the call. e.g. carrier network issues, etc.

NOTE: Audio may be downloaded via /audio/download. See docs for details.

[
  {
    "id": "3aa7c3d2-6d1a-4b02-9418-f8ae1e16bbc0",
    "eventType": "CallComplete",
    "createdAt": "2022-09-01T00:30:48.567Z",
    "data": {
      "correlationId": "d07b9760-9c74-4c12-919b-3b88adbf5863",
      "sessionId": "6d5e9bcd-3477-45a7-bca5-b67fae83c974",
      "callResultId": "9ea5abe8-08da-4a40-a6d0-f7f56bb3d8c2",
      "name": "Jane Doe",
      "phone": "61491573087",
      "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
      "lastStepName": "Question 3?",
      "startedTime": "2022-09-01T00:29:12.000Z",
      "flow": [
        {
          "questionName": "Question 1?",
          "response": "Other",
          "transcript": "Answer 1"
        },
        {
          "questionName": "Question 2?",
          "response": "Other",
          "transcript": "Answer 2"
        },
        {
          "questionName": "Question 3?",
          "response": "Other",
          "transcript": "Answer 3"
        }
      ],
      "requests": [],
      "status": "Complete",
      "additionalInformation": "No further action"
    }
  },
  {
    "id": "d07b9760-9c74-4c12-919b-3b88adbf5863",
    "eventType": "CallComplete",
    "createdAt": "2022-08-31T21:46:58.621Z",
    "data": {
      "sessionId": "ef925557-2fd4-4bb0-abee-a13d6b542269",
      "callResultId": "94c9dda8-6a72-40d6-ac7e-1de5e4cedc2d",
      "name": "John Doe",
      "phone": "61491573087",
      "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
      "status": "Partial",
      "additionalInformation": "Customer exited part way through",
      "lastStepName": "Question 2?",
      "startedTime": "2022-08-31T21:46:51.000Z",
      "flow": [
        {
          "questionName": "Question 1?",
          "response": "Other",
          "transcript": "Anything."
        },
        {
          "questionName": "Question 2?",
          "response": "Other"
          "transcript": "I want to talk to a human."
        }
      ],
      "requests": [
        "humanSupportRequest"
      ]
    }
  },
  {
    "id": "34441be5-750e-49bc-a1d8-fd701790b345",
    "eventType": "CallComplete",
    "createdAt": "2022-08-31T21:46:58.621Z",
    "data": {
      "sessionId": "13fcb80a-8ffa-43db-a83d-0329efc3b331",
      "callResultId": "48f1bc2c-ed38-40a7-a30c-8e4a09c33c8c",
      "name": "John Doe",
      "phone": "61491573087",
      "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
      "lastStepName": null,
      "startedTime": "2022-08-31T21:46:51.000Z",
      "flow": [],
      "requests": [],
      "status": "Not Complete",
      "additionalInformation": "Voicemail"
    }
  }
]
CallAttempted

This event is triggered when an outbound call that was scheduled for a campaign has been attempted. The call can be either successful or a failure, and if it fails, the webhook response will include a note describing the reason for the failure.

Response Payload
  • time: An ISO8601 timestamp indicating when the call attempt started.
  • phone: The customer's phone number in E.164 format.
  • status: The status of the call, which can be either "success" or "failed" indicating the status of the call attempted.
  • note: If the call status is "failed," this field contains additional notes describing the reason for the failure, such as an "invalid phone" error. If the call is successful, this field is not sent.
  • campaignId: The unique identifier for the campaign associated with the call attempt.
  • correlationId: ID for a scheduled call list. Field is optional and is only present for outbound campaign.
[
  {
    "time": "2022-08-31T21:46:58.621Z",
    "phone": "61491573087",
    "status": "failed",
    "note": "invalid phone",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
    "correlationId": "d07b9760-9c74-4c12-919b-3b88adbf5863"
  },
  {
    "time": "2022-08-31T21:46:58.621Z",
    "phone": "61491573087",
    "status": "success",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
  }
]
CallReceived

This event is triggered when an inbound call has been received for a campaign. It can also indicate an outbound callback if specified.

Response Payload
  • time: The UTC timestamp indicating when the call was established.
  • phone: The customer's phone number in E.164 format. It can be anonymous if the caller's identity is not disclosed.
  • type: Specifies the type of call, which can be "inbound" or "outbound-callback" (when customer calls in after a missed outbound call).
  • campaignId: The unique identifier for the campaign associated with the call.
  • correlationId: ID for a scheduled call list. Field is optional and is only present for outbound campaign.
[
  {
    "time": "2022-08-31T21:46:58.621Z",
    "phone": "61491573087",
    "type": "inbound",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
  },
  {
    "time": "2022-08-31T21:46:58.621Z",
    "phone": "61491573087",
    "type": "outbound-callback",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
    "correlationId": "d07b9760-9c74-4c12-919b-3b88adbf5863"
  }
]
SMSSent

This event occurs when an SMS has been sent for a call that is ongoing or scheduled to happen as part of a campaign.

Response Payload
  • time: An ISO8601 timestamp indicating when the SMS was sent.
  • from: The sender's phone number in E.164 format or a shortcode.
  • to: The recipient's phone number in E.164 format.
  • message: The full text of the SMS message sent or received.
  • campaignId: The unique identifier for the campaign associated with the SMS event.
  • correlationId: ID for a scheduled call list. Field is optional and is only present for outbound campaign.
[
  {
    "time": "2022-08-31T21:46:58.621Z",
    "from": "61491573087",
    "to": "61491570006",
    "message": "Message text body",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
    "correlationId": "d07b9760-9c74-4c12-919b-3b88adbf5863"
  },
  {
    "time": "2022-08-31T21:46:58.621Z",
    "from": "61491573087",
    "to": "61491570006",
    "message": "Message text body",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436"
  }
]
SMSReceived

This event is triggered when an SMS is received for a call that is either ongoing or scheduled as part of a campaign.

Response Payload
  • time: An ISO8601 timestamp indicating when the SMS was received.
  • from: The sender's phone number in E.164 format or a shortcode.
  • to: The recipient's phone number in E.164 format.
  • message: The full text of the SMS message sent or received.
  • campaignId: The unique identifier for the campaign associated with the SMS event.
[
  {
    "time": "2022-08-31T21:46:58.621Z",
    "from": "61491573087",
    "to": "61491570006",
    "message": "Message text body",
    "campaignId": "5dd7681b-2188-49fc-8fc0-87b57056f436",
  }
]
* More events to be added later