Overview
When an in-app agent call finishes, RevRag can send acall.ended webhook — a POST request to an HTTPS endpoint on your server — containing the complete result of that call: status, duration, summary, transcript, recording URL, and your app_user_id.
The payload below shows exactly what your server receives when an in-app call ends.
Webhooks are server-to-server. They are delivered to your backend, not to the SDK running in your app. The in-app SDK’s own agent lifecycle events (e.g.
agent_start / agent_end) are a separate, in-process mechanism — they are not the same as this webhook.Enabling webhooks
Webhooks are opt-in and configured per agent. They are not enabled by default. To turn them on for your in-app agent, contact contact@revrag.ai with:- Webhook URL — the HTTPS endpoint that will receive the
POST(HTTP is not supported). - Signing secret — a shared secret used to verify each request (see Security & headers).
Security & headers
In-app webhooks use the same signing scheme as every RevRag webhook — HMAC-SHA256 computed over"{timestamp}.{raw_body}" with your shared secret. Each request carries:
Payload
The webhook body is the same JSON shape as the Get Call Status response. For an in-app call it carries yourapp_user_id as a top-level correlation field.
Payload parameters
Correlation IDs
To tie a webhook back to the right user in your own system, useapp_user_id together with call_id.
The app_user_id you pass when requesting an in-app call token is echoed back top-level in every webhook, so you can attribute the call to the exact user who initiated it.
In-app events vs webhooks
Don’t confuse these two mechanisms:
For the in-process events, see your platform’s integration guide.
Related
Webhook Security
Full HMAC-SHA256 verification steps with Python and Node.js examples.
Campaigns Webhooks
The same payload contract as documented for campaign calls.