Skip to content

Webhook

Trigger · Stable

Start a workflow via an inbound HTTP POST with optional secret validation.

Receives an HTTP POST at /flows/webhook/<workflow_id> (the exact URL is shown in the Webhook trigger panel, ready to copy). The request JSON body is available as payload (dict or raw string). An optional shared secret can be validated in workflow settings. Good for integrations with Stripe, GitHub, or any external service that supports outbound webhooks.

Use when an external service (Stripe, GitHub, a payment gateway, another app) needs to push data into a workflow and delivers it as an HTTP POST. The payload dict flows directly into downstream steps — no polling needed.

If the trigger is an internal platform state change, use Event instead — it carries typed event keys rather than a raw payload dict. For scheduled runs use Schedule (Cron); for email-initiated runs use Incoming email. Heads-up: a run from this trigger has no signed-in user, so {{ user.* }} and {{ actor.* }} are empty. Bind any recipient or owner — a send_email to, a deal owner_actor_id, a task assigned_to — to a concrete email or actor_id, never {{ user.* }}; or collect it at run time with an Ask-a-person step.

string · optional

If set, the webhook receiver verifies X-Webhook-Secret against this.


Auto-generated from the skill registry (load_skills()). Do not edit by hand.