Bulk Operations¶
Bulk operations let you create and distribute large numbers of gift cards in one job — without issuing them one at a time.

Three types of bulk jobs¶
| Job type | What it does | Best for |
|---|---|---|
| Generate | Creates codes with a set balance, no recipient | Export to CSV, physical card programs, internal use |
| Send | Creates codes and emails each one to a recipient | Corporate gifting, loyalty rewards, promotions |
| Update | Adjusts the balance on a set of existing cards | Adding bonus credit, correcting balances |
Bulk Generate¶
Use this to create a batch of gift card codes that you'll distribute yourself (e.g., export and print, add to packaging, hand to a partner).

Settings¶
| Field | Description |
|---|---|
| Quantity | Number of cards to generate (up to 10,000 per job) |
| Amount per card | Fixed balance loaded on each card |
| Expiry | Optional expiry date |
| Gift card type | Which design/settings template to use |
| Export format | CSV with code, balance, expiry, and status |
After generation¶
When the job completes, you can download a CSV with all generated codes and their details. The codes are also live in Shopify as active gift cards.
Bulk Send¶
Use this to send gift cards to a list of named recipients. Each person gets their own card and a personalized email.

Preparing your recipient list¶
Upload a CSV with the following columns:
| Column | Required | Description |
|---|---|---|
email |
Yes | Recipient's email address |
first_name |
Recommended | Used in email greeting |
last_name |
Optional | |
amount |
Optional | Per-recipient amount (overrides default if set) |
message |
Optional | Per-recipient personal message |
send_date |
Optional | Schedule delivery (ISO date: 2026-03-15) |
Example CSV:
email,first_name,last_name,amount,message
jane@example.com,Jane,Smith,50,Thank you for your loyalty!
bob@example.com,Bob,Jones,100,Happy birthday Bob!
Settings¶
- Default amount — used for rows that don't specify an amount
- Gift card type — design and settings template
- Sender name — shown in the email as "A gift from..."
- Default message — used when a row doesn't have a message column
- Schedule — send all at once or spread over time (e.g., 500/hour to avoid email throttling)
Sending throttle¶
For large lists (1,000+), GiftCard Hero spreads the sends over time to avoid hitting Shopify's email rate limits. You can set the rate in the advanced options.
Bulk Update¶
Adjust balances on a set of existing cards. Use cases:
- Add $10 bonus credit to all cards issued in a specific month
- Zero out cards that are past expiry
- Correct an incorrect balance after a system issue
Upload a CSV with:
code,new_balance
ABCD-1234-EFGH-5678,75.00
IJKL-9012-MNOP-3456,0.00
Note: Bulk Update sets the balance to the value you provide — it doesn't add or subtract. To add $10 to a card with $40, you'd set
new_balanceto50.00.
Tracking results¶
After starting any bulk job, you can monitor progress in Bulk → Results.
The results page shows:
- Job status (queued, running, completed, failed)
- Progress (e.g., 847 / 1000 sent)
- Per-row errors (e.g., invalid email, duplicate code)
- Download links for the results CSV
Results CSV¶
The results CSV includes all input columns plus:
status— success / failed / skippederror— error message if failedhelpscout_url— public URL of the gift card (for Generate jobs)code_last4— last 4 digits of the gift card code
Limits and performance¶
| Limit | Value |
|---|---|
| Max cards per Generate job | 10,000 |
| Max rows per Send job | 10,000 |
| Max rows per Update job | 50,000 |
| Estimated speed (Generate) | ~500 cards/minute |
| Estimated speed (Send) | ~200 emails/minute |
Large jobs run in the background — you don't need to keep the browser open. You'll receive a summary email when the job completes.