Skip to main content

Call recording ready

Webhook 

Sent when an agent call's recording is stored, usually a few seconds after the call ends. It covers the same calls as Call ended. Calls with no recording, such as unanswered calls or calls by agents with recording turned off, produce no event. The same recording can be sent more than once; deduplicate by webhook-id.

The payload carries no recording file. recordingUrl is a Public API link that does not expire; send a GET request to it with your API key to receive a short-lived download link.

A test sent from Settings > Developers to a Call recording ready endpoint uses this shape, with event set to test_event and fictional data. Its recordingUrl points to a call that does not exist.

Delivery​

Add endpoints in Settings > Developers. Each endpoint receives one event type, for all agents or one agent, and starts disabled until you enable it.

Harmony sends a JSON POST to the endpoint URL. Verify the signature, durably accept the event, and return a 2xx status within 10 seconds. Process slower work asynchronously.

Any other status, a timeout, or a connection failure is retried at roughly 60-second intervals, up to five attempts. Retries keep the same webhook-id but may contain updated data. Redirects are not followed.

Verify signatures​

Verify each request with a Standard Webhooks library, the endpoint's signing secret, the raw request body, and the three webhook-* headers. Verification fails on an invalid signature or a timestamp more than five minutes from now. Reject the request when it fails.

import { Webhook } from "standardwebhooks";

const event = new Webhook(signingSecret).verify(rawBody, headers);

Request​

Responses​

Any 2xx status accepts the event. Other statuses are retried.