Guidelines and requirements

Guidelines and information for creating triggers and actions for your apps, including payload limitations, rate limits, and how HTTP status codes are handled.

Shopify Flow is available to Shopify Plus plans only. If your app tries to make POSTs to a non-Plus store, then these calls are ignored by Shopify Flow.

Merchant Requirements

To create workflows that use your triggers and actions, merchant stores must have the following:

  • Shopify Flow installed
  • your app installed
  • a Shopify Plus plan

Trigger requirements and guidelines

Keep the following information in mind when you are creating your actions:

Requirement: Payload size

When you create a trigger, make sure that the payload that you send to Shopify Flow is less than 1 MB.

Requirement: Triggers are rate limited

Triggers have the same API call limits as the Shopify API.

Action requirements, information, and guidelines

Keep the following information in mind when you are creating your actions:

HTTP status codes and retry exceptions

After your action runs, Shopify Flow sends an HTTP request (POST) to your app. Shopify Flow waits for a maximum of 30 seconds for your app to respond with an HTTP status code.

If after 30 seconds Shopify Flow hasn't received a response from your app, then it closes the connection to your app and it resends the request.

When Shopify Flow receives a response, it processes the codes:

Code How Shopify Flow processes them
200 Success Shopify Flow assumes that the POST has been processed by your app.
4XX Client errors

If your app sends a 429 (too many requests) error without a Retry-After header, then Shopify Flow resends the HTTP request (POST) at increasing intervals for up 3 days or until it receives a 200 code.

If your app sends a 429 (too many requests) error with a Retry-After header (that specifies a wait time), then Shopify Flow resends the HTTP request (POST) after the wait time has passed.

If your app sends any other 4XX code, then Shopify Flow does not resend the POST.

5XX Server errors Shopify Flow resends the HTTP request (POST) at increasing intervals for up 24 hours or until it receives a different code (such as a 200 code).

Stop processing duplicate data

To prevent your app from processing duplicate requests, have it app check that the action_run_id in the body of the request is unique.

In some cases, your app could receive the same request more than once. For example, Shopify Flow might resend a request because it didn't receive your response in time. Each request from Shopify Flow contains an action_run_id, which is unique to the associated action (not to the request).

Learn more

Sign up for a Partner account to get started.

Sign up