ABAR
Automation

Flow automations: Practical Automations Every Store Should Run

How Flow automations works, when it beats an app, and a library of production-ready automations for tagging, fraud, inventory, VIP customers and back-in-stock — with the exact trigger, condition and action wiring.

ABAR Editorial Updated July 8, 2026 14 min read 8 sections

Flow automations: Practical Automations Every Store Should Run

Quick answer

Flow automations is our free workflow engine, available on every plan. It runs on a trigger → condition → action model, listens to over 40 admin events (orders, products, customers, inventory), and can call the Admin API, Shopify Email, or third-party apps via connectors. Use it to eliminate any manual repetitive admin task before you install another app.

Key takeaways
  • Flow is on every Shopify plan (Basic and up) — you don't need Plus.
  • Triggers fire once per event, not on a schedule — pair with `Send HTTP request` for cron logic.
  • Every workflow needs an explicit 'stop' condition or it'll fire on every order forever.
  • Complex branching belongs in one workflow, not five — Flow supports up to 50 actions per run.
  • Always log to a metafield or tag so you can audit what Flow touched.
TL;DR

If it involves 'when X happens, do Y' inside Shopify, Flow does it — for free — and replaces most tagging, notification and fraud-flag apps.

The trigger–condition–action model

Every Flow workflow starts with a trigger — an event that Shopify emits (Order created, Inventory quantity changed, Customer created, Product added to a collection). The trigger delivers a payload of variables. Conditions filter that payload (`order.totalPrice > 500`, `customer.tags contains 'wholesale'`). Actions do the work (tag the customer, send an email, call an app connector, POST to a webhook). Every workflow you'll ever build is a tree of those three primitives.

Where Flow beats an app

The Shopify app store is full of paid apps that do exactly what Flow does natively — auto-tag high-value customers, flag risky orders, notify staff of low stock. Before installing anything, ask: can Flow do this? The answer is yes about 70% of the time.

TaskTypical app costFlow equivalent
Auto-tag VIP customers$10–29/moFree — 1 workflow, 3 actions
Flag high-risk orders$15–49/moFree — order risk trigger + tag
Notify staff of low stock$9–19/moFree — inventory trigger + email
Auto-fulfil digital goods$12–29/moFree — order paid trigger + Shopify Fulfillment
Cross-sell recommendations$29–99/moNot Flow — needs an app

Automation 1 — Auto-tag VIP customers

Tag any customer whose lifetime spend crosses €1,000 as 'VIP' so downstream flows (free shipping, gated collections, custom emails) can filter on it.

  1. 1
    Trigger

    `Order paid` — fires on every completed payment.

  2. 2
    Condition

    `customer.amountSpent.amount >= 1000` — evaluate before tagging so we don't tag on every order.

  3. 3
    Action

    `Add customer tags` → `VIP`. Add a second action `Send internal email` to your CS team.

  4. 4
    Idempotency

    Add a second condition `customer.tags` does not contain `VIP` — otherwise the workflow runs (harmlessly) on every subsequent order.

Automation 2 — Flag risky orders for review

Automatically hold high-risk orders for manual review instead of fulfilling them.

  1. 1
    Trigger

    `Order created`.

  2. 2
    Condition

    `order.riskLevel == 'HIGH'` OR `order.paymentGatewayNames contains 'manual'`.

  3. 3
    Action 1

    `Add order tags` → `review-required`.

  4. 4
    Action 2

    `Send internal email` to fraud@yourshop.com with the order ID and risk score.

  5. 5
    Action 3

    `Hold fulfilment` — stops the order from auto-fulfilling until a human clears it.

Combine with a saved order view

Create a saved order view filtered on `tag:review-required` and pin it to your staff's admin sidebar. Reviews take 30 seconds instead of hunting through every order.

Automation 3 — Low stock warning per location

Notify a specific warehouse manager when a SKU at their location drops below a threshold.

  1. 1
    Trigger

    `Inventory quantity changed`.

  2. 2
    Condition

    `inventoryLevel.available <= 5` AND `inventoryLevel.location.name == 'Warehouse Berlin'`.

  3. 3
    Action

    `Send internal email` with product title, SKU, current stock and a deep link to the inventory page.

Automation 4 — Auto-tag products by margin

Tag every product whose margin (calculated from price − `cost per item`) drops below 20% as `low-margin` so it can be excluded from discount campaigns.

  1. 1
    Trigger

    `Product update` — fires when price or cost changes.

  2. 2
    Condition

    `variant.price - variant.inventoryItem.unitCost.amount) / variant.price < 0.20`.

  3. 3
    Action

    `Add product tags` → `low-margin`. Add reverse workflow that removes the tag when margin recovers.

Beyond built-in actions — HTTP requests

The most powerful Flow action is `Send HTTP request`. It POSTs any payload to any URL, which means Flow can trigger Slack messages, Notion updates, Zapier webhooks, your own API — anything with an HTTP endpoint. Combined with the built-in Liquid templating, you can build integrations that would otherwise require a middleware service.

Slack notification payload from Flowjson
{
  "channel": "#store-alerts",
  "text": "New VIP customer! {{ customer.firstName }} {{ customer.lastName }} just hit €{{ customer.amountSpent.amount }} lifetime.",
  "attachments": [{
    "color": "#4F46FF",
    "fields": [
      { "title": "Email", "value": "{{ customer.email }}", "short": true },
      { "title": "Last order", "value": "€{{ order.totalPrice }}", "short": true }
    ]
  }]
}

Testing Flow workflows safely

Every workflow has a 'Run test' button that lets you feed a real historical event through the workflow without emitting the actions. Use it obsessively — a broken condition can tag 20,000 products in seconds.

  • Test with `Add tags` before enabling anything destructive.
  • Log every workflow run to a metafield or a Google Sheet via `Send HTTP request`.
  • Keep every workflow named with the pattern `[domain] – trigger → outcome` so a stranger can read the list and know what runs.
  • Version-control workflows by exporting the JSON regularly — Flow has no built-in history.
Loops are a real risk

A workflow that runs on `Product update` and calls `Update product` triggers itself. Always add a condition that breaks the loop (e.g., tag not already present).

Frequently asked questions

The most common questions merchants ask us about automation.

No. Flow is included on every paid Shopify plan since 2023. Some connectors are Plus-only, but the core engine is universal.

Keep reading

A
ABAR Editorial
The editorial team at ABAR writes about practical Shopify operations, grounded in real API and admin behaviour.