Shopify Gift Card Migration & Management

Bulk-import, assign & manage
gift cards on Shopify - at any scale.

Stop losing gift card revenue to silent expirations and abandoned balances. Gift Lift moves your cards into Shopify in minutes, assigns them to customers automatically, and tracks your full portfolio health in real time — so you always know what's at risk.

Free plan included · Billed through Shopify · Cancel anytime

Gift Lift - Complete Gift Card PipelineCSV Import · Customer Assignment · Assignment Manager · ReportsCSV UploadCode, Amount,CustomerEmail…ValidationDry-run: codelength, format…Import EnginegiftCardCreateGraphQL APIAssignmentCustomer link +notificationReportSUCCESS/ERRORper row + GID

100% Native Shopify API

Every gift card is created and managed via Shopify's official GraphQL Admin API - no third-party servers hold your live gift card data.

Rate-Limit Safe

Built-in leaky-bucket throttle management ensures large imports never hit Shopify's API limits, with automatic back-off and retry.

Pre-Flight Validation

Local browser-side dry-run catches formatting errors and schema violations before a single Shopify API call is made.

Checkpoint Recovery

Pause mid-import and resume days later. The idempotent architecture guarantees no duplicate gift cards are ever created.

Every Feature

Everything you need to move gift cards to Shopify

From simple one-file imports to full customer assignment management - Gift Lift is the only gift card tool you need.

Bulk CSV Import

Upload a CSV file and create thousands of Shopify gift cards in minutes. Each row = one gift card, created instantly via the official GraphQL API.

  • Code: 8–20 alphanumeric characters
  • Amount: numeric, store currency auto-applied
  • Note: admin-only internal reference
  • ExpiresOn: YYYY-MM-DD (optional)
  • Excel scientific notation auto-fixed
Secured & Encrypted

Quick Create - No CSV Required

Generate individual or small-batch gift cards instantly from a simple form — no spreadsheet needed. Set amount, quantity, code format, and expiry. Cards are active in your store in seconds.

  • No CSV needed — fill a form, click Create
  • Optional code prefix up to 4 chars (e.g. GLAY → GLAY****)
  • Code length: 8, 12, 16, or 20 characters
  • Expiry: none, relative (N days/weeks/months), or fixed date
  • Full codes stored permanently — always retrievable
  • Send directly to customer emails, one code per email (Intermediate+)
  • Export CSV with full codes, Shopify IDs, and creation timestamps

Pre-Flight Validation

Click "Validate File" before importing. The dry-run checks your entire CSV locally without touching Shopify, catching errors before they happen.

  • Code length & format violations
  • Negative or zero amounts
  • Invalid ExpiresOn date format
  • Duplicate codes within the file
  • Missing required fields (Code, Amount)
  • Downloadable validation report CSV

Customer Assignment via CSV

Add CustomerEmail or CustomerID columns to link gift cards to customers at import time. Shopify auto-notifies assigned customers.

  • Look up customer by email or Shopify ID
  • Auto-create customer account if email not found
  • Shopify sends native gift card notification email
  • Skip double-email for newly created customers
  • CustomerEmail takes priority over CustomerID
  • Remove both columns to skip all customer emails

Gift Card Assignment Manager

A dedicated management page to assign, reassign, and remove customer links across all your Shopify gift cards - no CSV required. Available on Intermediate & Professional plans.

  • Real-time customer search by name or email
  • Assign or reassign individual gift cards
  • Bulk assign multiple cards to one customer
  • Bulk remove assignments from selected cards
  • Filter by Assigned / Unassigned / All
  • Toggle notification email per assignment
  • Export assignment view to CSV

Pause, Resume & Cancel

Full control over every import. Pause and walk away - resume later exactly where you left off. Cancel at any point without losing completed cards.

  • Checkpoint saved on every pause
  • Resume picks up from exact last row - no duplicates
  • Cancel stops loop; completed cards remain active
  • Real-time progress bar during import
  • Status tracked in MongoDB across sessions
  • Available on Starter, Intermediate & Professional

Reports, History & Email Alerts

Full per-row audit trail for every import. Download source CSVs and reports any time. Get email alerts sent to your store owner address on import events.

  • Post-import CSV: Gift Card ID, Status, Error per row
  • AssignedCustomerID column in every report
  • Validation report after dry-run
  • Complete import history with search & pagination
  • Email alert: import complete / paused / cancelled
  • Emails via AWS SES (Starter+ plans)
All Plans

Gift Card Health Dashboard

A live portfolio overview that computes a 0–100 health score and auto-refreshes every 5 minutes - giving you an instant "all-clear" or "action needed" signal without any manual effort.

  • Composite 0–100 health score (expiry risk · redemption · assignment)
  • Auto-refresh every 5 minutes - no manual action needed
  • Expiry risk buckets: 7 / 30 / 60 / 90-day windows with $ value
  • Redemption breakdown: never / partially / fully redeemed
  • Avg remaining balance · avg initial value · total issued value
  • Assigned vs unassigned card split across all metrics
  • Cards expired this month with total lapsed value

Expiry Reminders

Automatically identify gift cards nearing expiry and send reminder emails to assigned customers - reducing missed redemptions and protecting your revenue.

  • Target cards expiring in 7, 30, 60, or 90 days
  • Send reminders only to customer-assigned cards
  • Filter by expiry window before sending
  • Up to 100 reminders per send (Starter)
  • Up to 500 reminders per send (Intermediate)
  • Unlimited reminders per send (Professional)

Health Report Emails

Scheduled email reports delivered to your inbox with a full health snapshot, period-over-period trend arrows, and actionable insights - so you never miss a shift in your gift card portfolio.

  • Health score badge with colour-coded rating (Excellent → Critical)
  • Period-over-period trend arrows (↑↓) vs previous report
  • Expiry risk table with $ values and assigned/unassigned split
  • Redemption breakdown: never / partially / fully redeemed
  • Monthly frequency (Intermediate) · weekly/bi-weekly/monthly (Professional)
Step-by-Step

How Gift Lift works

A deterministic, 5-stage pipeline that moves gift cards from your CSV into Shopify safely, with a full audit trail at every step.

01

Upload & Parse CSV

Upload your CSV file containing gift card codes, amounts, expiry dates, and optional customer fields. The app parses it in your browser using PapaParse, detecting headers and mapping them to Shopify's giftCardCreate schema.

# Detected columns:
Code → gift card code (required)
Amount → initial value (required)
CustomerEmail → customer lookup (optional)
ExpiresOn → expiry date (optional)
02

Pre-Flight Validation (Dry Run)

Click 'Validate File' to run a full local simulation. Every row is checked against Shopify's API requirements - code length (8–20 chars), alphanumeric-only, amount > 0, valid date format, and no in-file duplicate codes. No Shopify API calls are made.

Validating 500 rows locally...
Row 12: code 'GC1' too short (< 8 chars) → INVALID
Row 47: amount '0' must be > 0 → INVALID
Row 89: duplicate code 'GIFT2024' → INVALID
497 rows valid · 3 rows flagged → Download report
03

Import via Shopify GraphQL

Click 'Import Valid Gift Cards'. The app fires one giftCardCreate mutation per row, in sequence. If CustomerEmail or CustomerID is present, it resolves the customer first (FIND_CUSTOMER_BY_EMAIL → auto-create if not found), then calls giftCardUpdate to assign the card and triggers giftCardSendNotificationToCustomer.

[Row 1] giftCardCreate → SUCCESS (gid://shopify/GiftCard/123)
[Row 2] findCustomerByEmail alice@example.com → found
[Row 2] giftCardUpdate → customer assigned
[Row 2] giftCardSendNotification → email queued
[Row 3] giftCardCreate → SUCCESS (gid://shopify/GiftCard/124)
04

Pause, Resume, or Cancel (Starter+)

At any point during the import, click Pause to save a checkpoint. The app stores your position and pending CSV data in the database. Click Resume later - the import picks up from the exact next unprocessed row. Cancel permanently stops the import; all cards created so far remain active.

[Row 247] Import PAUSED by user
Checkpoint saved: processedCount=247, status=PAUSED
...
[Resume] Loading pending data from storage
[Row 248] Resuming from checkpoint → no duplicates
05

Download Audit Report

When the import finishes (or is cancelled), a full CSV report is generated and stored securely in AWS S3. Every row shows Status (SUCCESS/ERROR), Shopify Gift Card GID, AssignedCustomerID, and the exact API error message for failed rows. Your complete import history is always accessible from the Gift Cards page.

Import complete: 498 success · 2 error
Report generated → report_import_2025.csv
Code, Status, Details, AssignedCustomerID
GIFTABC1, SUCCESS, gid://shopify/GiftCard/123, gid://shopify/Customer/456
GIFTABC2, ERROR, Duplicate code, ''
CSV Format Reference

How to format your CSV file

Everything from simple bulk creation to full customer assignment with automatic Shopify email notifications.

1

Simple Gift Card Creation

The minimum required to create gift cards. Each row creates one gift card in Shopify. Your store's operating currency is applied automatically - never include a currency column.

ColumnRequired?Rules & DetailsExample
CodeRequiredUnique gift card code. Must be 8–20 alphanumeric characters (a–z, A–Z, 0–9). No spaces, hyphens, or special characters. Case-insensitive. Must be unique in your file and globally unique in your Shopify store.GIFT123AB
AmountRequiredFace value in your store's default currency. Must be a positive number greater than 0. Maximum $2,000 (Shopify limit). Do not include a currency symbol or thousands separator.50.00
NoteOptionalInternal admin reference attached to the gift card. Visible only to store admins in Shopify Admin - never shown to customers anywhere in the storefront or emails.Holiday promo 2025
ExpiresOnOptionalExpiry date in YYYY-MM-DD format. Leave blank or omit for no expiry. Some regions legally prohibit expiry dates - Shopify may override or ignore the value to remain compliant.2026-12-31
One row = one gift card. Rows with missing Code or Amount are skipped. Download the validation report after the dry-run to see exactly which rows need fixing before you import.
Excel tip: Long numeric codes become scientific notation (e.g. 1.23E+10). Prefix the cell with an apostrophe: 'GIFTCODE1. Gift Lift strips it automatically during import.
2

Assign Gift Cards to Customers

Optional

Add CustomerEmail or CustomerID columns to link each gift card to a Shopify customer at import time. Gift Lift resolves the customer via Shopify's API and assigns the card automatically. Shopify then sends a native gift card notification email.

ColumnRequired?BehaviorExample
CustomerEmailOptionalEmail address of the customer. Gift Lift searches your Shopify store. Found → gift card assigned + Shopify sends gift card notification. Not found → new customer account auto-created + account invite sent (gift card notification skipped to avoid double-email).alice@example.com
CustomerIDOptionalShopify customer ID. Accepts plain numeric (7291034) or full GID format (gid://shopify/Customer/7291034). Found → gift card assigned + notification sent. Not found → gift card created without assignment (no auto-create from ID alone).7291034

Customer Email Notification Behavior

ScenarioWhat Gift Lift DoesEmails Sent to Customer
Customer found by email or IDGift card assigned → Shopify sends native gift card notification email1 - gift card notification
CustomerEmail provided, email not found in storeNew Shopify customer account created → gift card assigned → Shopify sends account invitation email (gift card notification skipped - already got an email)1 - account invite only
CustomerID provided, ID not found in storeGift card created in Shopify without any customer assignment. No auto-create from ID alone.0 - no email
No CustomerEmail or CustomerID column in CSVStandard gift card creation - no customer lookup, no assignment, no notification triggered0 - no email
To avoid sending emails: Remove both CustomerEmail and CustomerID columns entirely. Gift cards will be created without any customer assignment or notification.
Priority rule: If both columns are present in the same row, CustomerEmail takes priority. CustomerID is only used if the CustomerEmail column is empty for that row.
Email Notifications

Three types of emails - all automatic

Gift Lift sends owner alerts for import lifecycle events, scheduled health report emails with trend analytics, and triggers Shopify's native customer notifications for gift card assignments.

Owner Import Alerts

Sent to your store owner email via AWS SES. Stay informed on background imports without staying on the page.

All Plans
Trigger:Import lifecycle events · delivered via AWS SES
Welcome emailAll plans
Sent when you complete onboarding. Confirms the app is active and includes a quick-start guide.
Import completedStarter+
File name, total rows processed, success count, error count, and a reminder to download your report.
Import pausedStarter+
Confirms the import is paused with the file name and how many rows were processed before pausing.
Import cancelledStarter+
Confirms the import was cancelled with final row counts. All created cards remain active.
Intermediate+

Health Report Emails

Scheduled portfolio health reports with trend analytics - monthly on Intermediate, weekly / bi-weekly / monthly on Professional.

Trigger:Scheduled - weekly / bi-weekly / monthly
Health Score badge
Colour-coded 0–100 composite rating (Excellent → Critical) based on expiry risk, redemption rate, and assignment.
Period-over-period trends
↑↓ arrows comparing every metric against the previous report - instantly see if things are improving or declining.
Expiry risk table
7 / 30 / 60 / 90-day windows with card counts, $ value at risk, and assigned/unassigned splits.
Redemption breakdown
Never-redeemed, partially-used, and fully-redeemed counts and values in every report.
Frequency control
Monthly on Intermediate. Weekly, bi-weekly, or monthly on Professional. Configure anytime in Settings.
Test send
Preview your exact report email instantly - without affecting the schedule or trend snapshots.

Customer Notifications

Sent by Shopify's native email system - not Gift Lift directly. Triggered when a gift card is assigned to a customer.

All Plans
Trigger:Gift card assigned to customer · via CSV or Manager
Gift card notification
When: Customer found by email or ID
Shopify sends the customer their gift card code, balance, and redemption instructions via Shopify's own notification template.
Account invitation
When: New customer auto-created from CustomerEmail
Gift Lift creates the account. Shopify sends an account invite - gift card notification is skipped to avoid a double send.
No email sent
When: CustomerID not found, or no customer columns
Gift card is created without any customer link. No email is sent. The card can be assigned later via the app.
To send zero customer emails: remove the CustomerEmail and CustomerID columns from your CSV entirely.
4
Import event types
6
Health report features
3
Customer scenarios
AWS SES
Reliable delivery engine

Built on enterprise infrastructure

Every component is purpose-built for high-volume financial data with zero tolerance for data loss.

Shopify GraphQL API

All gift card operations use the official Shopify Admin GraphQL API - giftCardCreate, giftCardUpdate, giftCardSendNotificationToCustomer, and customerCreate mutations. Zero third-party gift card storage.

Rate-Limit Orchestration

Smart per-row delays prevent hitting Shopify's 50 cost-point/second leaky-bucket limit. Automatic back-off on 429 responses keeps large imports stable.

AWS S3 File Storage

Uploaded CSV files and generated import reports are stored in AES-256 encrypted S3 buckets. Pre-signed URLs expire after a short window. Only your authenticated session can access your files.

MongoDB Session State

Import progress, pause/resume checkpoints, and assignment audit records are stored in MongoDB. This enables multi-session imports and ensures the resume function never creates duplicates.

AWS SES Email Delivery

Owner lifecycle emails (import complete, paused, cancelled, welcome) are sent via AWS SES for reliable transactional delivery - not via a shared SMTP service.

Multi-Currency Support

Gift Lift uses your Shopify store's operating currency automatically. Every gift card's initialValue is expressed in your store's default currency - no manual currency mapping required.

Frequently Asked Questions

Every detail about how Gift Lift imports, validates, assigns, and reports on gift cards.

The app fires one giftCardCreate GraphQL mutation to Shopify per valid row, in sequence. Each card is created individually - not in a single bulk mutation - so the system can capture individual success/failure states and generate an accurate per-row report. You can watch real-time progress via the progress bar. On Starter+ plans, you can pause, cancel, or let the import run entirely in the background. When the import finishes (or is cancelled), a downloadable CSV report is generated automatically.
No. Validation runs locally in your browser and checks your CSV structure and data format - code length, amount format, expiry date syntax, etc. It cannot check things that only Shopify knows at import time: whether a code already exists in your store, whether your API rate limit has been hit, or whether Shopify returns a server-side error. Always review the post-import report for the exact outcome of each row.
Validation is a local pre-flight check. The import runs against Shopify's live GraphQL API, which applies its own server-side rules. Common reasons a 'valid' row fails include: the gift card code already exists in your store (Shopify enforces global uniqueness), your store plan doesn't support gift cards, the import hit Shopify's API rate limit (leaky bucket throttling), or Shopify returned a temporary 5xx server error. The import report includes the exact error message from Shopify's API for every failed row.
Row limits are set by your plan: Basic (10 rows), Starter (500 rows), Intermediate (1,000 rows), Professional (unlimited). If your file exceeds the limit, trim it and upload in batches - the import history table tracks every batch so you can monitor total progress across multiple uploads.
Codes must be 8–20 alphanumeric characters only (letters and numbers - no spaces, hyphens, or special characters). They must be unique across your entire Shopify store - not just within the file. Excel may auto-convert numeric codes to scientific notation (e.g. 1.23E+10). To prevent this, prefix the code with an apostrophe in Excel (e.g. 'GIFT00123). Gift Lift automatically strips the apostrophe during import.
No. Shopify requires every gift card code to be globally unique within your store. If a code from your file already exists - from a previous import, manual creation, or another app - Shopify will reject that row with a duplicate code error. The import report shows exactly which rows failed and why.
Never include a currency column. Gift Lift always uses your Shopify store's default operating currency for the gift card's initialValue field. If your file has a currency column, it is ignored. Enter Amount as a plain decimal number (e.g. 25 or 50.00) - no currency symbol, no formatting.
Yes. The moment giftCardCreate returns a success payload, the gift card is instantly active and usable as a payment method in your Shopify store. There is no draft or pending state. Customers can redeem codes as soon as their row shows SUCCESS in the import report.
Yes - add an ExpiresOn column in YYYY-MM-DD format. Leave it blank or omit the column for no expiry. Note: some regions legally prohibit gift card expiry dates (e.g. California, EU countries). Shopify may override or ignore an expiry date to remain legally compliant with local regulations.
Yes. Shopify enforces a maximum of $2,000 USD (or the exact equivalent in your store's local currency) per gift card. Rows exceeding this limit fail validation and are blocked from import. This is an API-level enforcement to comply with international financial regulations - it cannot be overridden.
Download the post-import report from your import history. Each failed row has a Details column explaining the exact reason. Fix only the rows marked ERROR in a new CSV and re-upload. Never re-upload the entire original file - successfully created rows will fail again with a duplicate code error.
Nothing. All gift cards created through Gift Lift are stored directly in your Shopify store via the official API - they are standard Shopify gift card resources. Uninstalling the app does not affect any gift cards. You will lose access to import history and reports stored in the app, so download any reports you need before uninstalling.
Yes, on Starter, Intermediate, and Professional plans. Pause saves your position in the CSV - you can resume hours or days later and the import picks up exactly from the last row processed, with no duplicates. Cancel stops the import after the current row; all cards already created remain active in your store. A partial report is generated on cancellation.
No. When an import is paused, the system saves a checkpoint containing the exact number of rows already processed. When you resume, processing starts from the row immediately after the checkpoint. Rows that were already successfully created are never re-sent to Shopify.
Yes. Add a CustomerEmail or CustomerID column to your CSV. During import, Gift Lift looks up the customer in your Shopify store and assigns the gift card automatically. CustomerEmail supports auto-creating new Shopify customer accounts if the email isn't found. CustomerID only assigns to existing customers - no auto-create from an ID alone. If both columns are present in a row, CustomerEmail takes priority.
Yes. When a gift card is assigned to an existing customer (found by email or ID), Shopify sends them a native gift card notification email through its own email system - no extra configuration needed. If the customer is newly created (email not found, so Gift Lift auto-creates the account), Shopify sends them an account invitation email instead - the separate gift card notification is skipped automatically to avoid sending two emails. To prevent any customer email, remove the CustomerEmail and CustomerID columns from your CSV entirely.
Remove the CustomerEmail and CustomerID columns from your CSV entirely. Without those columns, gift cards are created as unassigned - no customer is linked and no Shopify notification email is triggered. You can always assign gift cards to customers manually after import using the Gift Card Assignment Manager (Intermediate and Professional plans).
The Gift Card Assignment Manager is a dedicated page inside the app where you can view all gift cards in your Shopify store, search for customers in real time, and assign or remove customer links without touching a CSV. It supports single assignments, bulk operations across multiple selected cards, and exports the current view to CSV. It's available on Intermediate and Professional plans.
The Assignment Manager uses a real-time customer search powered by Shopify's Admin GraphQL API. As you type a name or email address into the search field, results appear in a dropdown after a short debounce delay. You can select any customer from your store and assign them to the selected gift card(s). The search is performed server-side, so it can find any customer in your Shopify store regardless of how many you have.
You control this per assignment via a toggle in the assign modal. When the toggle is on, Shopify sends the customer a native gift card notification email upon assignment. When the toggle is off, the assignment is made silently. This toggle applies to both individual and bulk assignments.
Removing an assignment unlinks the customer from the gift card in Shopify via the giftCardUpdate mutation. The gift card remains active in your store - the balance is unchanged and the code still works. The customer is not notified of the removal. Your removal is tracked in the app's local audit log.
On Starter, Intermediate, and Professional plans, Gift Lift sends emails to your Shopify store owner address for key import lifecycle events: a welcome email when you first install the app, a completion email when an import finishes (with success/error counts), a pause notification when an import is paused, and a cancellation email when an import is cancelled. These are sent via AWS SES and are separate from any customer-facing Shopify emails.
The Health Dashboard is a live portfolio overview available to all Gift Lift plans. It scans up to 5,000 active gift cards via the Shopify GraphQL API and computes a 0–100 health score, expiry risk by 7/30/60/90-day windows, a full redemption breakdown (never/partially/fully redeemed), assignment tracking (assigned vs unassigned), average remaining balance, and the total value of cards that expired this calendar month. The dashboard auto-refreshes every 5 minutes automatically - no manual action needed.
The score starts at 100 and deductions are applied based on portfolio risk signals: −5 per card expiring within 7 days (max −30), −7 or −15 if more than 10% or 20% of cards expire within 30 days, −10 or −20 if more than 40% or 60% of cards are unassigned, −7 or −15 if more than 50% or 70% of cards have never been redeemed, and −5 if any cards expired in the current calendar month. A score of 85+ is Excellent, 70–84 is Good, 50–69 is Fair, 30–49 is At Risk, and below 30 is Critical. The tooltip on the dashboard shows the full breakdown.
A 5-minute countdown timer runs in the background while you are on the Dashboard page. When it reaches zero, the app automatically clears the cache and fetches fresh data from Shopify - identical to clicking the manual Refresh button. You can see the countdown live in the Overview section ('Auto-refresh in 4:37'). When refreshing, the display changes to 'Refreshing…' and resets to 5:00 once the new data loads. Clicking Refresh manually also resets the countdown.
Expiry Reminders let you identify gift cards nearing their expiry date and send reminder emails to the assigned customers. You can target cards expiring within 7, 30, 60, or 90 days. Only cards linked to a customer receive a reminder - unassigned cards are excluded. The dashboard's Expiry Risk table shows you exactly how many cards and what total value is at risk in each window. Expiry Reminders are available on Starter (up to 100 per send), Intermediate (up to 500 per send), and Professional (unlimited) plans.
A Health Report Email is a scheduled digest sent to your store owner email address with a complete snapshot of your gift card portfolio health. Each report includes: the 0–100 health score with colour-coded label, period-over-period trend arrows comparing current metrics to the previous report, a full expiry risk table (7/30/60/90-day windows with $ values), a redemption breakdown (never/partially/fully redeemed), and key totals (active cards, liability, assignment rate). Health Report Emails are available on Intermediate (monthly) and Professional (weekly, bi-weekly, or monthly) plans.
Trend arrows (↑ green / ↓ red) appear next to each key metric in the email, comparing the current report against the previous one. For example, '↑ +12 cards' next to Total Active Cards means you gained 12 cards since the last report. Arrows appear for: total active cards, total liability, assigned count, unassigned count, never-redeemed count, expiring-7-day count, expired this month, and the health score itself. If this is the very first report sent, no trend arrows appear since there is no previous period to compare against.
Yes. Go to Settings → Health Report Email section and click 'Send Test Report'. This sends your current portfolio snapshot to your store email immediately. The test send does not affect the scheduled report schedule, does not save a trend snapshot, and does not count as your periodic send. Use it any time to preview the email layout and confirm your data looks correct.
The Dry Run is a local simulation that runs entirely in your browser before any Shopify API call is made. It checks every row in your CSV for: code length (8–20 chars), alphanumeric-only characters, missing required fields (Code, Amount), invalid amount format, invalid expiry date format, and codes that are duplicated within the file itself. It does not check for codes that already exist in your Shopify store - that requires a live API call. After the Dry Run, you can download a validation report listing the result and reason for every row.
Shopify's GraphQL Admin API uses a 'leaky bucket' throttling model (50 cost points/second). Gift Lift introduces configurable delays between sequential giftCardCreate mutations to stay within Shopify's rate limits. For larger files, these delays add processing time - a 1,000-row import may take several minutes. If Shopify returns a 429 throttle error, the system backs off and retries automatically.
Yes. Uploaded CSV files and import reports are stored in AWS S3 buckets with AES-256 encryption. Access is authenticated per Shopify session - only your store can access its own files. Pre-signed download URLs are generated on demand and expire after a short window. Raw CSV data is never stored longer than necessary.
Pricing

Predictable, transparent pricing.

Every plan includes gift card creation, customer assignment via CSV, and import reports. No hidden fees.

Billed monthly through Shopify · Cancel anytime · No setup fees

Basic
Free

Free forever. For small tests and one-off imports.

10 rows per upload
CSV gift card creation
Pre-flight validation & reports
Health Dashboard
Quick Create (1 card per session)
Expiry Reminders
Quick Create email send to customers
Manage Gift Card Balances
Health Report Emails
Pause & Resume imports
Cancel in-progress import
Email notifications
Starter
$15/mo

For growing stores ready for larger migrations.

500 rows per upload
CSV gift card creation
Health Dashboard
Pre-flight validation & reports
Quick Create (up to 100 cards per session)
Pause & Resume imports
Cancel in-progress import
Email notifications
Expiry Reminders (up to 100)
Manage Gift Card Balances (up to 100)
Quick Create email send to customers
Health Report Emails
Most Popular
Intermediate
$25/mo

The sweet spot - high-volume imports with full control.

Up to 1,000 rows per upload
CSV gift card creation
Health Dashboard
Pre-flight validation & reports
Quick Create (up to 500 cards per session)
Quick Create - email send to customers
Pause & Resume imports
Cancel in-progress import
Email notifications
Expiry Reminders (up to 500)
Manage Gift Card Balances (up to 500)
Health Report Emails (monthly)
Professional
$35/mo

Unlimited scale for enterprise replatforming - no caps.

Unlimited rows per upload
CSV gift card creation
Health Dashboard
Pre-flight validation & reports
Quick Create (unlimited cards per session)
Quick Create - email send to customers
Pause & Resume imports
Cancel in-progress import
Email notifications
Expiry Reminders (unlimited)
Manage Gift Card Balances (unlimited)
Health Report Emails (weekly / bi-weekly / monthly)

All plans include CSV gift card creation, customer assignment via CSV, import reports, and the Health Dashboard.
Expiry Reminders & Manage Balances: Starter+. Health Report Emails: Intermediate+.
Plans are managed through Shopify Billing - upgrade, downgrade, or cancel anytime from your Shopify Admin.