Add a Flow extension to your Shopify app using `shopify app generate extension --type flow_action` (or `flow_trigger`) and configure the extension TOML with `type`, `title`, `description`, and the payload schema
For a custom trigger: your app calls the `flowTriggerReceive` REST endpoint (POST /admin/api/2025-07/flow/triggers/receive.json) or the equivalent GraphQL trigger mutation when the event occurs in your system, passing a payload that matches the schema declared in the extension
For a custom action: declare your action endpoint URL in the TOML so Flow sends an HTTP POST to your app when the action runs; your endpoint receives the action payload and must respond with 200 within the timeout window
Define the payload properties (fields) your trigger or action exposes — these become the variables merchants can reference inside Flow workflow steps
Deploy via `shopify app deploy`; the trigger and action appear in the Flow editor for merchants who have installed your app
Test using the draft version in a development store before promoting to production; look for the 'Draft' badge in the Flow editor to confirm you are testing the unpublished version
Known gotchas
Custom Flow triggers and actions are only available on Shopify Plus stores and development stores configured on the Plus plan — they will not appear in the Flow editor for Standard plan stores
Asynchronous actions (introduced in 2026) must acknowledge the request immediately with a 200 and then call back to Flow via a callback URL; failing to respond within the synchronous timeout causes the workflow step to error
Flow extensions are part of your Shopify app and require app installation on the merchant store; they are not standalone — merchants must install your app to access your triggers and actions
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp