Triggers & Webhooks

View as Markdown

A trigger is anything that starts a workflow. One of the most useful triggers is a webhook: a private URL for your workflow that another system can call to start a run. When your website form, your CRM, or a partner’s system needs to kick off a workflow, it sends a request to that URL and the run begins.

How a webhook works

Each published workflow has its own webhook URL. When another system sends a request to it, whatever information that request carries becomes the starting information for the run, exactly as if you had started it yourself. The run then proceeds through its steps on its own.

A typical use: Chen Insurance Group has a “New quote request” form on their website. When Sarah Chen submits it, the website calls the workflow’s webhook with her details, and the workflow starts scoring the request and routing it to an agent, with no one having to press a button.

What the caller gets back

A webhook responds right away to confirm the run was accepted, and it returns a run identifier. It does not wait for the workflow to finish. If the caller needs the final result in the same request, there is a separate way to start a workflow that waits for it to complete. Otherwise, use the run identifier to follow along later. See Testing & Debugging for how run history works.

Validation and files

A webhook respects everything you set up on the Start node:

  • If the workflow defines required fields, the incoming information is checked against them, and a request that is missing a required field is turned away with a clear message. See Starting a Workflow.
  • If the workflow accepts file uploads, a caller can attach files too.

A webhook URL is not a public, open endpoint. The system calling it must be authorized to act for your organization, so only trusted systems you have set up can start your workflows. A request from an unknown workflow or another organization is simply not found, so the existence of your workflows is never revealed.

Only published workflows can be triggered by a webhook. While you are still building, use Testing & Debugging to start runs by hand.