Webhook

Trigger a flow when an external service calls your bot's webhook URL.

Fires when an external service POSTs to your bot’s webhook URL — so other systems (a CRM, a payment provider, your backend, Zapier/Make) can trigger your bot’s flow. The request body is saved to a variable so the flow can use it.

Fields

FieldTypeRequiredNotes
Save raw body to variabletextThe whole POST body is stored in this variable (e.g. body)
JSON path → variablekey/valueMap fields from a JSON body straight to variables — no code

Outcomes

  • default — continue the flow.

No-code field mapping

If the incoming body is JSON, map its fields to variables with JSON path → variable — the same mapping the HTTP request block uses for responses. For a body like {"order":{"id":42,"total":"9.99"}}:

JSON pathVariable
order.idoid
order.totalamt

…then use {{var.oid}} and {{var.amt}} downstream — no Code block needed. (For anything more complex, save the raw body and parse it with Code (JS).)

How it works

Create a webhook for a deployed bot via the API (or it returns a URL like https://api.devnulll.dev/v1/hooks/<id>). The <id> is unguessable and acts as the secret — anyone with the URL can trigger the bot, so keep it private.

When something POSTs to that URL, the body lands in your variable and the flow runs. To send a message back to a chat, include ?chat_id=<id> on the URL (or a top-level "chat_id" in a JSON body) — that chat becomes the target for the flow’s send-message blocks.

Webhook  order.id → oid,  order.total → amt
 └─ default → Send "New order {{var.oid}} for {{var.amt}}"