Choosing the right trigger
The single most important decision in a Shopify Flow workflow is the trigger you start with. This guide matches real trigger names to the jobs merchants actually automate.
Before you build
- Grant the permission for the data involved, on the app's Permissions page.
- In Shopify Flow, create a workflow and pick the trigger. Triggers from this app are labelled Workflow Trigger Extensions in the picker.
- Add your conditions and actions, then turn the workflow on. That switches the trigger on in the app and starts its baseline sync automatically.
Orders
Use these when you need to react to changes after an order exists.
| You want to react to | Use |
|---|---|
| Any edit to the order | Order Update |
| Items, quantities, prices, or variants changing | Order Line Items Changed |
| Fulfillment progress, including partial, complete, cancelled, tracking | Order Fulfillment Changed |
| Payment state, for example pending to paid, or refunded | Order Financial Status Changed |
| Display fulfillment status, including on hold from POS | Order Display Status Changed |
| A note being added, edited, or cleared | Order Note Changed |
| Cart or note attributes changing | Order Attributes Changed |
| Tags being added, or removed, as separate events | Order Tags Added / Order Tags Removed |
| The shipping address being corrected | Order Shipping Address Changed |
Typical workflows: notify operations when line items change after checkout; start a follow-up process when fulfillment completes; alert finance when an order is refunded; re-validate shipping when an address is corrected.
Products and variants
| You want to react to | Use |
|---|---|
| Any catalog edit | Product Update |
| Price or compare-at price | Product Variant Price Changed |
| SKU added, changed, or removed | Product Variant SKU Changed |
| Barcode (EAN/UPC) changes | Product Variant Barcode Changed |
| Unit price per measurement | Product Variant Unit Price Changed |
| Cost per item changing | Product Variant Cost Changed |
| Going live or being archived | Product Status Changed |
| The URL handle changing | Product Handle Changed |
| Title, description, vendor, or type | the matching Product ... Changed trigger |
| Tags added or removed | Product Tags Added / Product Tags Removed |
| Publishing to or removing from a sales channel | Product Published to Channel / Product Unpublished from Channel |
Typical workflows: alert merchandising on a price change; create a URL redirect when a handle changes; sync an external catalog only when SKU data changes; recalculate margin when cost changes.
Inventory
| You want to react to | Use |
|---|---|
| Stock hitting zero at a specific location | Out of Stock at Location |
| Stock returning at a specific location | Back in Stock at Location |
| Any stock movement, with the delta | Inventory Level Changed at Location |
Typical workflows: unpublish a product when it goes out of stock at your only fulfillment location; notify the buying team on a back-in-stock event; trigger a transfer when one location runs low while another has surplus.
Discounts
| You want to react to | Use |
|---|---|
| A new automatic or code discount | Discount Created |
| Value, conditions, or dates changing | Discount Updated |
| A campaign reaching its end date | Discount Expired |
| Permanent deletion | Discount Deleted |
| A redeem code being added or removed | Discount Code Added / Discount Code Removed |
Typical workflows: remove a promotion banner when a campaign expires; post new discounts to Slack for approval; produce an impact report when a leaked code is removed.
Customers and B2B
| You want to react to | Use |
|---|---|
| Any customer record change | Customer Update |
| Tags added or removed | Customer Tags Added / Customer Tags Removed |
| The note field changing | Customer Note Changed |
| Account state, for example invited to enabled | Customer State Changed |
| Email or SMS marketing consent | Customer Email/SMS Marketing Consent Changed |
| Name, email, phone, or address (protected data) | the matching Customer ... Changed trigger |
| A B2B company or one of its locations changing | Company Update / Company Location Update |
| Tax exemptions on a company location | Company Location Tax Exemptions Changed |
| A contact being updated or removed from a company | Company Contact Updated / Customer Removed from Company |
Typical workflows: sync consent changes to your ESP; flag account edits for review; re-run a tax validation when a B2B location's exemptions change.
Draft orders
Full lifecycle coverage: Draft Order Update, Status Changed, Line Items Changed, Tags Added / Removed, Note Changed, Attributes Changed, Email Changed, Shipping Address Changed, and Billing Address Changed.
Typical workflows: notify sales when a quote moves to invoice sent; re-price when line items change during negotiation; validate an address before invoicing.
Collections, markets and locations
- Collection Update for rule changes or product membership; Collection Handle / Title / Description Changed for the individual fields.
- Market Created / Updated / Deleted / Status Changed for international and B2B selling.
- Location Created / Updated / Deleted / Activated / Deactivated for warehouses, stores, and pickup points.
Custom data
- Metafield Update when a monitored metafield changes on any of 10 owner types.
- Order / Product / Customer Metafield Update when you also want the resource itself as a native Flow reference, so Flow's own actions can act on it without a lookup.
- Metaobject entry updated when the changed record is a metaobject entry.
See Metafield triggers and Metaobject triggers.
Storefront content
Blog Update, Blog Post Update, and Page Update. Native Flow covers none of these.
Typical workflows: notify the content team when a published post is edited; alert support when the returns policy page changes; log content edits for audit.
Choosing between similar triggers
| If you are torn between | Choose |
|---|---|
| Order Update vs Order Line Items Changed | Order Update for notes, tags, addresses. Order Line Items Changed when only items matter. |
| Product Update vs Product Variant Price Changed | Product Update for general edits. Price Changed when only pricing matters. |
| Discount Updated vs Discount Code Added | Updated for configuration changes. Code Added for new redeem codes specifically. |
| Metafield Update vs Metaobject entry updated | Metafield Update for a field on a resource. Metaobject when the record itself is a metaobject. |
| Inventory Level Changed vs Out of Stock | Level Changed for any movement. Out of Stock for the zero crossing only. |
Best practices
- Use the most specific trigger available; it reduces workflow runs and quota use.
- Split large processes into several focused workflows rather than one broad workflow with many conditions.
- Name each workflow after the trigger it uses, so it stays identifiable later.
- Review discount and content workflows during busy campaign periods, when those records change most.
Full list of all 82 triggers: Complete trigger reference.