Rewards
Rewards add free gift products to subscriber orders. There are two kinds, and they behave quite differently:
| Kind | When it fires | Customer picks the gift? |
|---|---|---|
| At checkout | The first order only | On the storefront, before subscribing |
| After Nth order | A repeat order you choose, e.g. the 3rd | Yes, from the customer portal |
A checkout reward is a signup incentive. An Nth order reward is a loyalty perk the customer works towards, and it is the one that appears in the portal.
Setting Up a Reward
Section titled “Setting Up a Reward”Navigate to Retention → Loyalty & Rewards in the Gro dashboard and create a reward.
1. Basic Information
Section titled “1. Basic Information”Give the reward a name and optional description. Both are internal, for your team. The Active switch controls whether the reward runs at all.
2. What the Reward Is
Section titled “2. What the Reward Is”- Free gift: a product added to the order, free of charge.
- Store credit: an amount of store credit, added once the order is placed. It comes off their next order automatically.
Store credit rewards are always given on a set order number, never at checkout, and only show in the customer portal.
3. Reward Settings
Section titled “3. Reward Settings”Choose when the reward is given:
- At Checkout puts the gift on the first order.
- After Nth Order puts the gift on a repeat order. Set the order number, so 3 means the gift lands on the customer’s third order. A store credit reward can also use order 1, which works as a welcome credit.
4. Eligibility
Section titled “4. Eligibility”Restrict the reward to subscriptions containing specific products. Leave it empty and every subscription qualifies.
This is what lets you run different rewards for different customers. A reward eligible on your coffee product only reaches coffee subscribers, so you can run a tumbler gift for them and something else entirely for tea.
Eligibility is checked against what is on the subscription right now, not what was on it when they signed up. See When Things Change.
5. Product Selection
Section titled “5. Product Selection”Choose the gift products, from collections, from individual products, or both. Products need to be active in Shopify and have at least one active variant.
If you pick more than one gift, the customer gets to choose between them. Pick one and everyone receives that gift. Store credit rewards skip this step.
6. Display Locations
Section titled “6. Display Locations”Where the reward is advertised on your storefront: the product page, the Build a Box wizard, or the customer portal.
7. Display Settings
Section titled “7. Display Settings”The heading and subheading shown to customers on the storefront banner and above the gift choices in the portal.
How It Works
Section titled “How It Works”First Order Rewards
Section titled “First Order Rewards”- The customer subscribes through Shopify checkout.
- Gro adds the gift to the order afterwards, using Shopify Order Edit.
- The gift is added at a 100% discount, so it is free.
The gift is never added to the subscription contract, so it does not repeat.
Nth Order Rewards
Section titled “Nth Order Rewards”- After each order, Gro checks whether the customer’s next order is a reward order.
- If it is, the gift is queued as a one off item at no charge.
- When billing runs, the gift is added to the subscription contract and appears on the order.
- After billing, the gift is removed from the contract so it does not repeat.
Because the gift is a real item on the order at zero cost, it never changes the order total.
Store Credit Rewards
Section titled “Store Credit Rewards”
- Once the reward order is placed, Gro adds the credit to the customer’s balance.
- It comes off their next order automatically, like any store credit.
- It’s paid once, even if Shopify sends the order to Gro twice.
Give a gift and a store credit reward the same order number and the customer picks one: the gift, or the credit. They can change their mind until the order is placed.
What Customers See
Section titled “What Customers See”In the Portal
Section titled “In the Portal”Nth order rewards appear as a Loyalty rewards card on the subscription page.
With more than one reward configured, the card shows a row of punches, one per order, like a coffee card. Filled punches are orders already placed, and a gift icon marks the orders that unlock something. Configure a single reward and the punch row is dropped, since there is no progress to show.
Only the next gift is named. Later ones keep their slot on the card, so the customer knows a gift is coming, but the product stays hidden. This is done on the server, so the later gifts are not sent to the browser at all.
If a reward offers more than one gift, a Change button lets the customer pick. They can keep changing until the gift is added to their contract for billing, at which point it is locked.
If the customer never chooses, Gro assigns one so the order is never giftless.
On the Storefront
Section titled “On the Storefront”- Product page and Build a Box wizard: a banner showing the gift image and name, plus when it arrives. A checkout reward reads “With your first order” and an Nth order reward reads “On your 3rd order”, so a gift several orders away is never mistaken for one arriving immediately.
- Cart: line item properties recording the chosen reward.
Notifications
Section titled “Notifications”Three days before a reward order, Gro fires one of two events you can build flows on:
| Event | Fires when |
|---|---|
subscription_upcoming_gift |
A gift is coming and it is settled |
subscription_upcoming_gift_choice_needed |
A gift is coming and the customer can still pick which |
Neither sends anything on its own. Build a flow on the event to email or text.
Gifts in Your Emails
Section titled “Gifts in Your Emails”Every subscription event carries the customer’s gifts, not just the two above. Payment reminders, pauses, skips and order confirmations can all mention them.
loyalty_reward_upcomingis the next gift still to come.loyalty_reward_timelineis every gift on their schedule, soonest first.
Each gift has its name, the order it lands on, how many orders to go, the product title and image, and whether the customer can choose. Send a test event to see a full sample, built from your own products and rewards.
Unlike the portal, events name every gift, not just the next one. If you want later gifts to stay a surprise, stick to loyalty_reward_upcoming.
The examples below use Klaviyo syntax. In Gro’s own Flow Builder the same fields are available as merge tags.
Tell Them a Gift Is Coming With the Payment Reminder
Section titled “Tell Them a Gift Is Coming With the Payment Reminder”Add this to your payment reminder template. Customers whose next order carries a gift see it, everyone else sees nothing.
{% if event.loyalty_reward_upcoming.is_next_order %} <img src="{{ event.loyalty_reward_upcoming.image_url }}" alt="{{ event.loyalty_reward_upcoming.product_title }}" width="120">
Good news! Your next order comes with a free {{ event.loyalty_reward_upcoming.product_title }}.
{% if event.loyalty_reward_upcoming.can_choose %} Fancy something else? <a href="{{ event.magic_login_link }}">Pick a different gift</a> {% endif %}{% endif %}Ask Them to Pick Their Gift
Section titled “Ask Them to Pick Their Gift”Build a flow on subscription_upcoming_gift_choice_needed. It only fires when the customer has a choice and has not made one yet. Show the options and send them to the portal to choose.
Your free gift is almost here, and you get to choose it.
{% for gift in event.loyalty_reward_upcoming.options %} <img src="{{ gift.image_url }}" alt="{{ gift.product_title }}" width="100"> {{ gift.product_title }}{% endfor %}
<a href="{{ event.magic_login_link }}">Choose my gift</a>
Your order goes out in {{ event.days_until_billing }} days. If you don't pick, we'll send the {{ event.loyalty_reward_upcoming.product_title }}.Show How Close They Are
Section titled “Show How Close They Are”Works in any email, and keeps customers motivated between gifts.
{% if event.loyalty_reward_upcoming and not event.loyalty_reward_upcoming.is_next_order %} Just {{ event.loyalty_reward_upcoming.orders_to_go }} more orders until your free {{ event.loyalty_reward_upcoming.product_title }}!{% endif %}Show a Gift Timeline
Section titled “Show a Gift Timeline”Loop over loyalty_reward_timeline for a punch card style list of every gift, marking what they already have and what is next.
{% for gift in event.loyalty_reward_timeline %} <img src="{{ gift.image_url }}" alt="{{ gift.product_title }}" width="80"> Order {{ gift.order_number }}: {{ gift.product_title }} {% if gift.status == 'earned' %} Received {% elif gift.status == 'next' %} Coming with your next order {% else %} {{ gift.orders_to_go }} orders to go {% endif %}{% endfor %}Remind Them What They Would Miss
Section titled “Remind Them What They Would Miss”On a pause or skip confirmation, the next gift is a gentle reason to come back.
{% if event.loyalty_reward_upcoming %} Don't forget, your free {{ event.loyalty_reward_upcoming.product_title }} is waiting on order {{ event.loyalty_reward_upcoming.order_number }}.{% endif %}When Things Change
Section titled “When Things Change”Reward state is kept in sync automatically. The cases worth knowing:
The customer removes the qualifying product. The reward no longer applies. The chosen gift and the queued item are removed, and if another reward still qualifies, a gift from that one is assigned instead.
The customer swaps their gift. The queued item is replaced with the new choice, as long as billing has not started.
You edit or deactivate a reward. Every affected subscription is swept and brought back in line. Gifts for a reward you switched off are pulled from upcoming orders, and subscriptions that newly qualify have a gift queued. Cosmetic edits such as a rename do not trigger a sweep.
A gift is already on the contract. Once billing has added the gift, it ships. Deactivating the reward at that point does not pull it back.
A Shopify webhook never arrives. Gifts are normally queued off the order webhook. A nightly sweep re-checks every subscription running a reward and queues anything that was missed, so a dropped webhook costs at most a day, not the gift.
Hiding the Portal Card
Section titled “Hiding the Portal Card”To run rewards without showing them to customers, go to Storefront → Customer portal → Design → Layout and take the Loyalty rewards block off the page.
Gifts still get chosen, queued and delivered. Only the card is hidden, so the gift arrives as a surprise. The card is shown by default.