Skip to main content

How it works

When Sales Ask finishes processing a recording (transcription, speaker identification, and AI analysis), it sends a POST 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.
Sales Ask  ──POST──▶  https://your-crm.com/hooks/salesask
Webhook URLs are configured in Sales Ask (e.g. organization or integration settings). Use the API to list registered webhooks and to send a test payload to a URL.

Webhook payload (outbound)

The body of the POST is JSON in this shape (not the full Recording schema). Custom fields from the recording are merged at the top level.
FieldTypeDescription
idstringRecording ID. Use with GET /v1/recordings/:id for full details.
namestringRecording name.
actionItemsstringFormatted action items text (explicit + client).
notesstringPlain-text notes from AI analysis.
meetingUrlstringLink to the recording in the Sales Ask app.
processstringProcess Q&A and summary text.
processFollowedintegerCount of process questions answered yes.
processMissedintegerCount of process questions not answered yes.
processTotalintegerTotal process questions.
Example:
{
  "id": "abc123",
  "name": "Call with John Doe",
  "actionItems": "Action items from meeting\n- Follow up on quote\nClient action items\n- Send contract",
  "notes": "Rep discussed pricing and timeline. Customer showed strong buying intent.",
  "meetingUrl": "https://integrations.salesask.com/meetings/abc123",
  "process": "1. Discovery question: \nAnswer: Yes\n\nProcess Summary: Good discovery.",
  "processFollowed": 3,
  "processMissed": 1,
  "processTotal": 4
}

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).
curl https://integrations.salesask.com/v1/webhooks \
  -H "x-api-key: <YOUR_API_KEY>"
Response includes 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 have status: "processed" (e.g. from GET /v1/recordings or GET /v1/recordings/:id).
curl -X POST https://integrations.salesask.com/v1/webhooks/test \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-crm.com/hooks/salesask",
    "recording": { "id": "rec_123", "status": "processed", ... }
  }'
The payload sent to 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.