Skip to main content

Shopify Flow

Shopify Flow is Shopify's own automation tool. This app sends events to Flow as your short links go through their life, so your store can react without you watching the dashboard — post to Slack whe...

Shopify Flow is Shopify’s own automation tool. This app sends events to Flow as your short links go through their life, so your store can react without you watching the dashboard — post to Slack when a campaign link gets its first click, email yourself the totals when a promotion ends, or tag something when a link takes off.

Flow is a separate free app from Shopify. Install it, build a workflow, and pick one of the triggers below as its starting point. Nothing needs switching on in Short Links: the app sends the event every time one happens, and Flow discards it if you have no workflow listening. You can see the full list of triggers, with what each one carries, under Settings > Integrations in the app.

Triggers this app sends

  • Short link created - Runs when you create a new short link. Carries the link’s name, short URL, destination and link type (product, collection, page, blog article, cart or custom URL).

  • Short link first clicked - Runs the first time a customer clicks a link, and only that first time. Carries the link’s name, short URL, destination and the referrer — where the click came from, or “Direct” when there was none.

  • Short link reached clicks - Runs when a link passes 100, 500, 1,000, 5,000, 10,000, 50,000 or 100,000 clicks. Carries the link’s name, short URL, its total clicks at that moment and the milestone it just passed. This one does not carry the destination.

  • Short link expired - Runs at the moment a link’s expiry date passes and it stops redirecting. Carries the link’s name, short URL, destination and its lifetime click total.

Why clicks arrive as milestones

There is no “every click” trigger, on purpose. A popular link can be clicked thousands of times an hour, and every Flow event a store receives shares that store’s Shopify API budget. A per-click trigger would spend it on notifications and slow down everything else, including the redirects your customers are following.

The first click and the milestone triggers give you the same signal without the flood: you hear when a link starts working, and again each time it reaches a number worth knowing about. If you want a running total, the expiry trigger carries the link’s lifetime clicks.

Example workflows

  • Post to Slack the first time someone clicks a campaign link, so the team knows it went out.

  • Email yourself the click total when a promotional link expires.

  • Send a Slack alert when a link passes 1,000 clicks, so you can put more behind what is working.

  • Add a customer tag or internal note when a link built for a specific audience starts getting traffic.

Things worth knowing

  • A workflow only runs if you have built one on that trigger. Events sent to a store with no matching workflow are dropped by Flow and nothing is stored.

  • Links without a name are reported by their short key instead, so a workflow always has something readable to put in a message.

  • The first click and each milestone fire once per link, ever. A link sitting at 1,200 clicks does not re-announce the 100 and 500 it passed on the way.

  • A link’s expiry date is set when you create it and cannot be changed afterwards, so the expiry trigger fires once for a link and once only.

  • Expiry dates are a paid-plan feature, so the expired trigger only ever fires for links made on a paid plan. The other three fire on any plan.

  • Triggers report the link as it was at the moment of the event, so editing the name afterwards does not change what a workflow already received.

Did this answer your question?