How webhooks work
- A call completes (or a run finishes)
- Bananaflow 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 - Failed deliveries are retried automatically with backoff, up to 5 attempts. Timeouts, connection errors and HTTP 408, 425, 429, 500, 502, 503 and 504 are retried; other error responses are not
Payload context variables
The following variables are available in yourpayload_template using double-brace syntax (e.g. {{workflow_run_id}}):
Call disposition
Use{{gathered_context.call_disposition}} for the raw workflow outcome or
{{gathered_context.mapped_call_disposition}} for your organization’s mapped
code. {{gathered_context.call_status}} remains the observed reason the call
ended. See Call Dispositions to configure custom business
outcomes for each workflow and understand the fallback behavior.
Bananaflow always includes a top-level
call_disposition field in the delivered
payload. If your template doesn’t set one, it is added automatically from the
raw 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)