Skip to main content
Webhooks let your backend receive call events without polling Ringg APIs. Configure subscriptions on an assistant, then Ringg sends HTTP requests to your endpoint whenever selected events occur.

Event types

For most production integrations, start with all_processing_completed. Add earlier events only when your product needs live progress updates.

Configure subscriptions

Use PATCH /agent/v1 with operation: "edit_event_subscriptions". Authenticate the Ringg API request with X-API-KEY.
The headers object is not used to authenticate your call to Ringg. Ringg sends those headers to your webhook endpoint when delivering events.

Subscribe to progress events

If your UI needs live progress, subscribe to earlier events in addition to the final event.

Endpoint requirements

Your webhook receiver should:
  • Use HTTPS.
  • Accept the method you configured, usually POST.
  • Return a 2xx response quickly after validating and storing the event.
  • Do heavy processing asynchronously in your own queue.
  • Handle duplicate events idempotently.
  • Store call_id, event_type, and received timestamp for debugging.

Idempotency key

Use call_id plus event_type as your primary dedupe key. If your workflow can receive multiple attempts for the same event, update the existing record instead of creating duplicates.

Authentication patterns

Secure your endpoint with a token that you control. Put that token in the subscription headers. Common patterns:
  • Authorization: Bearer your-webhook-receiver-token
  • X-Webhook-Secret: your-shared-secret
  • Provider-specific gateway authentication in front of your API

Next steps

Webhook payloads

Review the JSON payloads Ringg sends for each event type.

Error handling

Learn retry behavior, timeouts, and response requirements.