Skip to main content
Add a webhook trigger to a workflow — it’s an additional trigger, so the workflow stays request-callable too. Zite mints a stable ingress URL per webhook workflow:
Possession of the URL is the auth — the secret token is baked into the path (the Zapier / Make / Airtable model). Paste it into the upstream’s dashboard; no separate HMAC or signing secret.

The workflow

The upstream’s JSON body arrives directly as input. Constrain inputSchema to the exact event so off-type deliveries fail validation (visible in run history) instead of running with the wrong shape:
After you add the workflow, the URL surfaces in the chat’s webhook panel and the app’s Webhooks settings tab — fire one test event to capture a real payload and refine inputSchema.

Rules

  • context.user is null on webhook fires — the event body is your only input.
  • Respond within ~30s — upstreams retry on timeout, re-running your code.
  • Dedup on a stable delivery id — usually in the body (input.id for Stripe, input.event_id for Slack). GitHub’s is header-only at input.__webhook.headers['x-github-delivery']. Inbound headers are lowercased (authorization / cookie stripped).
  • One webhook per workflow. For two upstreams, create two workflows sharing helper code.
  • Don’t try/catch the inputSchema parse — let Zod errors bubble so failed deliveries show in run history.
  • Scope the upstream to send only the event types you handle, or Zod rejects most of the fan-out.
See the Webhooks reference for the URL format and per-workflow token env var.