How it works
When Sales Ask finishes processing a recording (transcription, speaker identification, and AI analysis), it sends aPOST request to every webhook URL registered for your organization.
Your endpoint receives a webhook payload (integration format: recording id, notes, action items, process stats, meeting URL, and any custom fields). No polling required.
Webhook payload (outbound)
The body of thePOST is JSON in this shape (not the full Recording schema). Custom fields from the recording are merged at the top level.
| Field | Type | Description |
|---|---|---|
id | string | Recording ID. Use with GET /v1/recordings/:id for full details. |
name | string | Recording name. |
actionItems | string | Formatted action items text (explicit + client). |
notes | string | Plain-text notes from AI analysis. |
meetingUrl | string | Link to the recording in the Sales Ask app. |
process | string | Process Q&A and summary text. |
processFollowed | integer | Count of process questions answered yes. |
processMissed | integer | Count of process questions not answered yes. |
processTotal | integer | Total process questions. |
Responding to events
Your endpoint must return a 2xx status to acknowledge receipt. Sales Ask does not retry failed deliveries, so if your endpoint is down you will miss the event.Requests time out after 10 seconds. Respond quickly and offload heavy work to a background job.
List webhooks
Returns all webhook URLs registered for your organization (configured in Sales Ask).id, url, active, and trigger for each webhook.
Send a test webhook
POST a test payload to a URL using a recording you provide. The recording must havestatus: "processed" (e.g. from GET /v1/recordings or GET /v1/recordings/:id).
url is the same shape as the outbound webhook payload above (integration format). Use this to verify your endpoint without waiting for a real processing event.
