🆕Discount Codes Bulk Send
Introduction
The Bulk Send Discount Codes feature allows you to create unique discount codes and automatically send them to multiple customers at once. Each recipient receives their own personalized discount code via email.
What This Feature Does:
Creates a unique discount code for each recipient
Automatically sends personalized emails with the discount code
Allows extensive customization of discount rules and restrictions
Supports multiple delivery methods (App Email, Klaviyo, Shopify Flow)
Perfect for targeted promotions, customer rewards, and marketing campaigns
How It Works:
You configure discount settings (value, type, usage rules)
You choose recipients (manually, by customer selection, or by segment)
You select how to deliver the codes (email notification method)
The app creates a unique discount code for each recipient
Each recipient receives an email with their personal discount code
You can download a complete report of all codes created
Key Benefits:
Save hours compared to creating codes manually
Each customer gets their own unique code (prevents sharing)
Professional, branded email delivery
Track code usage and redemption
Schedule sends for optimal timing
💡 Common Use Cases
Welcome Discount for New Customers
Send a 15% discount code to customers who just signed up for your newsletter.
Example: Create 100 codes worth 15% off for new email subscribers
Perfect for: Converting new subscribers into first-time buyers
VIP Customer Appreciation
Reward your best customers with exclusive discount codes.
Example: Send $50 discount codes to customers who've spent over $500
Perfect for: Building loyalty and encouraging repeat purchases
Birthday Discounts
Send personalized birthday discount codes to customers on their special day.
Example: 20% off codes for customers with birthdays this month
Perfect for: Personalized marketing and customer delight
Win-Back Campaign
Re-engage customers who haven't purchased recently with incentive codes.
Example: $10 off codes for customers who haven't ordered in 90 days
Perfect for: Reactivating dormant customers
Event or Webinar Attendees
Thank event participants with exclusive discount codes.
Example: 25% off codes for webinar attendees
Perfect for: Converting event engagement into sales
Influencer Campaigns
Create unique codes for influencers to share with their audiences.
Example: 20 unique codes for different micro-influencers
Perfect for: Tracking which influencers drive sales
Seasonal Promotions
Target specific customer segments with seasonal offers.
Example: "Summer20" codes for customers in specific regions
Perfect for: Geo-targeted or seasonal marketing
Loyalty Program Rewards
Distribute discount codes as loyalty program rewards.
Example: Tiered discounts based on customer lifetime value
Perfect for: Systematic customer retention programs
Step-by-Step Instructions
Step 1: Navigate to Bulk Send Discount Codes
Log into your Gift Card Factory app in Shopify Admin
Go to Bulk Operations section
Click Create Bulk Operation
Select Bulk Send Discount Codes from the options
Step 2: Configure Discount Value
This section defines the core discount that customers will receive.
Discount Type
Choose how the discount is calculated:
Fixed Amount
Deducts a specific monetary amount
Example: $10 off, $25 off
Best for: High-value items, minimum purchase requirements
Currency matches your store's default
Percentage
Deducts a percentage of the order total
Example: 15% off, 20% off
Best for: Varying order values, encouraging larger purchases
Selection Tips:
Fixed amounts work well with minimum purchase requirements
Percentages encourage customers to add more items
Consider your average order value when choosing
Value
Enter the discount amount or percentage.
For Fixed Amount:
Enter the monetary value (e.g., 10, 25, 50)
Shown with your store's currency symbol
Example: Enter "10" for $10 off
For Percentage:
Enter the percentage (e.g., 15, 20, 25)
Shown with % symbol
Max 100%
Example: Enter "20" for 20% off
Best Practices:
Start conservative (10-20%) and test
Ensure profitability after discount
Higher percentages for higher value customers
Consider typical margins
Usage Type
Define what products the discount applies to:
Specific Collections
Discount only works on products in chosen collections
Great for: Promoting specific product categories
Example: "Summer Collection" discount
Click Browse to select collections from your store
Specific Products
Discount only works on chosen individual products
Great for: Clearing specific inventory
Example: Discount on last season's items
Click Browse to select products from your store
Important Notes:
If no products/collections selected: Discount applies to ALL products
You'll see a banner confirming "Discount will be applied to all products and collections"
Selected items appear in a grid below for review
Remove items by clicking the X on each card
Purchase Type
Define what type of purchases the discount applies to:
One-time Purchase
Discount only for regular purchases
Excludes subscription orders
Best for: Standard promotions
Subscription
Discount only for subscription orders
Best for: Encouraging subscription signups
Both
Works for both one-time and subscription purchases
Best for: Maximum flexibility
Once Per Order (Fixed Amount Only)
This checkbox appears only when using Fixed Amount discounts.
Unchecked (Default):
Discount applies to each eligible item
Example: $10 off per item means $30 off for 3 items
Better for: Encouraging multiple item purchases
Checked:
Discount applies once to the order total
Example: $10 off total, regardless of quantity
Better for: Controlling discount costs
Step 3: Minimum Purchase Requirements
Set requirements customers must meet to use the discount.
No Minimum Requirements (Default)
Discount works on any order size
Best for: Maximum accessibility
Risk: Lower average order values
Minimum Purchase Amount
Customer must spend at least this amount
Enter amount in your store currency
Example: Minimum $50 purchase
Best for: Ensuring profitability, encouraging larger orders
Strategy Tips:
Set minimum slightly above average order value
For $10 off, set minimum at $40-50
For 20% off, set minimum at $30-40
Minimum Quantity of Items
Customer must purchase at least this many items
Enter number of items required
Example: Minimum 3 items
Best for: Moving inventory, bundle deals
When to Use:
Apparel stores: "Buy 3 get 20% off"
Accessories: "Buy 2, save 15%"
Cosmetics: "3-item minimum for discount"
Step 4: Usage Limits
Control how often discount codes can be used.
Limit Number of Times Each Code Can Be Used in Total
Unchecked (Default):
Each code has unlimited uses
Risk: Sharing codes publicly
Checked:
Set maximum total uses per code
Enter number (e.g., 1, 5, 10)
Best practice: Set to 1 for unique, non-shareable codes
Recommendations:
Personal customer codes: Set to 1
Influencer codes: Set to 50-100
General promotions: Consider unlimited or high limit
Limit to One Use Per Customer
Unchecked:
Same customer can use code multiple times (if total limit allows)
Checked:
Each customer can only use their code once
Best for: Preventing abuse
Recommended for most campaigns
Best Practices:
Almost always check this option
Prevents customers from gaming the system
Combined with total usage limit of 1 = truly unique codes
Step 5: Combines With
Control whether the discount can stack with other discounts.
Product Discounts
Checked: Can combine with automatic product discounts Unchecked: Cannot stack with product-level discounts
Example: If customer has a sale item already 20% off, can they also apply this code?
Order Discounts
Checked: Can combine with order-level discounts Unchecked: Cannot stack with cart discounts
Example: Can this work with "Buy 3 Get 1 Free" automatic discounts?
Shipping Discounts
Checked: Can combine with free/discounted shipping Unchecked: Cannot stack with shipping discounts
Example: Can customer use this code AND get free shipping?
Strategy Considerations:
More generous: Allow combinations, better customer experience
More controlled: Disable combinations, protect margins
Recommended: Allow product discounts, but not other codes
Check local laws: Some regions require stacking
Step 6: Active Dates
Set when the discount codes become active and when they expire.
Start Date & Time
When the discount codes become usable.
Configuration:
Click the "From" button
Modal opens with:
Timezone selector
Date picker (calendar interface)
Time picker (hour and minute)
Click Save to confirm
Default: Today at current time
Common Configurations:
Immediate: Today at current time
Next day: Tomorrow at 8:00 AM
Campaign launch: Specific date/time coordinated with marketing
Event day: Day of webinar/event
Tips:
Choose timezone matching your customer base
Send emails slightly before codes activate
Consider time zones for global audiences
End Date & Time
When the discount codes expire and stop working.
Configuration:
Click the "To" button
Set timezone, date, and time
Click Save
Default: No end date (codes never expire)
Common Configurations:
24-hour flash sale: Tomorrow same time
Weekend sale: Monday at midnight
Week-long promotion: 7 days from now
Month-long: 30 days from start
No expiration: Leave blank
Best Practices:
Create urgency with shorter windows (24-72 hours)
Balance urgency with convenience (7-14 days)
Clearly communicate expiry in email
Consider follow-up reminder before expiry
Display Format: After setting, buttons show: "From: Jan 15, 2025 at 9:00 AM EST"
Step 7: Select Recipients
Choose who will receive the discount codes. Read about Recipients selector here.
Step 8: Choose Email Delivery Method
Select how customers will receive their discount codes. Read more about Customer notifications here.
Step 9: Configure Data Management
Control how you track and manage the created discount codes.
Allow Discount Codes Data Download
What it does: Creates a downloadable CSV file with all discount codes created.
Default: Checked (enabled)
File Contains:
Discount code
Recipient email
Discount value and type
Creation date
Usage limits
Expiration date
Access:
Download from Bulk Operations section
Link expires after 3 days
Any app user can download
When to enable:
✅ Need records for tracking
✅ Want to verify all codes
✅ Importing to other systems
✅ Accounting/audit requirements
When to disable:
❌ Don't need the data
❌ Security concerns (all app users see it)
❌ Process codes frequently
Send Internal Email with All Generated Discount Codes
What it does: Emails a complete report of all codes to specified address(es).
Default: Unchecked (disabled)
When to enable:
✅ Immediate notification when complete
✅ Multiple team members need info
✅ Email records for files
✅ Review before customers notice
When to disable:
❌ Check results in app directly
❌ Avoid email clutter
❌ Process many operations
Email Address
Appears when: "Send internal email" is enabled
What to enter: Your email or multiple emails separated by commas
Examples:
Single:
Multiple:
Tips:
Use business emails
Include everyone who needs to know
Verify addresses (no confirmation step)
Step 10: Choose Execution Method
Decide when the discount codes are created and sent.
Option 1: Send Now (Recommended)
Button: "Send now" (primary blue button)
What happens:
Processing starts immediately
Codes created within seconds/minutes
Emails sent right away
Real-time progress monitoring
When to use:
✅ Ready to launch immediately
✅ Time-sensitive promotion
✅ Verified everything is correct
✅ Customers expecting codes now
Process:
Click "Send now"
Redirected to Bulk Operations list
Status shows "Processing" or "Queued"
Codes are created
Emails are sent
Status changes to "Completed"
Time to complete:
50 customers: 30-90 seconds
200 customers: 2-5 minutes
500+ customers: 5-15 minutes
You can navigate away - process continues in background
Option 2: Schedule
Button: "Schedule" (secondary button)
What it does:
Opens scheduling modal
Sets future date/time
Auto-executes at that time
Codes sent automatically
When to use:
✅ Coordinating with marketing launch
✅ Preparing for future campaign
✅ Specific time zone targeting
✅ Setting up in advance
Scheduling Modal:
Timezone:
Select execution timezone
Important for global campaigns
Default: Your current timezone
Start Date:
Click calendar icon
Select date from picker
Cannot select past dates
Start Time:
Click clock icon
Select hour (00-23)
Select minute (00, 15, 30, 45)
24-hour format
Example Scenarios:
Morning Campaign:
Date: Tomorrow
Time: 09:00
Timezone: America/New_York
Result: Codes sent 9 AM EST
Global Launch:
Date: Friday
Time: 08:00
Timezone: Europe/London
Result: Codes sent 8 AM GMT
Note: One-time execution only (no recurring)
Step 11: Review and Execute
Before clicking "Send now" or "Schedule", review everything:
Checklist:
✅ Discount value and type are correct
✅ Usage restrictions match your strategy
✅ Products/collections selected (if applicable)
✅ Purchase requirements set appropriately
✅ Usage limits configured (recommend: 1 use per code + per customer)
✅ Expiry dates set
✅ Recipients selected (count looks right)
✅ Email delivery method configured
✅ Data management options set
Common Mistakes to Avoid:
Forgetting to set expiry date
Not limiting usage (codes get shared)
Wrong timezone for start/end dates
Typos in minimum purchase amount
Not testing email template first
Testing Recommendation: Before full send, test with:
2-3 test customer emails
Small discount value
Verify email looks correct
Test code redemption
Check reporting works
Understanding Discount Codes in Shopify
How Discount Codes Work
For Customers:
Receives email with unique code
Shops your store
Enters code at checkout
Discount applies automatically
Completes purchase
For Merchants:
Codes appear in Shopify Admin → Discounts
Track usage and revenue
Monitor redemption rates
View in customer timeline
Analyze campaign performance
Discount Code Best Practices
Code Format:
Automatically generated by Shopify
Format: RANDOMCODE123
Case-insensitive
No special characters
Easy to type
Communication:
Make code prominent in email
State value clearly
Include expiry date
Explain restrictions
Provide support contact
Tracking:
Use consistent naming: "Campaign Name - Bulk Send - Date"
Monitor usage in Shopify analytics
Track redemption rate
Calculate ROI
Identify top performers
Checking Discount Usage
In Shopify Admin:
Go to Discounts
Search for specific codes
View usage statistics
See customer who used it
Check order details
In App:
View bulk operation details
Download report with all codes
Check completion status
Monitor send success rate
Best Practices
1. Set Appropriate Usage Limits
Always configure:
Limit to 1 use per customer: ✅ Check
Total usage limit: Set to 1
Prevents code sharing
Maintains exclusivity
Exception:
Influencer codes: Higher limits OK
General promotions: Consider higher limits
Loyalty programs: May allow multiple uses
2. Create Urgency with Expiry Dates
Short windows work best:
24-48 hours: Maximum urgency
7 days: Balanced urgency/convenience
14 days: Generous but still urgent
30 days: Low urgency, high convenience
Communicate clearly:
"Valid until Feb 15 at 11:59 PM"
Send reminder 24 hours before expiry
Consider time zones
3. Test Before Full Launch
Test process:
Create test operation (5-10 test emails)
Use small discount value
Check email delivery
Verify code works at checkout
Test all restrictions
Confirm expiry dates
Only after testing:
Scale to full recipient list
Use actual discount values
Launch to real customers
4. Segment Your Audience
Don't:
Send same discount to everyone
Mix different customer values in one send
Use generic messaging
Do:
Create separate sends for different segments
Vary discount value by customer lifetime value
Personalize messaging per segment
Test different offers on different groups
5. Coordinate with Marketing
Timing:
Align with email marketing calendar
Coordinate with social media posts
Match other promotional activities
Consider shopping patterns (weekends vs weekdays)
Messaging:
Consistent branding across channels
Same promotion mentioned everywhere
Clear call-to-action
Unified customer experience
6. Monitor and Follow Up
Within 24 hours:
Check operation completed successfully
Review any errors
Monitor early redemption rate
Address customer questions quickly
Within 1 week:
Analyze redemption rate
Send reminder to non-users
Address any patterns in issues
Adjust future campaigns based on data
After expiry:
Calculate final ROI
Measure revenue generated
Compare to goals
Document learnings
7. Keep Detailed Records
Track:
Date of operation
Recipient count
Discount value and type
Campaign purpose
Results and ROI
Customer feedback
Why:
Tax/accounting records
Performance analysis
Future campaign planning
Customer service reference
Audit trail
8. Respect Customer Privacy
Best practices:
Honor marketing opt-out preferences
Secure download files
Limit access to discount code data
Delete exported files after use
Follow GDPR/privacy laws
9. Set Realistic Discount Values
Guidelines:
Consider profit margins
Factor in average order value
Balance generosity with sustainability
Test different values
Monitor impact on margins
Psychology:
15-25% feels generous
Fixed amounts encourage specific purchases
Higher percentages for high-value customers
Round numbers (20% not 18%)
10. Plan for Customer Support
Prepare team:
Brief on the campaign
Provide discount details
Ensure they can verify codes
Have escalation process
Set response time goals
Common questions:
"My code isn't working" → Check expiry, usage limits, minimum purchase
"Can I use with other discounts?" → Explain combination rules
"Can I share my code?" → Explain it's unique to them
"When does it expire?" → Provide exact date/time
Troubleshooting
Codes Not Working at Checkout
Check:
Code hasn't expired
Products in cart are eligible
Minimum purchase met
Usage limit not reached
Customer hasn't used it before
Solutions:
Verify discount exists in Shopify Admin → Discounts
Check all restrictions match what customer is buying
Test with qualifying products
Review active date range
Emails Not Delivered
Check:
Email method configured correctly?
Klaviyo: Flow active?
App Email: Sending enabled?
Customer emails valid?
Check spam folder
Solutions:
For App Email: Check Settings → Email Settings
For Klaviyo: Verify API key and flow trigger
For Shopify Flow: Check workflow is enabled
Review operation logs for errors
Test with known-good email
Wrong Discount Value Applied
Possible causes:
Multiple discounts combining
Incorrect configuration
Shopify automatic discount overriding
Solutions:
Check "Combines with" settings
Verify discount settings in Shopify Admin
Test in private browsing window
Disable other automatic discounts temporarily
Recipients Didn't Receive Codes
Check:
Operation status: Completed?
Errors in operation log?
Recipient list formatted correctly?
Email addresses valid?
Solutions:
Review operation details page
Check for specific error messages
Verify email list had no typos
Resend to failed recipients
Codes Shared Publicly
If codes are being shared:
Check usage limits were set to 1
Monitor for unusual redemption patterns
Disable shared codes in Shopify Admin
Create new operation with stricter limits
Prevention:
Always set usage limit to 1
Enable "Limit to one use per customer"
Clearly state "Personal code, non-transferable" in email
Monitor for abuse patterns
Download Link Not Working
Check:
"Allow download" was enabled?
More than 3 days since operation?
Logged into app?
Solutions:
If expired, cannot regenerate
Check if internal email was enabled
Create new test operation if data needed
Contact support with operation ID
Scheduled Operation Didn't Run
Check:
Scheduled time passed?
Timezone correct?
Operation cancelled?
App subscription active?
Solutions:
Verify scheduled time was future
Check if manually cancelled
Look for error notifications
Create new operation for now if urgent
Wrong Products/Collections Included
Problem: Discount applying to wrong items
Causes:
"All products" was left selected (default)
Wrong collections chosen
Products have multiple variants
Solutions:
Review "Applies to" section carefully
Re-create operation with correct selections
Disable incorrect codes in Shopify Admin
Test discount at checkout before sending
Percentage Discount Too High
Problem: Accidentally created 100% off codes
If not sent yet:
Cancel scheduled operation
Create new with correct value
If already sent:
Cannot edit existing codes
Disable codes in Shopify Admin
Create new operation with correct value
Email customers with corrected codes
Honor original if customers already used them (goodwill)
Frequently Asked Questions
Can I edit discount codes after creating them?
No, discount codes cannot be edited after creation in bulk operations.
Workarounds:
Disable incorrect codes in Shopify Admin
Create new operation with correct settings
Email customers with updated codes
For future: Double-check all settings before sending.
How many discount codes can I create at once?
Recommended limits:
Under 500: Optimal performance
500-1000: Acceptable, may take longer
1000+: Consider splitting into batches
Technical limit: No hard limit, but practical considerations for:
Processing time
Email delivery rates
Shopify API limits
Can I use the same settings for multiple campaigns?
Yes, but each operation creates new unique codes.
To reuse settings:
Take screenshots of configuration
Document your settings
Or create similar operations
Consider creating templates (future feature)
What happens if a customer's email bounces?
Email bounces:
Discount code is still created in Shopify
Code exists but customer didn't receive it
Shows in operation errors/logs
Solutions:
Monitor bounce rates
Update customer email in Shopify
Manually send code to corrected email
Clean email list regularly
Can customers use multiple codes on one order?
No, Shopify allows only one discount code per order by default.
However:
Customer can choose which code to use
Can combine with automatic discounts (if you enabled it)
Cannot stack multiple manual codes
How do I track which codes were used?
In Shopify Admin:
Discounts section
Search for specific code
View usage details
See orders that used it
In App:
Download operation report
Compare created vs used codes
Calculate redemption rate
Analytics:
Shopify Reports → Marketing
Filter by discount code campaign
Track revenue attributed
Can I create codes without sending emails?
Not with Bulk Send - this feature always sends emails.
Alternative: Use Bulk Create Discount Codes instead:
Creates codes without recipients
No email sent
Download codes manually
Distribute however you want
What if I accidentally send to wrong recipients?
If not yet sent:
Cancel scheduled operation
Create new with correct recipients
If already sent:
Cannot recall emails
Can disable codes in Shopify Admin
Send apology/explanation email
Create new operation for correct recipients
Learn from it:
Always test with small group first
Double-check recipient list
Use naming conventions to avoid confusion
Do expired codes get deleted?
No, expired codes remain in Shopify but:
Cannot be used by customers
Still show in discount list
Can be re-activated if needed
Count toward discount code limit
Best practice:
Periodically clean up old codes
Archive or delete unused expired codes
Use clear naming for easy identification
Can I create codes in different currencies?
No, discount codes use your store's default currency.
For multi-currency stores:
Shopify handles currency conversion automatically
Fixed amount discounts convert to customer's currency
Percentage discounts work the same globally
How long do customers have to use codes?
Depends on your configuration:
Set explicit end date: That date/time
No end date: Never expires (not recommended)
Best practice: 7-30 days
Recommendations:
Flash sales: 24-48 hours
Standard promotions: 7-14 days
Loyalty rewards: 30-90 days
Seasonal: Until end of season
What's the difference between Bulk Send and Bulk Create?
Recipients
Required
Not needed
Emails sent
Yes, automatic
No
Use case
Targeted campaigns
Generic codes
Unique codes
One per recipient
Count specified
Distribution
Automatic
Manual
Best for
Personal discounts
Influencers, flyers, social
Can I schedule recurring sends?
No, bulk operations are one-time only.
For recurring:
Create new operation each time
Set calendar reminders
Or request custom automation
Consider Shopify Flow for triggers
What if I want to send codes in multiple languages?
Options:
Create custom email template per language
Use Klaviyo with language segmentation
Create separate operations per language
Contact support for multi-language templates
Advanced Use Cases
Tiered Discount Campaigns
Scenario: Different discount values for different customer segments
Setup:
Create separate operations for each tier
Example:
VIP: 25% off codes
Regular: 15% off codes
New: 10% off codes
Use segments or manual lists
Same settings except value
Naming: Use descriptive titles: "VIP Black Friday 25% - Bulk Send"
Influencer Code Distribution
Scenario: Unique codes for different influencers to track performance
Setup:
Manual list with each influencer email
Higher usage limit: 50-100 uses per code
Longer expiry: 60-90 days
Track redemptions per influencer
Tips:
Clear naming: "Influencer-[Name]-Q1-2025"
Document which code went to which influencer
Monitor performance weekly
Pay based on actual usage
Post-Purchase Thank You
Scenario: Send discount for next purchase after customers buy
Challenge: Bulk Send requires manual recipient list
Workaround:
Export recent customers from Shopify
Use that list in Bulk Send
Or use Shopify Flow + this feature
Send "Thank you for your purchase + 10% off next order"
Event-Based Distribution
Scenario: Send codes to webinar attendees, conference participants
Setup:
Export attendee list from event platform
Format as email list
Bulk send with event-themed template
Short expiry (7 days) to capture momentum
Email messaging: "Thank you for attending [Event]. Here's an exclusive 20% discount!"
Geographic Targeting
Scenario: Different discounts for different regions
Setup:
Create Shopify segments by location
Separate operations per region
Account for local holidays/seasons
Consider currency and shipping costs
Example:
US customers: $20 off
Canada: $25 CAD off
UK: £15 off
Loyalty Program Integration
Scenario: Integrate with points-based loyalty system
Workflow:
Export customers with sufficient points
Reset points in loyalty system
Send discount codes via Bulk Send
Points converted to discount codes
Win-Back Automation
Scenario: Monthly win-back for inactive customers
Process:
First of each month: Export customers with no purchase in 90 days
Create Bulk Send operation
20% off, 14-day expiry
Track reactivation rate
Adjust based on performance
Beta Tester Rewards
Scenario: Thank beta testers with exclusive codes
Setup:
Manual list of beta tester emails
Higher value: 30-40% off
Longer expiry: 60 days
Can combine with other discounts
Personal message in template
Need More Help?
Documentation Resources
Email Template Guide - Customize emails
Klaviyo Integration - Set up Klaviyo
Shopify Flow Integration - Set up Flow
Customer Segments Guide - Create segments
Contact Support
Email: [email protected]
Documentation: https://docs.giftcardfactory.app/bulk-operations/discount-codes-bulk-send
When contacting support, include:
Operation ID
What you're trying to achieve
Error messages or unexpected behavior
Screenshots of configuration
Expected vs actual results
Number of recipients
Congratulations! You're now ready to run powerful, targeted discount code campaigns at scale. Start with a small test send, monitor the results, and scale up your campaigns with confidence. Happy selling!
Last updated