Your webhooks can now run on a timer, verify almost any sender's signature, and accept more than JSON.
Run a workflow on a timer from any API
A new Schedule tab on every webhook, and a direct way in: choose Create webhook and answer "What will call this webhook?" with Nothing - run it on a schedule. The app fetches a URL every 5 minutes up to once a day and sends the response into the webhook, so a Shopify Flow workflow can run on a schedule from any API.
- Fire on every fetch, or only when the response changed.
- Add request headers if the API needs them. They are stored encrypted.
- Run now fetches once and shows you the response.
- The tab shows how the schedule adds up against your plan. Runs appear in History as Scheduled.
- A schedule that fails 20 times in a row pauses itself.
See Scheduled URL polling.
Signature verification for almost any sender
22 built-in presets, up from 6, each checked against the sender's own documentation: Stripe, GitHub, Shopify, Slack, Typeform, Calendly, Standard Webhooks (OpenAI, Supabase), Svix (Clerk, Resend), Paddle, Linear, WooCommerce, Square, Sentry, Vercel, Zendesk, Lemon Squeezy, Razorpay, Paystack, Customer.io, Sendcloud, Mollie and Sanity.
- A sender without a preset is covered by a Custom signature: choose the header, the algorithm, the encoding, a timestamp with replay protection and the exact text that is signed.
- A signature tester in the editor shows which verification step fails, and can generate a valid example request.
- Creating a webhook now starts by asking what will send to it.
See Verifying signed webhooks, with a step-by-step guide for each sender.
More ways to authenticate
- A static token can now arrive as a Bearer token, as Basic auth (username and password) or as a URL parameter, for senders that cannot set a custom header. A token in the URL is masked in History and never passed to Flow.
- Rotate a secret without downtime. A second secret is accepted alongside the first, for static tokens and every signature scheme.
- IP allowlist. Limit who can call the URL to the addresses or ranges you list, on top of any authentication. See IP allowlists.
See Authentication.
- Form posts, file-upload forms and XML are now read into mappable fields just like JSON. A body that is valid JSON is still read as JSON, so no existing sender changes behaviour.
- Split arrays into runs. Point the new setting at a list in the payload and every item starts its own Flow run, up to 100 per request. Each item counts as one invocation.
See Body formats and splitting arrays.
A faster app, rebuilt on Shopify's web components
The whole app now runs on the web components of the Shopify admin itself instead of a separate interface library. There is less to load, so pages open faster, and every field, menu and dialog looks and behaves like the rest of your admin.
- The webhook editor is a builder. Settings on the left; on the right the Endpoint card with the webhook URL and webhook ID, above Live Preview, Test and Usage - so you change a setting and watch a request arrive side by side.
- The webhook list shows each webhook with its invocation count, how callers authenticate and when it last changed, with a menu per row to edit, enable, disable or delete.
- Connecting a signed sender. A webhook for Stripe, GitHub or another provider shows the steps to connect it and a button to its setup guide, instead of a sample request that could never verify.
Also in this release
- Blocked requests on the dashboard. Requests rejected by your plan limit used to leave no trace. The dashboard now shows how many were blocked in the last 30 days, and the plan card is a usage meter.
- Pagination on the webhook list works, and Clear all in History also clears the Replayed filter.
- Every page links to its guide in the help center, and the Help page lists our other apps for Shopify Flow.
- Routine security maintenance. No action needed.