> For the complete documentation index, see [llms.txt](https://docs.giftcardfactory.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.giftcardfactory.app/campaigns/gift-card-rewards.md).

# Gift Card Rewards

Reward customers with free gift cards

{% hint style="info" %}
Explore our Flow Template library to find a flow similar to the Gift Card Rewards flow. It is ideal for creating more complex campaigns.
{% endhint %}

### Overview

Gift Card Rewards is an automated campaign that issues gift cards to customers when they complete a qualifying purchase. A gift card code is dispatched right after the order is paid, creating an immediate incentive to encourage repeat business.

**Common use cases:**

* Reward loyal customers with gift cards on every purchase
* Encourage larger orders through tiered spending thresholds
* Run time-limited promotions (e.g., "Get a $10 gift card on orders over $50 this weekend")
* Target specific customer segments or product collections

### 💡Common Use Cases

**Cashback on Every Order** — Give 5% back as a gift card on every purchase, with no minimum. Perfect for: Stores wanting a simple loyalty mechanic that brings customers back.

**Tiered Spending Incentive** — Set tiers at $50/$5, $100/$15, $200/$30 to reward larger baskets. Perfect for: Encouraging customers to add more items to hit the next reward level.

**Weekend Flash Promotion** — Use active dates to run a Friday-to-Sunday campaign offering a $10 gift card on orders over $75. Perfect for: Short-term sales events without creating discount codes.

**Collection-Specific Reward** — Apply the campaign only to a "New Arrivals" collection with a 10% reward. Perfect for: Driving traffic to specific product lines or clearing seasonal inventory.

**VIP Customer Appreciation** — Restrict eligibility to a "VIP" customer segment and offer higher reward tiers. Perfect for: Rewarding your best customers differently from the general audience.

**First Purchase Welcome Gift** — Set max gift cards per customer to 1 and offer a $10 reward on any order. Perfect for: Turning first-time buyers into repeat customers with a guaranteed second visit.

### Creating a Campaign

Navigate to **Campaigns** in the app and click **New Campaign** > **Gift Card Rewards**.

#### Title

Give your campaign a descriptive name (e.g., "Holiday 10% Cashback" or "VIP $20 Reward"). This title is visible only to you and your staff.<br>

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2F5H339BJeY9X1QKhP7eJ1%2Fimage.png?alt=media&amp;token=9b8a0972-38ca-433c-8895-e1291bacee38" alt=""><figcaption></figcaption></figure>

***

#### Gift Card Value

This section controls how the gift card value is calculated and which products qualify.

**Currency (multi-currency stores)**

Shown only when your store has market currencies enabled besides the store currency. By default every order is evaluated in your store currency, and gift cards are issued in it.

* **Order currency** — **Any currency** (default) evaluates every order converted to the store currency. Pick a specific currency to make the campaign respond **only to orders placed in that currency**; tier minimums and the minimum purchase amount are then compared against the order totals in that currency. Orders placed in other currencies are ignored, so create one campaign per currency if you want to reward each market (e.g. one campaign for AUD and one for NZD).
* **Gift card currency** — the currency the reward gift card is issued in. It follows the order currency by default, but you can pick the store currency or any market currency.
* **Redemption in** — shown when a market currency (other than the store currency) is selected:

  * **All currencies** — the balance is converted with spot exchange rates when the card is redeemed in another currency.
  * **Issued currency only** (default) — the card can only be redeemed for purchases in the currency it was issued in.

  Gift cards issued in the **store currency** are always redeemable in any currency — exchange rates are determined at checkout using your Market settings.

App Email templates format the gift card amount in the card's currency automatically, so an NZD card shows as `NZ$50.00` even if your store currency is AUD.

**Value Type**

Choose between two modes using the tabs:

**Fixed Amount** — Define tiers with minimum order values and corresponding gift card amounts. When an order qualifies, the highest matching tier is used.

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2F4jkgAX9XOuLtAXF6bhdb%2Fimage.png?alt=media&amp;token=7e230cc5-702c-469f-a59b-b68117e87764" alt=""><figcaption></figcaption></figure>

**Percentage of Order** — The gift card value is calculated as a percentage of the qualifying line items total.

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FBpQqYFYVgUnkQJkIfTho%2Fimage.png?alt=media&amp;token=89103a22-0de3-478d-9aab-be2fe46a6ff7" alt=""><figcaption></figcaption></figure>

**Tiers (Fixed Amount only)**

Each tier has:

* **Minimum value** — The minimum line items total required to qualify (in the order currency)
* **Gift card value** — The gift card amount issued when this tier is reached (in the gift card currency)

Tiers are evaluated from highest to lowest. The first tier where the order total meets the minimum is used. You must have at least one tier.

**Example:**

| Minimum Value | Gift Card Value |
| ------------- | --------------- |
| $100          | $15             |
| $50           | $5              |

An order of $120 would receive a $15 gift card. An order of $75 would receive a $5 gift card. An order of $30 would not qualify.

**Applies To**

Control which products count toward the qualifying total:

* **All products** — Every product in the order counts
* **Specific collections** — Only products from selected collections count
* **Specific products** — Only selected products and their variants count

When using specific products or collections, only the matching line items are used to calculate the order total and gift card value.<br>

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2F4s8qwZtYsZhpxmlIvXv3%2Fimage.png?alt=media&amp;token=a1b84302-64c3-4bdd-aae6-33f3cda01612" alt=""><figcaption></figcaption></figure>

***

#### Minimum Purchase Requirements

Set additional conditions the order must meet before a gift card is issued:

* **No minimum requirements** — Any qualifying order receives a gift card
* **Minimum purchase amount** — The qualifying line items total must reach a specified amount
* **Minimum quantity of items** — The order must contain at least a specified number of qualifying items

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FCK3MWWhl7jD8BLqFaek9%2Fimage.png?alt=media&amp;token=9c2c1a22-fa05-4ed6-b1db-28ab16288987" alt=""><figcaption></figcaption></figure>

***

#### Eligibility

Control which customers can receive gift cards from this campaign:

* **All customers** — Any customer who places a qualifying order
* **Specific customer segments** — Only customers belonging to a selected Shopify customer segment
* **Specific customers** — Only individually selected customers

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FJmkLJizwJQ1PkPrfxU8p%2Fimage.png?alt=media&amp;token=65efcfc1-eb8f-47f9-ac79-b68e5624850c" alt=""><figcaption></figcaption></figure>

***

#### Active Dates

Set a time window during which the campaign is active. Orders placed outside this window will not trigger gift cards, even if the campaign status is Active.

* **Start date** — When the campaign begins accepting qualifying orders
* **End date** — When the campaign stops (optional — leave blank for no end date)

Each date includes a time and timezone picker for precise control.

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FYmoXOUxKgGz9Vk5nXqwd%2Fimage.png?alt=media&amp;token=f758dc1f-17a5-4524-9415-0022a1331aa0" alt=""><figcaption></figcaption></figure>

***

#### Gift Cards

Configure the gift card properties:

* **Auto-expiration** — Set when the issued gift card expires (never, or after a specified period from creation)
* **Max gift cards per customer** — Limit how many gift cards a single customer can receive from this campaign (e.g., set to 1 for one-time promotions)
* **Gift card message** — A customer-visible message attached to the gift card (max 200 characters)
* **Gift card note** — An internal note not visible to the customer

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FanEoTdOEDyQiUNuzdZvO%2Fimage.png?alt=media&amp;token=ea126d84-d157-4994-9015-54d8678c5fa5" alt=""><figcaption></figcaption></figure>

***

#### Delivery

Choose how the gift card is delivered to the customer:

* **Shopify Email** — Uses Shopify's built-in gift card notification. Free, no additional setup required.
* **App Email** — Sends a custom-designed email using your configured email template. Allows full control over design and branding. Uses App Email credits (1 per email)
* **Klaviyo** — Triggers a Klaviyo event with gift card data. You design the email in Klaviyo.
* **Shopify Flow** — Triggers a Flow event. Use Shopify Flow to build custom delivery logic.

When using App Email, select an email template from your configured templates.

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2FVqYeiT4gvn79MCukfXyt%2Fimage.png?alt=media&amp;token=b6339c94-314a-4ab8-808a-c610ef0ceaa0" alt=""><figcaption></figcaption></figure>

Read more about different gift card delivery options in [Sending Customer Notifications](/misc/sending-customer-notifications.md) section

***

#### Test Mode

Enable test mode to validate your campaign before going live. When test mode is on, only orders placed with the specified test email address will be processed. All other orders are ignored.

<figure><img src="https://2895247924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcsKliv3CuXU7kN4gxX9B%2Fuploads%2F71dASiXMeMG0dfi4IEBu%2Fimage.png?alt=media&amp;token=79612f39-36bd-4e2e-8937-2ec0dc705fe1" alt=""><figcaption></figcaption></figure>

***

### Activating the Campaign

After creating the campaign, it starts in **Inactive** status. To activate:

1. Go to **Campaigns** and find your campaign
2. Click into the campaign detail
3. Toggle the status to **Active**

When activated, the app registers a Shopify webhook to listen for paid orders. The webhook includes a price filter so only potentially qualifying orders trigger processing. When an order currency is selected, the filter also limits deliveries to orders placed in that currency.

***

### How It Works

When a customer places an order:

1. **Order currency check** — If the campaign is limited to one currency, was the order placed in it? Other orders are skipped.
2. **Active dates check** — Is the current time within the campaign's active window?
3. **Customer eligibility** — Does the customer match the eligibility criteria?
4. **Line item filtering** — Which products in the order match the "Applies to" setting?
5. **Minimum requirements** — Do the qualifying items meet the minimum purchase amount or quantity?
6. **Value calculation** — What gift card value does the order qualify for (tier match or percentage)?
7. **Per-customer limit** — Has the customer already reached the maximum gift cards for this campaign?
8. **Gift card issuance** — A gift card is created and delivered via the configured method

Each step is logged in the campaign run history for troubleshooting.

#### Cancellations and Refunds

Rewards are reversed automatically when the order that earned them changes:

* **Order cancelled or fully refunded** — the reward gift card is deactivated and the customer's per-campaign limit is restored, so they can earn again on a new order.
* **Order partially refunded** — the reward is recalculated on the remaining items. If they still qualify for a lower value, the difference is debited from the card. If they no longer qualify, the card is deactivated.

If part of the reward was already spent, only the remaining balance is debited. The outcome is shown as a **Deactivated** or **Reduced** badge next to the gift card in the campaign runs list.

This applies to campaigns activated after this feature was released. To enable it on an older campaign, open it and save it again while it is active.

***

### Storefront Display (Optional)

You can show customers the potential gift card they'll earn before they complete their purchase. Two extension options are available:

#### Theme Extension (Cart Page)

Add the **Gift Card Reward Banner** block to your theme. It automatically:

* Calculates the potential gift card based on current cart contents
* Updates in real time as items are added or removed
* Hides when no gift card is available
* Only shows campaigns whose order currency matches the currency the customer is shopping in
* Supports customizable colors (background, text, accent)

#### Checkout Extension

The **Gift Card Reward** checkout extension displays a banner at checkout showing the potential gift card amount. It uses the same calculation logic as the theme extension.

***

### Campaign Runs

Every time the campaign processes an order, a **Campaign Run** is created. View runs from the campaign detail page to see:

* **Status** — Finished, Error, Skipped, or Limits Error
* **Sent** — Number of gift cards issued
* **Skipped** — Number of orders that didn't qualify
* **Gift card details** — ID and last 4 characters of issued gift cards, with a **Deactivated** or **Reduced** badge when the order was cancelled or refunded

***

### Tips

* **Start with test mode** — Always validate with a test order before activating
* **Use tiers for upselling** — Show customers the next threshold to encourage larger orders (e.g., "Spend $50 more to get a $15 gift card instead of $5")
* **Combine with active dates** — Run weekend-only or holiday promotions without manually toggling the campaign
* **Percentage mode for simplicity** — Use a flat percentage (e.g., 5%) when you don't need tiered thresholds
* **Check campaign runs** — If a customer reports not receiving a gift card, check the run logs to see which step filtered them out
