Shopify Flow
Automate subscription work with Shopify Flow. Every Subrise trigger and action, with the fields each one provides or needs.
Shopify Flow runs workflows in your store: when something happens (a trigger), check conditions, then do something (an action). Subrise adds 20 subscription triggers and 16 subscription actions to Flow, and they work alongside Flow's own triggers and actions.
There is nothing to connect. Once Subrise is installed, its triggers and actions appear in Flow.
Build a workflow
- In your Shopify admin, open the Flow app. Install it from the Shopify App Store if you don't have it. Flow is made by Shopify and is free.
- Click Create workflow.
- Click Select a trigger and search for Subrise. Pick a trigger, such as Subscription paused.
- Add a condition if you need one, such as Pause Reason equal to "Too expensive".
- Add an action. Use a Subrise action to change the subscription, or any Flow action, such as tagging the customer or sending an internal email.
- Click Turn on workflow.
For example, this workflow tags customers who pause because of price:
- Trigger: Subscription paused
- Condition: Pause Reason is equal to "Too expensive"
- Action: Add customer tags
paused-price
Tip
Many triggers have an Initiated By field: customer, merchant, support, flow or system. Changes made by Subrise Flow actions have Initiated By set to flow. Add the condition Initiated By is not equal to flow so a workflow does not react to changes its own actions made.
Triggers
Every Subrise trigger provides these fields:
| Field | What it holds |
|---|---|
| Customer | The Shopify customer, so Flow can read any customer field and run customer actions. |
| Subscription Id | The subscription contract ID, such as 28845637871. Pass it as Subscription ID to any Subrise action. |
| Customer First Name, Customer Last Name, Customer Email | The subscriber's name and email. |
| Products | The recurring products, such as "Coffee - 1lb x 2, Tea". One-time add-ons are not listed. |
| Billing Frequency | How often the subscription bills, such as "Every month". |
| Currency Code | The subscription's currency, such as USD. |
| Customer Portal Link | A link where the customer can manage this subscription. Use it in emails and messages. |
Dates are ISO 8601 text, such as 2026-11-01T14:00:00Z. Next Billing Date is empty when no order is scheduled.
Purchases
| Trigger | Runs when | Extra fields |
|---|---|---|
| Subscription purchased | A customer buys a subscription at checkout, including customers who already subscribe. Subscriptions created in the admin, through the API or by a migration don't run it. | Order, Order Id, Subscription Line Items, Total Subscription Price, Subscription Started Date, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
| First subscription purchased | A customer buys their first ever subscription from your store. Use it for a welcome series. | Order, Order Id, Subscription Line Items, Subscription Total, Subscription Started, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
| Prepaid subscription purchased | A customer buys a prepaid subscription at checkout: several deliveries paid for up front. Prepaid renewals don't run it. | Order, Order Id, Subscription Line Items, Total Subscription Price, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
| Subscription purchased with add-ons | A subscription bought at checkout includes one-time add-ons. | Addon Line Items, Total Subscription Price, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
Billing and payments
| Trigger | Runs when | Extra fields |
|---|---|---|
| Subscription order coming up | Once before each order, as many days ahead as the upcoming order email is set to send. Checked daily. | Subscription Invoice Date, Days Until Billing, Total Subscription Price, Customer Phone, Customer Id |
| Subscription payment succeeded | A renewal is charged and its order is created. The first order at checkout doesn't run it. | Order, Order Id, Payment Date, Total Subscription Price (products, add-ons and shipping), Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
| Subscription payment failed | Each time a renewal charge fails. | Failed Billing Error Message, Error Code, Card Info, Attempt Number, Retries Remaining, Next Retry Date, Final Attempt, Total Subscription Price, Next Billing Date, Customer Phone, Customer Id |
| Payment retries exhausted | A renewal has used up your payment retries and Subrise paused or cancelled the subscription. | Final Action (paused or cancelled), Failed Attempts, Error Code, Error Message, Subscription Status, Total Subscription Price, Next Billing Date |
| Subscription card expiring soon | Once per card, when an active subscription's card expires within 30 days or before its next order. Checked daily. | Card Last Digits, Expiry Month, Expiry Year, Days Until Expiry, Expires Before Next Order, Subscription Status, Total Subscription Price, Next Billing Date |
Error Code is Shopify's code for the failure, such as insufficient_funds or expired_payment_method. Final Attempt is true when no retries remain. See Billing and failed payments for how retries work.
Changes to a subscription
| Trigger | Runs when | Extra fields |
|---|---|---|
| Subscription updated | A subscription's products, next order date, frequency, discounts, address or payment method change. | Change Type, Update Body, Subscription Modified Date, Total Subscription Price, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id |
| Subscription product added | A product or one-time add-on is added to an existing subscription. | Product, Product Title, Variant Title, Variant Id, Quantity, Line Price, Is Addon, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
| Subscription product changed | A product on a subscription is swapped for another variant, or its quantity changes. | Product, Change Type (swap or quantity), Product Title, Variant Title, Variant Id, Quantity, Line Price, Is Addon, Previous Variant Title, Previous Variant Id, Previous Quantity, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
| Subscription product removed | Someone removes a product or add-on. An add-on that ships with its order and drops off doesn't run it. | Product, Product Title, Variant Title, Variant Id, Quantity, Line Price, Is Addon, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
| Subscription frequency changed | A subscription moves to another plan or frequency, such as monthly to every 2 months. | Previous Billing Frequency, Selling Plan Id, Selling Plan Name, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
| Subscription order rescheduled | The customer, you or a Flow action moves the next order to another date. | Previous Billing Date, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
| Subscription order skipped | The customer, you or a Flow action skips the next order. Next Billing Date is the new date. | Skipped Billing Date, Subscription Status, Total Subscription Price, Next Billing Date, Initiated By |
Change Type on Subscription updated is one of next_billing_date, product_added, product_removed, product_updated, frequency, discount_added, discount_removed, payment_method, shipping_address, schedule or details. Use it in conditions rather than Update Body, which is the raw change as JSON text.
Status changes
| Trigger | Runs when | Extra fields |
|---|---|---|
| Subscription paused | The customer, you, a Flow action or Subrise pauses a subscription. | Pause Reason, Pause Details, Subscription Paused Date, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id, Initiated By |
| Subscription resumed | A paused or cancelled subscription becomes active again. | Previous Status (PAUSED or CANCELLED), Subscription Updated Date, Total Subscription Price, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id, Initiated By |
| Subscription cancelled | The customer, you, a Flow action or Subrise after failed payments cancels a subscription. | Reason, Reason Details, Subscription Cancelled Date, Total Subscription Price, Next Billing Date, Total Subscription Orders, Total Subscription Spend, Customer Total Shop Spend, Addon Count, Customer Phone, Customer Id, Initiated By |
| Subscription expired | A subscription with a set number of orders places its last one and ends. | Completed Orders, Subscription Status, Total Subscription Price, Next Billing Date |
Reason and Pause Reason hold the customer's answer in the portal, or admin-auto when failed payments paused or cancelled the subscription. Other changes set their own value:
Admin-PausedorAdmin-Cancelledfrom the Subrise admin, or the reason sent with an API callPaused by Shopify FloworCancelled via Flowfrom a Flow actionPaused by support agent via Gorgiasfrom GorgiasScheduled Pausewhen a scheduled pause starts
Note
Flow also lists 11 other Subrise triggers: Loyalty points earned, Loyalty reward redeemed, Loyalty tier changed, Referral completed, Subscription streak milestone reached, Achievement unlocked, Journey step changed, Build a box updated, Trial started, Trial ending soon and Trial converted. They belong to features that are not available in Subrise yet. They don't run, so workflows built on them never start.
Actions
Every Subrise action needs two things:
- Customer: Flow fills it in from the trigger.
- Subscription ID: the contract ID. Every Subrise trigger provides it as Subscription Id.
| Action | What it does | Other fields (* required) |
|---|---|---|
| Skip next order | Skips the next order, moving the next billing date one interval later. | None |
| Set next billing date | Moves the next order to a date. The order is charged that day at your store's billing time. | Date* (such as 2026-12-01, must be in the future), Skip customer email |
| Move next billing date | Moves the next order later or earlier by a number of days. The order keeps its time of day. | Days* (-365 to 365, not 0; the new date must be in the future), Skip customer email |
| Bill subscription now | Bills the next order of an active subscription now instead of on its scheduled date. It's refused if the subscription was already charged today (a failed charge counts) or a charge is in progress, and when Shopify says the subscription can't be billed. | None |
| Pause subscription | Pauses the subscription, optionally resuming it after a number of billing cycles or on a date. | Resume after cycles (1 to 52), Resume on date (use one or the other), Reason |
| Resume subscription | Reactivates a paused or cancelled subscription. The next order bills on its date, or soon if that date has passed. | None |
| Cancel subscription | Cancels the subscription. The customer gets the cancellation email. Does nothing if it is already cancelled. | Reason (saved as the cancellation details and shown in the activity log) |
| Add product to subscription | Adds a product on every order, or once as an add-on for the next order. | Product variant ID*, Quantity*, One-time add-on*, Selling plan ID (leave empty for most workflows) |
| Add one-time product to next order | Adds a product to the next order only, such as a free gift or a sample. It drops off after that order ships. | Product variant ID*, Quantity* |
| Remove product from subscription | Removes a product or add-on. Won't remove the only product: cancel the subscription instead. | Product to remove* (a variant ID or subscription line ID) |
| Change product quantity | Sets the quantity of a product. Does nothing when the quantity is already the same. | Product* (a variant ID or subscription line ID), Quantity* (1 to 999) |
| Swap product variant | Replaces a variant with another, such as a new size or flavor. | Current variant ID*, New variant ID*, Quantity (leave empty to keep it) |
| Change subscription plan | Moves the subscription to another selling plan, such as a different delivery frequency. Products are repriced for the new plan only when Plan changes apply the new plan's pricing is on in Customer portal settings. Otherwise they keep their current price. | Selling plan* (the plan's ID, or its exact name when only one plan has that name) |
| Apply subscription discount | Creates a single-use discount code and applies it for a number of orders. | Discount type* (PERCENTAGE or FIXED), Discount value*, Number of orders*, Reason (added to the discount's title) |
| Remove subscription discount | Removes one discount code, or every discount on the subscription. | Discount code (leave empty to remove every discount) |
| Send payment update request | Emails the customer Shopify's secure link to update the payment method on the subscription. | Reason, Urgency (LOW, MEDIUM or HIGH). Both are notes for your records and are not sent to the customer. |
Variant IDs can be plain numbers, such as 44612345678901, or full IDs, such as gid://shopify/ProductVariant/44612345678901.
When an action fails
If an action can't run, for example because the date is in the past or the subscription is not active, Flow shows the run as failed with Subrise's reason. Subrise doesn't retry it on its own. Check the subscription in Subrise before you run the workflow again.
Examples
| Goal | Trigger | Condition | Action |
|---|---|---|---|
| Win back customers whose card is about to fail | Subscription card expiring soon | Expires Before Next Order is true | Send payment update request |
| Thank long-time subscribers | Subscription payment succeeded | Total Subscription Orders is equal to 12 | Add one-time product to next order (a free gift) |
| Alert your team to lost revenue | Payment retries exhausted | Final Action is equal to cancelled | Send internal email |
| Bring back customers who pause over price | Subscription paused | Pause Reason is equal to "Too expensive" | Apply subscription discount, then Resume subscription |