call:started

Sent by a rule with the I start a call trigger (or its workspace rule equivalent) and a
Post to webhook action, each time a call is dialed with the Mixmax Dialer. Create the
rule under Rules in the Mixmax app.

New: the body now includes callId, the call's _id. Use it to match this event to
call:completed, to call:recording-available and to GET /v1/calls.

Deliveries are signed, retried and paused the same way as the call:recording-available
webhook; that page explains how to verify X-Mixmax-Signature. Webhook actions saved before
Mixmax began signing deliveries have no signing secret and are sent without the
X-Mixmax-* headers; recreate the action to get one. Delivery is at least once and in no
particular order. This body has no event id, so skip duplicates on callId and
eventName.

Payload

The JSON body that a rule's Post to webhook action sends for the call:started and call:completed triggers. If the action defines a custom payload, Mixmax sends that instead and does not add eventName. Unlike call:recording-available, this body includes the phone number that was called and, when known, the name and email address of the person called. Mixmax may add fields later, so ignore fields you do not recognize.

string
enum
required

The event type.

Allowed:
string

New. The call's _id, the same value GET /v1/calls returns and the same callId as in the call:recording-available webhook. Use it to match the events of one call and to download its recording with GET /v1/calls/{id}/recording.

string
required

The Mixmax user who placed the call.

int64

When the call record was created, in epoch milliseconds.

fromPhoneNumber
object

The Mixmax number the call was placed from.

string

The number that was called.

string

Email address of the person called, when known.

string

Name of the person called, when known.

date-time

When the call was dialed.

date-time

When the call ended. Only on call:completed.

Headers
string
required

v1, followed by the base64-encoded HMAC-SHA256 of <X-Mixmax-Webhook-Id>.<X-Mixmax-Timestamp>.<raw request body>, keyed with your signing secret. Verify it before you trust the body.

string
required

When Mixmax signed this delivery attempt, in Unix seconds. It is part of the signed content. Reject a delivery whose timestamp is more than 5 minutes away from your clock.

uuid
required

A new UUID for every delivery attempt, including each retry. It is part of the signed content. Do not use it to detect duplicates; each webhook's description says what to use.

Responses
200

Any 2xx status, sent within 30 seconds, acknowledges the delivery. The response body is ignored.

404

Read as "this URL no longer exists". Mixmax pauses the rule at once, without retrying, and emails its owner (the workspace admins for a workspace rule).

default

Any other status, no response within 30 seconds, or a connection error. Mixmax retries about every 5 minutes, a limited number of times, and pauses the rule if the last attempt fails.

LoadingLoading…
Psst... like working with APIs? Come join us!