Shopify Flow
TierWise tells Shopify Flow the moment something happens in your program. A workflow you build decides what to do about it: send an email, add a tag, post to Slack, anything Flow can do.
Creating a workflow
- In your Shopify admin, open Apps → Flow → Create workflow.
- Choose a trigger. TierWise's are listed under the app's name.
- Add conditions and actions. Every trigger includes the customer, so their name, email and tags are available, plus the fields below.
- Turn the workflow on.
The six events
| Event | When it fires | Fields |
|---|---|---|
| Reward code issued | A customer just earned a discount code, and it's ready to use. | rewardCode rewardValue rewardExpiresOn tierName |
| Reward code about to expire | An unused code is a few days from expiring. You choose how many days in Settings; 7 unless you change it. Once per code. | rewardCode rewardValue rewardExpiresOn daysLeft tierName |
| Reward code used | A customer spent one of their codes on an order. | rewardCode rewardValue orderName |
| Tier reached | An order moved a customer up a tier, or into the club. | tierName previousTierName spendThisYear |
| About to lose tier | Once in December, for each member the January review would move down or out. | currentTierName tierInJanuary spendThisYear spendNeededToKeep |
| Tier lost | The January review moved a member down a tier, or out of the club. | previousTierName newTierName spendLastYear |
Field names in the Flow editor are the camel-case versions shown above. Values look like this:
| Field | Example |
|---|---|
rewardCode | SILVER-7K2M9Q |
rewardValue | 15% off, or $10.00 off |
rewardExpiresOn | 2026-12-31 |
tierName, currentTierName | Silver, using your tier names |
previousTierName, newTierName, tierInJanuary | A tier name, or None when there isn't one |
spendThisYear, spendLastYear, spendNeededToKeep | A number, such as 310.00 |
orderName | #1042 |
Example workflows
Email a new reward code
Trigger Reward code issued → action Klaviyo: Track an Event (see Klaviyo) or your email app's action. Put rewardCode, rewardValue and rewardExpiresOn in the message.
Remind them before a code runs out
Trigger Reward code about to expire → send an email: "Your {{ rewardValue }} code {{ rewardCode }} expires in {{ daysLeft }} days."
Celebrate your top tier in Slack
Trigger Tier reached → condition tierName is equal to Gold → action Slack: Send message, for example "{{ customer.firstName }} just reached Gold with ${{ spendThisYear }} this year."
Save a slipping member
Trigger About to lose tier → send an email: "Spend ${{ spendNeededToKeep }} before 31 December to keep {{ currentTierName }}."
Win back a lapsed customer
Trigger Tier lost → condition newTierName is equal to None → send a come-back offer.
Good to know
- Tier reached only fires for orders. Syncing customers or re-applying settings never fires it, so long-standing members aren't congratulated on a tier they've held for years.
- A failed event never blocks a reward. If Flow is off or no workflow exists, the customer still gets their tier and their code.
- The December and January events run the first time the app is opened in that month.
- Try before a real order. The Integrations page has a Send sample events button that fires all six events once for a customer you choose, with obvious test values. Build the workflows first: the sample only reaches Klaviyo through them.