Import From File
π Use a CSV source file to import gift cards.
The Import from File feature creates Shopify gift cards in bulk from a CSV file. You define value, code, expiration date, recipient, and message per row. Optionally, the app can email each gift card to its recipient after creation. Ideal for migrating from another platform, fulfilling corporate orders, or processing batches collected from external systems.
π‘ Common Use Cases
Migrating gift cards from another platform β bring existing gift cards into Shopify when moving from another e-commerce or POS system.
Corporate or bulk orders β issue large numbers of gift cards for corporate clients, employee rewards, or event giveaways.
Physical gift card fulfillment β upload pre-generated codes to be printed on physical cards for in-store or retail distribution.
External system handoff β import orders collected via spreadsheets, forms, or tools like Typeform or Airtable without retyping.
πͺ Step-by-Step Instructions

Download a template. A simple template (just the basics) and an extended template (every supported column) are available below.
You can remove any column you don't need. The only required column is: initial_value.
Optionally, copy our Google Sheet templates:
Fill in your data. See CSV Columns below for all supported fields.
Upload the file. The form accepts
.csv,.tsv, and.txtfiles up to 10 MB. After upload, a summary shows the detected separator, row count, and column names. Validation errors (if any) are listed.Resolve ambiguous dates. If
expires_oncontains dates like01/05/2026, the form asks whether the first number is the day or the month, and applies that to all rows.Configure customer handling and delivery (optional). When the file contains an
emailorcustomer_idcolumn, additional options appear (see below).Choose internal delivery options. Allow data download and / or send yourself a summary email.
Click Import now or Schedule.
π CSV Columns
Required
initial_valueβ The value of the gift card in your store's main currency. Use a dot as the decimal separator (e.g.25.50). Commas are auto-converted to dots, but more than two decimal places will be rejected.
Optional
codeβ The gift card code. Must be 8β20 characters, letters / numbers / hyphens only. Must be unique and not already used in your store. If empty or omitted, a code is auto-generated.prefixβ Adds a fixed prefix to auto-generated codes (or to the imported code). Used for organizing or branding.emailβ Recipient email address. Required if you want to email this row's gift card to a person.customer_idβ Numeric Shopify customer ID. Alternative toemail.expires_onβ Expiration date. Supported formats:YYYY-MM-DD(recommended),DD/MM/YYYY,MM/DD/YYYY,DD-MM-YYYY, orMM-DD-YYYY. Leave blank for no expiration.noteβ Internal note attached to the gift card. Visible to staff only, not customers.messageβ Custom message included in the gift card email. Wrap multi-word messages in double quotes in the CSV to avoid parsing errors.
πͺͺ Customer Handling (when email or customer_id is in the file)
email or customer_id is in the file)When the file includes one of these columns, two extra sections appear in the form:
If a customer doesn't exist in your store β choose what happens for rows whose customer can't be matched:
Skip creating gift card β that row is skipped.
Create customer and create gift card β a new customer is created and the gift card is issued to them.
Assign recipients to gift card β choose where the customer is attached on each gift card:
Recipient field β the customer is set as the recipient (they get the notification with the message).
Customer field β the customer is set as the owner of the gift card. Note: assigning to the customer field ignores the message.
Customer and Recipient field β both.
βοΈ Sending the Gift Cards (when email or customer_id is in the file)
email or customer_id is in the file)Enable Send to customer to email each row's gift card to its recipient. Choose a sending method:
Shopify Email β uses Shopify's built-in gift card notification email.
App Email β uses Gift Card Factory's email infrastructure with a customizable template (built from the Import from file or Custom template type). Preview before sending.
Shopify Flow β fires a Flow trigger; you configure the action that sends the email.
Klaviyo β fires a Klaviyo metric; you configure a flow that responds to the metric.
Read more about each sending option.
π€ Internal Delivery Options
Independent of customer notifications:
Allow gift cards data download: Creates a download link in the Bulk Operations section. Expires after 3 days.
Send internal email with all generated gift cards codes: Sends the full list of codes to an email address you specify (multiple addresses allowed, comma-separated).
βΆοΈ Running the Operation
Import now: Runs the operation immediately.
Schedule: Runs the operation at a future date and time you select.
The submit button stays disabled until a file is uploaded. You can still proceed with rows that have validation warnings β the warning banner lets you choose to fix and re-upload, or run the import as-is (rows with errors will be skipped during execution).
π Multiple Imports per File
If you need to split a single CSV across multiple imports (for example, to schedule batches at different times), see Multiple Imports From a Single File.
FAQ
Can I upload more than one file? Only one file at a time. If you have multiple sources, combine them in a spreadsheet first or run separate imports.
My initial_value rows are being rejected.
Use a dot as the decimal separator (25.50, not 25,50). Currency symbols and more than two decimal places are not accepted.
Imported codes don't match what I had in my CSV. Codes you supply must be 8β20 characters, letters / numbers / hyphens only. Rows with invalid codes are flagged before import.
No customer-handling options appeared.
Those options only appear if the uploaded file contains an email or customer_id column.
The recipient didn't get their gift card email.
Confirm Send to customer was enabled, the row had a valid email or customer_id, and your sending method is configured (Shopify Email enabled / App Email domain validated / Flow configured / Klaviyo flow listening on the metric). Have the recipient check spam.
Last updated