Skip to main content
Use INPUT_WEBHOOK when an external service sends a request to a published flow. The tool reads the value input as a JSON string describing the request and returns the parsed request in result. See Publish for the published flow URL.

Provide the webhook request value

The JSON value must contain method, url, headers (string values), and body. It may also contain query and params (string values). The optional description input labels the step.
In a published flow, supply the request through the published endpoint. For a local check, use the sample value above and inspect result.body.orderId; it should be 123. Downstream steps can read steps.receive_webhook.result.body.

Process the received order

The original guide also showed a webhook feeding a later AI step. Use the parsed body from the input result:
Check that the summary mentions the order ID before connecting a real sender.

Verify the sender’s signature

The webhook endpoint is POST https://<your-flow-host>/api/v2/external/flows/<flow-id>/webhook-run. It runs the published version of the flow, so publish after changing the trigger, and answers 404 when the published version has no INPUT_WEBHOOK step. By default requests are accepted unsigned. To require an HMAC-SHA256 signature, set these entries in the step’s config:
A trigger with requireSignature but no usable signatureSecret, or with an invalid security config, refuses every request with 401 instead of running unsigned; so does a request whose signature is missing or does not match.

Diagnose a webhook input failure

If the step returns an InputWebhookTool error, check that value is valid JSON and includes method, url, headers, and body with the required types. The tool’s executor parses the request shape; unless requireSignature is set on the step, do not treat this step alone as proof that the sender is authenticated.