Call recording - M8Com webhook

Information about Call recording webhook

3 min read

Setup

A user with Superadmin access to an M8Com customer account will be able to setup Call Recording integrations. The following data is needed to setup a new integration and should be provided by the call recording receiver .

  • Endpoint , the endpoint M8Com should send data to when a call recording is completed. https protocol is required and needs to be included when setting up the integration.
    • https://example.acme.com/call-recordings/update
  • Secret , a unique key or identifier that can be used to identify the request it will be included in the request header as Authorization Bearer
    • 123ExampleCustomer321
  • Settings , these settings can be toggled on the webhook and changed according to preference
    • Send answer group recordings, If we should send recordings belonging to answer groups to this webhook
      • All answer groups , all recordings belonging to answer groups on this customer will be sent to the webhook
      • Specific answer groups , you can choose a specific set of answer groups that you want recordings from
    • Send user recordings , if we should send recordings belonging to users to this webhook
    • All users , all recordings belonging to users on this customer will be sent to the webhook
    • Specific users , you can choose a specific set of users that you want recordings from

Data model - Current version (V2)

Changelog

From v1

  • Adding is not breaking 🚨
    • From this version and onwards, new fields may be introduced to JSON data models over time and is not considered a breaking change. Integrators must ensure that their integrations ignore unknown fields by default.
  • Summary

    A new field "summary" is introduced

Later changes

  • Added userId as another identifier in the data provided ( released 2025-04-10 )

Data Provided

Field Type Description
id number Unique identifier for the call
fileUrls string[] Array of URLs to access the recording, expires after 30 min
callerNumber thong Number of the caller (unique identifier if VoIP)
calleeNumber thong Number of the callee (unique identifier if VoIP)
startTime number Timestamp when call started
endTime number Timestamp when call ended
waitTime number | null Available for queue calls, how long did the caller wait (ms)
talkTime number How long the call lasted (ms)
agentId string | null Unique identifier for the agent (null if personal call)
agentName string | null Name of agent (null if personal call)
answerGroupName string | null Name of answer group (null if personal call)
answerGroupId string | null Unique identifier of answer group (null if personal call)
referredTo string | null Number caller was transferred to
referredBy string | null Number caller was transferred from
direction thong Inbound/outbound (from the perspective of the recorder)
recorderId thong Unique identifier of user/agent doing the recording. (Email address or phone number)
summary thong A summary derived from the call recording. This field is provided only if Conversation Intelligence (CI) is enabled and the synchronization of CI summaries is active for the call recording owner and the webhook.
userId thong Unique identifier of the user/agent doing the recording. The same ID across all available webhooks

Requests

After the service is connected a request will be sent to the webhook every time a call log with call recordings is created as long as the owner matches the toggled settings on the webhook. The request will look as follows.

Service unavailable

In the case that endpoint does not respond with 200 when requests are made. M8Com will attempt to resend the call recordings using exponential back-off before disabling the integration. A disabled integration can be restarted from M8Com if the secret is known by an admin.

{
  "uri": ENDPOINT,
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${SECRET}`
  },
  "body": DATA
}
Did this answer your question?