Skip to content

Run a flow through a webhook

A Webhook trigger starts a flow when an external system sends an HTTP request to a Mindflow URL. You choose asynchronous or synchronous mode, optionally require an API key, and can return a custom HTTP response with a Webhook response step. Screenshots on this page show the Webhook trigger Settings and Auth tabs so you can match the labels in Studio.

  • An external ticketing system, SIEM, form, or middleware must start a flow over HTTPS.
  • You need an immediate HTTP acknowledgment (async) or a response body from the flow (sync).
  • Prefer Run a flow from an AI··Room when operators should start the flow from chat.
  • Prefer Run a flow through email when the source is inbound email.
  • Prefer Call a flow when one Mindflow flow should start another inside Studio.

Before you begin, you need permission to create and deploy flows in the environment. Deploy the flow before callers rely on the webhook URL in production.

A Webhook is the trigger that exposes HTTPS endpoints for the flow. Studio shows copyable URLs after you add the step.

  1. Open the flow. Create or open the flow in the designer.

  2. Add a step manually. On an empty canvas, choose Add a step manually.

    Empty designer with Add a step manually and Ask AI to generate steps cards

  3. Choose Webhook. In the step catalog, open Triggers, then choose Webhook.

    Add a step catalog Triggers section with Webhook, Emailhook, Chathook, Flowhook, Formhook, and Scheduler

  4. Rename and describe the step. Rename the Webhook step and fill a description so the designer shows why this trigger exists.

  5. Open Settings. On the Webhook step, open the Settings tab. Copy Asynchronous (TLS) or Synchronous (TLS) from the read-only fields. When mTLS is enabled for your environment, Studio also shows Asynchronous (MTLS) and Synchronous (MTLS).

    Webhook Trigger Settings with Asynchronous (TLS) and Synchronous (TLS) copyable URLs and Webhook headers callout

Asynchronous returns an HTTP response as soon as Mindflow accepts the request, without waiting for the flow to finish. Synchronous waits for the flow (and an optional Webhook response step) before returning.

Copy the matching URL from Settings. Studio shows the query-param route (…/run-async-qp or …/run-sync-qp) with the trigger id in the path. Hostnames come from your tenant (for example webhook-….mindflow.dev).

Asynchronous (TLS) example
curl "https://webhook-{tenant}.mindflow.dev/playbooks/{trigger-id}/steps/start/run-async-qp"
Synchronous (TLS) example
curl "https://webhook-{tenant}.mindflow.dev/playbooks/{trigger-id}/steps/start/run-sync-qp"

Without an API key, any caller who knows the URL can start the flow. On the canvas, the Webhook step shows security status badges (for example an open lock when there is no API key protection). On Auth, generate a key so callers must send it—the open-lock badge clears once a key is configured.

Webhook trigger step on the canvas with security badges and tooltip Webhook has no key protection

  1. Open Auth. On the Webhook step, open the Auth tab.

    Webhook Trigger Auth tab with No API key means this webhook is open and Generate API key

  2. Generate API key. Choose Generate API key. Copy the key and store it with your caller. Use Rotate or Delete from the key menu when you need to replace or remove it.

    Webhook Trigger Auth tab with masked API key, reveal and copy controls, and Webhook headers callout

Callers must identify the flow and, when a key exists, authenticate. Prefer headers over query parameters when your caller supports them.

Send the key as x-api-key. Use a non--qp path URL when the trigger id is already in the path:

API key header
curl "https://webhook-{tenant}.mindflow.dev/playbooks/{trigger-id}/steps/start/run-async" \
-H "x-api-key: YOUR_API_KEY"

The Settings copy fields already include the trigger id in /playbooks/{trigger-id}/…. That is the usual path for the URLs Studio shows.

Trigger id in path
curl "https://webhook-{tenant}.mindflow.dev/playbooks/{trigger-id}/steps/start/run-async" \
-H "x-api-key: YOUR_API_KEY"

Webhook response sets the status code, headers, and body for a synchronous webhook call. Place it where the flow should reply. The flow can continue after the response; later steps keep running asynchronously.

  1. Add Webhook response. Open Add a step, choose Flow, then Webhook response.

    Add a step Flow section with Webhook response highlighted

  2. Configure the response. On Input, set Status Code, optional Headers, and Body (JSON, Text, or XML). Use data pills for dynamic values.

    Webhook response step with status code, headers, and body fields

  3. Call the synchronous URL. Use Synchronous (TLS) (or mTLS) from Webhook Settings — not the asynchronous URL.

    Webhook Settings highlighting the synchronous endpoint used with Webhook response

On the Webhook step, open Advanced and add Allowed IPs when only specific networks should call this endpoint. Organization-level allowlists apply as well — see Restrict webhook callers with an IP allowlist.

A SOC platform posts a new alert JSON to Mindflow. The flow Ingest SIEM alert starts with a Webhook named Receive SIEM alert, uses an API key in x-api-key, and runs asynchronously so the SIEM gets an immediate acknowledgment while enrichment continues in later steps.

For a caller that needs a custom body back (for example a chatbot middleware), use the synchronous URL and a Webhook response step that returns status 200 and a short text or JSON body within 25 seconds.

Authorizer flow pattern

When a vendor sends a token you must verify before the real automation runs, put validation on a front webhook flow, then call the destination flow only after the check passes.

  1. Receive the vendor request. Start with a Webhook (often synchronous).

    Authorizer flow overview with webhook entry and security check before forwarding

  2. Validate the token. Call the vendor API (for example a Google OAuth token check).

    Authorizer flow validating a Google token before continuing

  3. Continue or reject. On success, start the destination flow (for example with Call a flow). On failure, return an error with Webhook response.

    Authorizer flow branching to failure response or starting the destination subflow

  • Deploy the flow before external systems depend on the webhook URL.
  • Supported HTTP methods include GET, POST, and PUT.
  • Prefer x-api-key and x-mindflow-flow-deployment-id headers over query parameters when the caller can set headers.
  • For network-level control, combine webhook Allowed IPs with the organization allowlist — see Restrict webhook callers with an IP allowlist.

Trigger your flow · Restrict webhook callers with an IP allowlist · Run a flow from an AI··Room · Manage version and deployments