Scheduled Gift Cards
Scheduled Gift Cards sends a gift card to matching customers on a recurring schedule. The campaign resolves recipients (via a customer query, segment, or explicit list) each time it runs, then creates and delivers a personalized gift card to each one. Useful for birthdays, anniversaries, loyalty rewards, or any other recurring occasion.
Each scheduled gift card costs 5 campaign credits.
💡Common Use Cases
Daily Birthday Campaign — Send a $10 gift card to every customer on their actual birthday, every day at 9:00 AM. Perfect for: Stores with a large customer base who want to celebrate every customer's birthday.
Monthly Birthday Campaign — Send a $15 gift card to all customers with birthdays in the current month, on the 1st day of each month. Perfect for: Smaller stores or those who want to batch birthday communications.
VIP Birthday Rewards — Send a $25 gift card to VIP customers only on their birthdays. Perfect for: Rewarding your most valuable customers with special birthday treatment.
Birthday Month Welcome — Send a gift card at the beginning of the month to all customers with birthdays that month. Perfect for: Building anticipation and encouraging purchases throughout the birthday month.
Regional Birthday Campaign — Send birthday gift cards to customers in specific locations with region-appropriate values. Perfect for: Stores with different strategies for different markets.
How It Works
The campaign runs on your configured schedule (e.g., daily at 9 AM)
It executes a Shopify customer query that you define — this query is evaluated with today's date to match customers whose birthday is today (or this month, etc.)
For each matching customer, a gift card is created and delivered via your chosen method
Results are logged in the campaign run history
Creating a Campaign
Navigate to Campaigns > New Campaign > Scheduled Gift Cards to create a new campaign.
Title
Give your campaign a descriptive name (e.g., "Daily Birthday $10 Gift Card"). This is for your own reference only.
Customer Query
This is the most important field — it defines which customers receive a gift card each time the campaign runs.
The query uses Shopify's customer search syntax with Liquid date filters that are evaluated at run time. This lets you write dynamic queries that match customers based on today's date.
Example — match customers whose birthday is today:
Example — tags in birthday-MM-DD format (e.g., birthday-06-07):
When the campaign runs on June 7th, the Liquid template renders to tag:birthday-06-07, matching customers with that exact tag. This is the recommended tag format because it allows a clean exact match.
Important: Shopify search only supports prefix wildcards (e.g., birthday-*), not suffix wildcards (e.g., *06-07). This means you cannot use a wildcard to match the date portion at the end of a tag. Your tag format must put the known prefix first, followed by the dynamic date part.
What about dob:YYYY-MM-DD tags? (e.g., dob:1992-06-07)
This is a common format used by birthday collection apps. However, because the year varies per customer, you cannot match just the month-day part with a Shopify search query — suffix wildcards like dob:*06-07 are not supported.
If your customers have dob: tags, you have two options:
Add a second tag in
birthday-MM-DDformat (e.g., use Shopify Flow to automatically addbirthday-06-07alongsidedob:1992-06-07)Replace the tag format — re-tag customers using the
birthday-MM-DDformat instead
How to set up birthday tags:
Customer birthday tags need to be added to your customers in Shopify. Common approaches:
Collect birthdays via a form on your storefront and tag customers automatically using Shopify Flow
Import birthday tags via CSV
Use a third-party app that collects and tags customer birthdays
You can use the Test Query button next to the field to verify how many customers currently match your query. The campaign supports up to 250 matching customers per run.
Need help writing a query? Contact us at [email protected] or read our Customer Query documentation.
Gift Card Value
The fixed monetary value of the gift card (e.g., 10.00 for a $10 gift card). Every customer receives the same value.
Gift Card Message
An optional customer-visible message attached to the gift card (max 200 characters). For example: "Happy Birthday! Here's a gift from us."
Gift Card Expiry
Control when the gift card expires:
Never expire — The gift card has no expiration date
Expire relative to creation date — The gift card expires after a set period (e.g., 30 days, 6 months, 1 year after creation)
Expire on a specific date — The gift card expires on a fixed calendar date
Schedule
Configure when and how often the campaign runs:
Start date — The first date the campaign should run
Start time — Hour and minute (in 15-minute increments)
Timezone — The timezone used for scheduling
Repeat — Optional recurrence:
Non-recurring — Runs once at the specified date/time
Recurring — Runs repeatedly at a set interval (e.g., every 1 day, every 1 week, every 1 month)
For birthday campaigns, a daily recurring schedule is the most common setup — it ensures every customer gets their gift card on their actual birthday.
Delivery
Choose how the gift card is delivered:
Shopify Email — Uses Shopify's built-in gift card notification (default, no setup required)
App Email — Sends a custom-designed email using your configured email template. Allows full control over branding and design.
Shopify Flow — Triggers a Shopify Flow event with gift card data. Build your own delivery logic in Flow.
Klaviyo — Triggers a Klaviyo event for use in Klaviyo flows
When using App Email, select an email template. Available template types:
Scheduled Gift Cards — Pre-built template designed for scheduled gift card campaigns
Custom — Any custom template you've created
Template Variables
The following variables are available in your email template:
gift_card.code— Full gift card codegift_card.initial_value.amount— Gift card valuegift_card.balance.amount— Current balance (same as initial value at creation)gift_card.expires_on— Expiry date (if set)customer.first_name— Customer's first namecustomer.last_name— Customer's last namecustomer.email— Customer's emailshop.name— Your store nameshop.url— Your store URL
Campaign Dashboard
After creating a campaign, access its dashboard from the campaigns list. The dashboard shows:
Metrics
Gift cards sent — Total gift cards delivered
Value issued — Combined monetary value of all sent gift cards
Gift cards redeemed — Number of gift cards that were subsequently used
Redeemed value — Monetary value of redeemed gift cards
Order total — Total order value from orders where these gift cards were used
Each metric includes a line chart showing trends over a selectable time range (7 days, 30 days, 90 days, 1 year, or year-to-date).
Campaign Runs
A table showing each time the campaign ran, including:
Run number and date
Status (In Progress, Finished, Error, Limits Error)
Number of gift cards sent
Number of skipped customers
Settings
The campaign configuration can be edited directly from the dashboard using the settings panel.
Activate / Deactivate
Toggle the campaign on or off. When deactivated, the campaign will not run on its next scheduled time. When reactivated, the next run is recalculated based on the schedule.
Tips
Run daily — For the best customer experience, run the campaign daily so every customer gets their gift card on their actual birthday
Test your query first — Always use the "Test Query" button to verify your customer query returns the expected results before activating
Set a reasonable expiry — A 30-90 day expiry creates urgency while giving customers enough time to shop
Personalize the message — A warm message makes the gift card feel personal, not automated
Monitor your dashboard — Track the redeemed rate to understand how effective your campaign is at driving repeat purchases
Troubleshooting
"Found 0 customers matching the query"
Possible causes:
Customers aren't tagged with birthdays
Tag format doesn't match query format
Liquid syntax error in query
No customers have birthdays today (for daily campaigns)
Solutions:
Verify customers have birthday tags:
tag:birthday-*Check tag format matches:
birthday-MM-DDwith leading zeros (e.g.,birthday-03-05for March 5th)Test query with a fixed date first:
tag:birthday-06-15Check a few customer records manually in Shopify Admin
"Found more than 250 customers"
Possible causes:
Query is too broad
Using wildcard incorrectly
Missing date filters
Solutions:
Add more specific filters:
AND email_marketing_consent:subscribedCheck your Liquid syntax — make sure the date format is correct
Verify the query when tested versus when running
Segment customers across multiple campaigns
Need More Help?
Customer Query Selector Guide — Detailed query creation
Email Template Guide — Customize email design
Klaviyo Integration — Set up Klaviyo
Shopify Flow Integration — Set up Flow
Contact support: [email protected]
Last updated