How to Trigger a Shopify Flow Workflow From an External Webhook

Short answer: Shopify Flow has no built-in trigger that fires from an outside webhook. To start a Flow from an external event, you put a small relay in front of Flow: the external system POSTs a webhook to the relay, the relay normalizes the payload and fires a Flow trigger. That’s exactly what Flow Plus does — and you can wire it up without writing code.

Why Shopify Flow can’t start from an external event

Every native Shopify Flow trigger is an internal Shopify event: order created, product updated, customer created, fulfillment, inventory quantity changed, subscription contract, order risk analyzed, and so on. You can confirm this in Shopify’s own Flow trigger reference and on shopify.dev. There is simply no “incoming webhook” trigger in the list.

You can build a custom Flow trigger, but that requires building and hosting a custom app — and custom triggers are effectively a Shopify Plus-only path for most merchants. When a developer asks how to fire a Flow from an outside event, the community answer is the same pattern every time: POST to a webhook bridge that converts the request into a trigger (Shopify Community thread).

This is what the automation vendor MESA calls the “first mile problem” for Shopify Flow — Flow is powerful at acting on Shopify, but it can’t easily start from the third-party tools merchants already run (MESA: How to extend Shopify Flow). (MESA also estimates only a small share of apps expose Flow connectors — that figure is MESA’s framing, not an official Shopify statistic.)

What you need

Three things:

  1. The Shopify Flow app installed on your store (it’s free).
  2. Any system that can send an HTTP POST — Klaviyo, Gorgias, Recharge, a CRM, an ERP/WMS, a fraud tool, Zapier, or your own code.
  3. A relay that turns that POST into a Flow trigger. Flow Plus is a privacy-first relay built for exactly this — it never reads, processes, or shares your store data, and it retains event logs for 7–30 days depending on plan.

Step by step

1. Create a channel and get a webhook URL

In Flow Plus, create a channel. You’ll get a unique, signed endpoint that looks like:

POST https://events.flowplus.app/w/ch_8x2q…

2. Map the payload to the Flow trigger fields

Shopify Flow exposes 8 generic trigger fieldsField1 through Field8 — plus the entire request body as JSONString. In Flow Plus you map any path from your webhook onto those fields. For an abandoned-checkout webhook, that might be:

customer.email  → Field1
cart.total      → Field2
checkout_url    → Field3
(full payload)  → JSONString

Field1..Field8 are just numbered pass-throughs. If you need more than eight values, everything is still available in JSONString — decode it inside Flow with a Run Code step or with Liquid.

Use the real names — Field1..Field8 and JSONString (capitalized). These are exactly what you’ll reference inside your Flow.

3. Build the workflow in Shopify Flow

Add the Flow Plus trigger to a new workflow. Your mapped values appear as {{ Field1 }}, {{ Field2 }}, … and {{ JSONString }}. From there it’s ordinary Flow: add conditions, send emails, add customer tags, create discounts, adjust inventory — anything Flow can do.

4. Point your external system at the URL

Paste the channel URL into whatever sends the webhook (Klaviyo flow action, Recharge webhook settings, a Zapier “Webhooks by Zapier” POST, your own backend, etc.).

5. Secure it and verify

Flow Plus signs every request with a per-channel secret (HMAC) so you can verify authenticity. Send a test event, then confirm it in the event log / run history — you’ll see the raw payload, the mapped Field1..Field8 output, and the linked Flow run.

Common use cases

When not to use a relay

If the event you care about is already a native Shopify event — a real Shopify order, product, or fulfillment change — use the native Flow trigger directly. A relay is for the events Flow can’t see on its own: things that happen in other systems.

The privacy-first note

Flow Plus is a relay, not a data broker. It receives inbound webhooks and fires Flow triggers — it doesn’t request Shopify data scopes and never reads your store data. See pricing for plan-by-plan event volumes and log-retention windows.

Ready to try it? Install Flow Plus, create a channel, and your first external-webhook-driven workflow can be live in under five minutes.

Try it on your store

Install Flow Plus, paste a webhook URL, and trigger your first Shopify Flow in minutes.

Install on Shopify