Email Campaigns
Send professional email campaigns to your audience with advanced personalization, A/B testing, scheduling options, and comprehensive analytics tracking.
What You Can Do
- Newsletters: Send regular updates to subscribers
- Promotional Campaigns: Product launches, sales, special offers
- Nurture Sequences: Educational content, drip campaigns
- Transactional Emails: Order confirmations, receipts, notifications
- A/B Testing: Test subject lines, content, send times
- Scheduling: Send now, schedule for later, or timezone-based delivery
Prerequisites
1. Verify Your Email Domain
Resend Email (Pre-configured for All Users)
Expedify comes with Resend pre-configured as your default email provider. Simply verify your domain to start sending campaigns:
Step 1: Add Your Domain
- In Expedify, go to Settings → Integrations
- Find Resend in the Email section
- Click Configure or Manage Domains
- Click Add Domain
- Enter your sending domain (e.g.,
yourdomain.com)
Step 2: Add DNS Records
Expedify will provide you with DNS records to add to your domain:
- Copy the DNS records shown (SPF, DKIM, DMARC)
- Go to your domain provider (GoDaddy, Namecheap, Cloudflare, etc.)
- Add the DNS records:
- SPF Record (TXT): Authenticates your domain as a sender
- DKIM Record (TXT): Signs your emails with encryption
- DMARC Record (TXT): Sets your email policy
Example DNS Records:
Type: TXT
Name: @ (or your domain)
Value: v=spf1 include:resend.com ~all
Type: TXT
Name: resend._domainkey
Value: [Provided by Expedify]
Type: TXT
Name: _dmarc
Value: v=DMARC1; p=none; rua=mailto:admin@yourdomain.com
Step 3: Verify Domain
- Wait 15-60 minutes for DNS propagation
- Return to Expedify → Settings → Integrations → Resend
- Click Verify Domain
- ✅ Domain verified! You're ready to send campaigns
Step 4: Set Default Sender Email
- Use an email from your verified domain (e.g.,
hello@yourdomain.com) - This will be your default "From" email for campaigns
- Don't use: Gmail, Yahoo, or other free providers
Important: Without domain verification, your emails may go to spam or not be delivered at all.
Complete Resend Integration Guide →
Alternative Email Providers (Optional)
While Resend is pre-configured and recommended, you can connect your own email provider if needed:
| Provider | Best For | Setup Guide |
|---|---|---|
| SendGrid | Enterprise, high volume | SendGrid Guide → |
| Gmail | Small teams, simple sends | Gmail Guide → |
| SMTP | Any custom provider | SMTP Guide → |
Note: If you use an alternative provider, you'll need to provide your own API keys.
2. Create Email Template
Before launching a campaign, you need an email template:
- Go to Channel → Templates
- Click + New Template → Select Email
- Design your email using the visual editor
- Add merge tags for personalization (e.g., contact name, company name)
- Save template
Learn more about email templates →
3. Create Audience Segment
Define who receives your campaign:
- Go to Channel → Segments
- Click + New Segment
- Add filters (e.g., "Email is not empty", "Tags contains Marketing")
- Save segment
Creating an Email Campaign
Step-by-Step Guide
Step 1: Basic Details
- Navigate to Channel → Campaigns
- Click + New Campaign
- Fill in basic information:
- Campaign Name: Internal identifier (e.g., "May Newsletter")
- Description: Campaign purpose (optional)
- Channel: Select Email
Step 2: Select Template
- Choose from existing templates or create new
- Preview template to ensure it looks correct
- For dynamic content:
- Use merge tags to personalize (e.g., "Hi John")
- Conditional content based on contact properties
- Multi-language variants (auto-selected by contact language)
Template Personalization Options:
Available Merge Tags:
- {{contact.first_name}} - Contact's first name
- {{contact.last_name}} - Contact's last name
- {{contact.email}} - Contact's email address
- {{company.name}} - Company name
- {{company.industry}} - Company industry
- {{deal.value}} - Deal value
- {{custom_field_name}} - Any custom field
Example:
Subject: Hi {{contact.first_name}}, exclusive offer for {{company.name}}!
Body: Hi {{contact.first_name}},
We have a special offer for companies in {{company.industry}}...
Step 3: Select Audience
- Choose your target segment
- Preview audience size
- Optional: Add exclusions
- Exclude contacts who opened previous campaign
- Exclude specific segments
- Exclude recent contacts (e.g., added in last 7 days)
Step 4: Configure Email Settings
Sender Information:
- From Name: Your name or company name (e.g., "John from Expedify")
- From Email: Your verified email address
- Reply-To: Email for replies (can be different from From Email)
Email Options:
- Custom Subject Line: Override template subject
- Preheader Text: Text shown in inbox preview (85-100 characters)
- Track Opens: Enable email open tracking (default: on)
- Track Clicks: Enable link click tracking (default: on)
- Enable Unsubscribe: Add unsubscribe link (required for marketing emails)
Step 5: Scheduling Options
Choose when to send:
| Option | Description | Best For |
|---|---|---|
| Send Now | Immediate delivery | Time-sensitive announcements |
| Schedule | Specific date and time | Planned campaigns, product launches |
| Recipient's Timezone | Deliver at same local time for all contacts | Global audiences, optimal engagement |
| Optimal Send Time | AI-recommended best time per contact | Maximum engagement (requires historical data) |
Scheduling Example:
Send Now: Campaign starts immediately
Schedule: May 15, 2024 at 9:00 AM (your timezone)
Recipient's Timezone: 9:00 AM in each contact's local timezone
Optimal Time: AI picks best time for each contact (e.g., 9 AM for some, 2 PM for others)
Step 6: Advanced Settings (Optional)
Batch Configuration:
- Batch Size: Number of emails per batch (default: 1000)
- Delay Between Batches: Seconds to wait between batches (default: 30s)
- Rate Limiting: Prevent exceeding provider limits
- Priority: High/Normal/Low (affects send order)
Analytics & Monitoring:
- Enable Analytics: Track campaign performance
- Detailed Metrics: Track individual contact activity
- Real-time Monitoring: Live delivery progress
- Auto-Pause on Errors: Stop if error rate exceeds threshold
Step 7: Review & Launch
- Preview Campaign:
- Review subject line
- Preview email for sample contacts
- Check personalization
- Verify links work
- Send Test Email: Send to yourself or team
- Final Checklist:
- ✅ Template looks correct
- ✅ Audience is correct size
- ✅ Subject line is compelling
- ✅ All links work
- ✅ Unsubscribe link present
- ✅ From/Reply-to emails correct
- Launch: Click Send Now or Schedule
Campaign Execution & Monitoring
Real-Time Progress Tracking
Once launched, monitor your campaign in real-time:
Campaign Dashboard Shows:
- Delivery Progress: Messages sent, delivered, failed
- Engagement Metrics: Opens, clicks, replies
- Delivery Rate: Percentage successfully delivered
- Open Rate: Percentage of delivered emails opened
- Click Rate: Percentage of delivered emails with link clicks
- Error Details: Bounce reasons, failed deliveries
State Manager (for running campaigns):
- Go to Channel → Campaigns
- Click State Manager button
- View active campaigns with live progress
- Actions available:
- Pause: Temporarily stop sending
- Resume: Continue paused campaign
- Cancel: Permanently stop campaign
Campaign States
| State | Description | Actions Available |
|---|---|---|
| Draft | Not sent yet | Edit, Delete, Launch |
| Scheduled | Queued for future send | Edit, Cancel, Reschedule |
| Sending | Currently processing | Pause, Cancel |
| Paused | Temporarily halted | Resume, Cancel |
| Sent | Delivery complete | View Analytics, Duplicate |
| Cancelled | Stopped permanently | View Details, Duplicate |
Email Campaign Analytics
Key Metrics
Access detailed analytics in Channel → Campaigns → [Campaign Name] → Analytics:
Delivery Metrics:
- Sent: Total emails dispatched
- Delivered: Successfully received (excludes bounces)
- Bounced: Failed deliveries (hard bounces + soft bounces)
- Hard Bounce: Invalid email, does not exist
- Soft Bounce: Temporary issue (full inbox, server down)
- Failed: Other delivery failures
Engagement Metrics:
- Opens: Unique contacts who opened email
- Open Rate: Opens / Delivered × 100
- Clicks: Unique contacts who clicked links
- Click Rate: Clicks / Delivered × 100
- Click-to-Open Rate (CTOR): Clicks / Opens × 100
- Replies: Direct email responses
Subscriber Health:
- Unsubscribes: Contacts who opted out
- Spam Complaints: Marked as spam
- Unsubscribe Rate: Unsubscribes / Delivered × 100
Time-Based Insights:
- Engagement by Hour: Best time to send
- Engagement by Day: Best day of week
- Time to Open: How quickly contacts open emails
- Time to Click: How quickly contacts click links
Engagement Heatmap
Visual representation of:
- Opens by hour of day
- Clicks by day of week
- Geographic distribution of engagement
- Device breakdown (mobile vs. desktop)
Individual Contact Activity
View detailed activity for each recipient:
- Open campaign analytics
- Click Activity Timeline
- See per-contact:
- Delivery status and timestamp
- Open timestamps (all opens, not just first)
- Links clicked and when
- Device and location
- Replies received
Exporting Reports
Download campaign data:
- Open campaign
- Click Export button
- Choose format:
- CSV: All contact data with activity
- PDF: Summary report with charts
- Excel: Detailed metrics with formulas
- Select date range and metrics to include
A/B Testing (Split Testing)
Test different versions to optimize performance:
Creating an A/B Test
- When creating campaign, enable A/B Test
- Configure test:
- Variant A (Control): Original version
- Variant B (Test): Modified version
- Test Size: Percentage of audience for test (e.g., 20%)
- Winning Metric: Opens, clicks, or conversions
- Wait Time: Duration before picking winner (e.g., 2 hours)
How It Works
Total Audience: 10,000 contacts
Test Size: 20% (2,000 contacts)
Step 1: Send to test group
- Variant A: 1,000 contacts
- Variant B: 1,000 contacts
Step 2: Wait period (2 hours)
- Monitor opens and clicks
- System tracks performance
Step 3: Pick winner
- Higher open rate wins
- System automatically sends winning version
Step 4: Send to remaining audience
- Winning variant sent to remaining 8,000 contacts
What to Test
Subject Lines:
- Length (short vs. long)
- Tone (formal vs. casual)
- Personalization (with/without name)
- Emoji usage
- Questions vs. statements
Send Time:
- Morning vs. afternoon
- Weekday vs. weekend
- Different timezones
Content:
- Email length (short vs. detailed)
- Image count
- CTA placement (top vs. bottom)
- Button copy
From Name:
- Personal name vs. company name
- Include title/role
- Familiar vs. formal
Best Practices
Deliverability
Domain Authentication (Critical for deliverability):
- Set up SPF record
- Set up DKIM record
- Set up DMARC record
- Verify domain with your email provider
List Hygiene:
- Remove hard bounces immediately
- Remove contacts with no engagement in 6+ months
- Use double opt-in for new subscribers
- Never buy email lists
Sending Patterns:
- Warm up new domains (start with 50/day, increase gradually)
- Maintain consistent sending volume
- Avoid sudden spikes in volume
Content Guidelines:
- Avoid spam trigger words ("free", "guarantee", "act now")
- Keep image-to-text ratio balanced (60% text minimum)
- Include physical mailing address (required by CAN-SPAM)
- Make unsubscribe easy (one-click preferred)
- Test emails before sending (use spam checker tools)
Subject Lines
Length:
- Mobile preview: 30-40 characters
- Desktop: 50-60 characters
- Keep most important words at the beginning
Effective Patterns:
- Questions: "Ready to boost your sales by 30%?"
- Curiosity: "The secret to higher conversions..."
- Urgency: "Last chance: Offer ends tonight"
- Personalization: "John, exclusive offer inside" (using merge tags)
- Numbers: "5 ways to improve email deliverability"
Avoid:
- ALL CAPS
- Excessive punctuation!!!
- Misleading claims
- Spam trigger words
Content Design
Structure:
- Single column layout (best for mobile)
- Clear hierarchy (heading → body → CTA)
- One primary CTA per email
- Scannable content (short paragraphs, bullet points)
Images:
- Always include alt text
- Don't rely only on images (many email clients block them)
- Optimize file size (< 100KB per image)
- Use responsive images
Call-to-Action:
- Use buttons, not just text links
- Make CTA stand out (contrasting color)
- Action-oriented copy ("Get Started" not "Click Here")
- Place above the fold
Mobile Optimization:
- 60% of emails opened on mobile
- Large, tappable buttons (44×44px minimum)
- Single column layout
- Readable font size (14px minimum)
Timing & Frequency
Best Send Times (general guidelines):
| Industry | Best Day | Best Time |
|---|---|---|
| B2B | Tuesday-Thursday | 9-11 AM |
| E-commerce | Sunday-Monday | 8-10 AM, 7-9 PM |
| Media/Content | Monday, Friday | 6-8 AM |
| Nonprofit | Tuesday, Thursday | 12-1 PM |
Frequency Guidelines:
- B2B: 2-3 emails per week maximum
- B2C: 3-5 emails per week
- Transactional: No limit
- Set frequency caps to prevent over-emailing
Pro Tip: Use A/B testing to find YOUR audience's optimal time
Troubleshooting
Low Open Rates (below 15%)
Possible Causes:
- Subject line not compelling
- Sender name unfamiliar
- Sent at wrong time
- Poor list quality
- Emails going to spam
Solutions:
- A/B test subject lines
- Use recognizable sender name
- Test different send times
- Clean inactive contacts
- Check spam score before sending
- Verify domain authentication
High Bounce Rate (above 5%)
Possible Causes:
- Invalid email addresses
- Old, inactive lists
- Domain authentication issues
Solutions:
- Validate emails before import
- Remove hard bounces immediately
- Set up SPF, DKIM, DMARC
- Re-engage inactive contacts
- Use double opt-in
Emails Going to Spam
Root Causes:
- Domain not authenticated
- High spam complaint rate
- Poor list quality
- Spam trigger words
Solutions:
- Set up domain authentication (SPF, DKIM, DMARC)
- Review why users mark as spam
- Implement double opt-in
- Use spam checker tools
- Avoid spam trigger words and patterns
- Include clear unsubscribe link
Low Click Rates
Possible Causes:
- CTA not clear
- Too many CTAs
- Content not engaging
- Mobile unfriendly
Solutions:
- Use single, prominent CTA
- Make buttons stand out
- Improve content relevance
- Test mobile rendering
- Use urgency/scarcity
Advanced Features
Dynamic Content Blocks
Show different content based on contact properties:
{{#if contact.industry == "Technology"}}
<p>Special offer for tech companies...</p>
{{else}}
<p>Special offer for your industry...</p>
{{/if}}
Multi-Language Campaigns
Send emails in contact's preferred language:
- Create template variants in different languages
- Set language field on contacts
- System auto-selects correct template variant
Drip Campaigns
Automated email sequences triggered by contact actions:
- Use workflow automation
- Set up triggers (form submission, tag added, etc.)
- Create email sequence with delays
- Monitor engagement and adjust
Related Resources
- Email Templates → - Design beautiful emails
- Segments → - Target the right audience
- Campaign Analytics → - Track performance
- Workflows → - Automate email sequences
- Integrations → - Connect email providers