Skip to content

Rewards

Rewards add free gift products to subscriber orders. There are two kinds, and they behave quite differently:

KindWhen it firesCustomer picks the gift?
At checkoutThe first order onlyOn the storefront, before subscribing
After Nth orderA repeat order you choose, e.g. the 3rdYes, 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.

Navigate to Retention → Loyalty & Rewards in the Gro dashboard and create a reward.

Give the reward a name and optional description. Both are internal, for your team. The Active switch controls whether the reward runs at all.

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.

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.

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.

Where the reward is advertised on your storefront: the product page, the Build a Box wizard, or the customer portal.

The heading and subheading shown to customers on the storefront banner and above the gift choices in the portal.

  1. The customer subscribes through Shopify checkout.
  2. Gro adds the gift to the order afterwards, using Shopify Order Edit.
  3. 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.

  1. After each order, Gro checks whether the customer’s next order is a reward order.
  2. If it is, the gift is queued as a one off item at no charge.
  3. When billing runs, the gift is added to the subscription contract and appears on the order.
  4. 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.

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.

  • 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.

Three days before a reward order, Gro fires one of two events you can build flows on:

EventFires when
subscription_upcoming_giftA gift is coming and it is settled
subscription_upcoming_gift_choice_neededA gift is coming and the customer can still pick which

Both carry the billing date, the order number, the assigned gift and the full list of gifts available, so you can name the alternatives in the message. Neither sends anything on its own. Build a flow on the event to email or text.

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.

To run rewards without showing them to customers, go to Settings → Subscriptions → Customer portal and turn off Show loyalty rewards.

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.