How webhooks work
- A call completes (or a run finishes)
- Dograh executes any
webhooknodes in the workflow asynchronously - The payload template is rendered with the runβs context and sent as a JSON
POST(or your configured method) to your endpoint - Non-200 responses are logged but do not block or retry by default (configure
retry_configto change this)
Payload context variables
The following variables are available in yourpayload_template using double-brace syntax (e.g. {{workflow_run_id}}):
Call disposition
The final outcome of the call is available as{{gathered_context.call_disposition}}. It holds the disposition set during the call, falling back to the reason the call ended (e.g. user_hangup, voicemail_detected, call_transferred, call_duration_exceeded).
Dograh always includes a top-level
call_disposition field in the delivered payload. If your template doesnβt set one, it is added automatically from gathered_context.call_disposition; if your template sets it explicitly, your value is kept.Example payload template
Authentication
Webhook requests support the following authentication methods, configured via a stored credential:Receiving webhooks
Your endpoint should:- Accept
POSTrequests withContent-Type: application/json - Respond with a
2xxstatus code promptly (within 30 seconds) - Handle duplicate deliveries idempotently (retries may deliver the same payload more than once)