Skip to main content

How do I integrate Subi with the Shopify Flow app?

Subi's own Shopify Flow triggers and actions, Shopify's subscription triggers, what to do if your workflow runs on an old Subi trigger, and sample flows to import.

Shopify Flow lets you build custom automations without coding, helping you run your business more efficiently. With Flow, you can connect your apps, create unique workflows, and save time for growth.


Accessing the Shopify Flow app

You can install the Shopify Flow app from the Shopify App Store.
Once installed, you can create a workflow manually or start with a pre-made template.

For more guidance, review Shopify's official documentation.


How Shopify Flow works

Shopify Flow is event-based: it monitors your store for events and triggers automated actions when certain conditions are met.

Workflow components:

  • Trigger: The event that starts a workflow (e.g., a new subscription contract is created).

  • Condition: A rule that determines whether an action should happen (e.g., subscription value is over $200).

  • Action: The change made in your store or app if the condition is met (e.g., adding a customer tag).


Integrating Subi with Shopify Flow

Subi adds its own triggers and actions to Shopify Flow. A Subi trigger starts a workflow when something happens to a Subi subscription, and a Subi action lets a workflow change a subscription for you. Both need a Subi plan that includes the Subi API, and every paid plan does.

Subi's triggers

When you choose a trigger in Shopify Flow, search for Subi. These are the seven that run. If the search also shows the four older Subi triggers named under If your workflow runs on an old Subi trigger below, do not build on them: they no longer run.

  • Started Subscription runs when a Subi subscription is created, including one you create or import yourself.

  • Canceled Subscription runs when a subscription is canceled, except one merged into another subscription. It also gives you the reasons the customer chose and the comment they wrote, both empty when you, the API or a workflow canceled it.

  • Paused Subscription runs when a subscription is paused.

  • Resumed Subscription runs when a paused or canceled subscription becomes active again. A renewal does not run it.

  • Subscription Skipped runs when the next order of a subscription is skipped.

  • Subscription Payment Failed runs when a payment for a subscription order fails. It also gives you the attempt count, the failed attempts since the last successful payment with this one included.

  • Upcoming Subscription Order runs 3 days before a subscription places its next order.

Every Subi trigger hands your workflow the customer, the Subscription contract id, the Shopify product ids in the subscription (separated by commas) and the Next order date in your store's time zone.

Subi's actions

Five actions change a subscription from a workflow. Each one asks for the Subscription contract id. Take it from any Subi trigger, or from the subscription contract in one of Shopify's own subscription triggers: both name the same subscription. The five are:

  • Skip next subscription order.

  • Change next subscription order date, which also asks for the new date: a day after today in your store's time zone, written as YYYY-MM-DD.

  • Pause subscription, for an active subscription.

  • Resume subscription, for a paused subscription.

  • Cancel subscription.

Skipping, pausing, resuming and canceling each send your customer the matching email under Subscription changes in your customer email notifications, if you have that email switched on. Changing the next order date sends no email. An action never changes a subscription that is already canceled or expired. When an action cannot run, Shopify Flow shows Subi's reason in the workflow's run history.

Skipping, pausing, resuming and canceling also run Subi's triggers, the same as when you or your customer make that change (changing the date runs none). So never let workflows answer each other: a workflow that skips on Subscription Skipped, or one that resumes on Paused Subscription beside one that pauses on Resumed Subscription, repeats until Subi stops it after about 10 changes to that subscription in a day. From then on, for up to 24 hours, the subscription refuses any skip, pause, resume or cancel, your customer's too, and a skip loop can skip about 10 orders before it stops.

Test a new workflow on a subscription of your own before you rely on it: an action really changes the subscription and can email the customer.

Shopify's own subscription triggers

A subscription your customer starts with Subi is a real Shopify subscription contract, so Shopify's own subscription triggers see it too. For a cancel, a pause or a resume, the Subi triggers above are simpler, because each runs once for that change. They run for changes made in Subi, by you, your customer, the API, a workflow or Subi itself (for example a pause or cancel after failed payments); a change made directly in Shopify runs only Shopify's triggers. Shopify gives you these subscription triggers:

  • Subscription contract created: a customer subscribes to a product on your store or purchases a membership.

  • Subscription contract updated: a subscription changes. Subi writes a cancellation, a pause and a resume back to the contract in Shopify, so this trigger sees those too. Add a condition on the subscription contract status to pick out the change you want: Paused, Cancelled and Expired are the ones that tell you a subscription stopped, Expired being how a subscription with a fixed number of cycles ends. Active on its own is not a resume signal, because Subi moves the next billing date forward after every renewal, and that is another update to the same contract. The trigger fires on those, and on a skipped or rescheduled order, and the condition reads the status rather than the moment it changed, so a later edit to the same contract runs the workflow again. Test yours with a real subscription before you rely on it.

  • Subscription billing attempt success, Subscription billing attempt failure and Subscription billing attempt challenged: the outcome of a renewal charge.

You can use these triggers with actions such as:

Example: Add a tag to a customer when a subscription contract is created.

Example of a workflow that adds a tag to a customer when a subscription contract is created

If your workflow runs on an old Subi trigger

Subi has four older triggers: Subscription Created, Subscription Contract Status Cancelled, Subscription Contract Status Paused and Subscription Contract Status Resumed. They no longer run, so a workflow that starts on one of them does nothing. If you still see them in Shopify Flow, do not build anything new on them.

Open the Shopify Flow app from your Shopify admin and look at the first step of your subscription workflows. If it is one of those four, rebuild the workflow on the Subi trigger that replaces it:

  • Subscription Created: use Started Subscription.

  • Subscription Contract Status Cancelled: use Canceled Subscription.

  • Subscription Contract Status Paused: use Paused Subscription.

  • Subscription Contract Status Resumed: use Resumed Subscription.

Shopify Flow gives a workflow one trigger, so rebuilding means a new workflow beside the old one. Turn the old one off once the new one runs.

If you see any other trigger with Subi's name on it, start a chat with us before you build on it. Start a chat with us too if you are not sure whether an old workflow of yours is still doing anything, or if you would like a hand moving it over, and we will go through it with you.


Branch a workflow on Subi's tags

On the Subi and Subi Plus plans, or with the Smart tagging & integrations add-on at $19 per month on a paid plan, Subi can tag your subscribers and their subscription orders for you, and a Shopify Flow condition can read those tags. The order tags need one extra Shopify permission as well, so that part of the screen stays locked until your store grants it. The customer tags are Subi Subscriber, Has Active Subscription, Has Paused Subscription, Has Cancelled Subscription and payment failure. The order tags are Subi Subscription, First Subscription Order and Recurring Order #number.

Has Active Subscription, Has Paused Subscription and Has Cancelled Subscription are one flag between them rather than a description of the customer: Subi replaces one of them only when it applies another, so the tag shows the last change Subi tagged and not where the subscription stands today. It does not move when a subscription expires. A tag you have not switched on is never applied, although Subi clears all three whenever it applies one. A customer with two subscriptions who cancels one of them is tagged as cancelled. For the state right now, read the subscription contract itself.

Two of those names depend on your store. A store that was with us before we changed our name still writes Subify Subscriber and Subify Subscription until it switches, and Settings > Tag management shows which tags your store writes. A Flow condition ignores capitals but not a different word, and an Equal to condition compares the whole tag, so take the wording from that screen rather than from a customer or an order you tagged earlier: records tagged before a switch keep the old tag. The recurring order tag ends with the cycle number, so match that one with Starts with and Recurring Order #.

Subi writes these tags after the change they describe, not with it, so a workflow that the same change started can run before the tag is there. That includes Order created: Shopify creates the subscription order and starts your workflow, and Subi tags that order afterwards. Sample flow 4 below handles that with a Wait step before its condition, which is the simplest option, although it covers the ordinary case rather than guaranteeing it: a tag write that has to retry can take longer than the wait. The dependable routes are to start the workflow on Subscription billing attempt success, which hands you the order and the subscription contract together and covers renewal orders, or to read the subscription contract on the order's line item rather than the tag. Away from Flow, the customer tags are what a Shopify customer segment can filter on.

Open Settings > Tag management in the Subi app to switch the tags on. They apply to future subscribers and new subscription orders, not to the ones you already have. Automated Tags for Subscribers & Orders in Subi has the full list and the steps.


Flows you can use for your subscriptions

Here are some sample flows about subscriptions that you can download and import to your Shopify Flow app:

Num.

Flow

Description

Download link ⬇️

Send subscription data to Klaviyo

Sends subscription data to Klaviyo for email automations.

Tag failed subscription payments

Tags a customer whose contract already carries a failed payment, with the reason.

Tag customers by subscribed product

Adds tags for customers based on the product they subscribe to.

Email staff when a subscription order is created

Sends an internal email to staff for each new subscription order, once its condition names the order tag your store writes.

Tag subscription orders with creation date

Adds a tag with the order creation date to subscription orders, once its condition names your app.

1. Send subscription data as an event to Klaviyo

This flow sends your subscription data to Klaviyo as an event, so it can be used in Klaviyo email automation.

If you use Klaviyo and you are on the Subi or Subi Plus plan, or have the Klaviyo add-on at $19 per month on a paid plan, connect Klaviyo to Subi first. Subi's own Klaviyo connection adds your subscribers to a Klaviyo list and sends your subscription events on its own, cancellations, pauses and resumes among them, each as its own named Klaviyo metric, so you do not need a status condition to pick them out. How do I connect Subi with Klaviyo? walks through it. On the other plans, or if you would rather send the event from Shopify Flow, build the workflow below.

Steps:

  1. Install Klaviyo and connect it to your Shopify store.

  2. Import the flow into your Shopify Flow app.

  3. Open the flow and select the Track an event action.

  4. Enter your Klaviyo Public API Key (found in Klaviyo app > Account > Settings > API Keys).

  5. Update the event name if desired (default is subscription contract is created).

  6. Turn on the workflow.

  7. Create a test subscription in your store.

  8. In Klaviyo, add the event to your email automation.


2. Tag failed subscription payments with reason codes

This flow tags a customer whose subscription contract already carries a failed payment, with the failure reason.

Steps:

  1. Import the flow into your Shopify Flow app.

  2. Turn on the workflow.

Result:
When this workflow runs on a contract that already carries a failed payment, the customer receives two tags:

  • The reason for the failed payment

  • Last subscription payment failed

These two tags are written by the workflow itself, and they are separate from Subi's own payment failure tag above. One thing to know before you rely on it: this flow starts on Subscription contract created, so it tags a contract that already carries a failed payment, which a brand new subscription does not. To catch failures as they happen, build a workflow on Shopify's Subscription billing attempt failure trigger, where no condition is needed and the customer comes from the subscription contract, or, on the Subi and Subi Plus plans or with the Smart tagging & integrations add-on on a paid plan, switch Subi's own payment failure tag on. You can then create a Shopify customer segment based on the second tag to see all customers with failed payments, review the failure reason tag, and contact them or send an “update payment method” email. Subi's Subscription Payment Failed trigger also runs on a failed payment and gives you the attempt count, but not the failure reason, so the reason tag in this flow needs Shopify's Subscription billing attempt failure trigger.


3. Tag customers when they subscribe to a specific product

This flow tags customers who subscribe to a specific product or purchase a membership.

Steps:

  1. Import the flow into your Shopify Flow app.

  2. Open the flow and select the Add customer tags action.

  3. In the Tags field, enter your tags or click the </> icon to add dynamic tags from subscription contract values (e.g., product title, variant title, subscription interval).

  4. Turn on the workflow.


4. Email staff when a new subscription order is created

Once its condition names the order tag your store writes, this flow sends an internal email to staff whenever a new subscription order is placed.

Steps:

  1. Import the flow in your Shopify Flow app.

  2. Open the flow and click on edit.

  3. Open the condition and set the tag to the one your store writes, Subi Subscription or Subify Subscription. This flow reads Subi's order tags, so it needs tag management switched on first: the Subi or Subi Plus plan or the Smart tagging & integrations add-on on a paid plan, and the extra Shopify permission the order tags ask for.

  4. Click on the "send internal email" action.

  5. Fill in the email address field.

  6. Add more information to the email you want to get after each order.
    (Click on the </> icon in the tags field to add any information regarding the order, its customer, and their subscription based on the values available.

  7. Turn on the workflow.

  8. Test it out by placing a test order.

Shopify Flow app logo
Shopify Flow app logo

5. Tag subscription orders with the creation date

Once its condition names your subscription app, this flow tags every subscription order with the date it was created.

Steps:

  1. Import the flow in your Shopify Flow app.

  2. Open the flow and click on edit.

  3. Open the condition and set the app name to the one Subi is listed under in your Shopify admin, under Settings > Apps and sales channels. The condition reads the subscription app on the order's line item, which is not the same field as the app that created the order.

  4. Turn on the workflow.

  5. Test it out by placing a test order.

Shopify Flow app logo

Result:
Once the condition names your subscription app, each subscription order gets a tag containing its creation date.

Shopify Flow app logo
Did this answer your question?