Skip to main content

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

  1. In Expedify, go to Settings → Integrations
  2. Find Resend in the Email section
  3. Click Configure or Manage Domains
  4. Click Add Domain
  5. 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:

  1. Copy the DNS records shown (SPF, DKIM, DMARC)
  2. Go to your domain provider (GoDaddy, Namecheap, Cloudflare, etc.)
  3. 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

  1. Wait 15-60 minutes for DNS propagation
  2. Return to Expedify → Settings → Integrations → Resend
  3. Click Verify Domain
  4. ✅ 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:

ProviderBest ForSetup Guide
SendGridEnterprise, high volumeSendGrid Guide →
GmailSmall teams, simple sendsGmail Guide →
SMTPAny custom providerSMTP 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:

  1. Go to Channel → Templates
  2. Click + New Template → Select Email
  3. Design your email using the visual editor
  4. Add merge tags for personalization (e.g., contact name, company name)
  5. Save template

Learn more about email templates →

3. Create Audience Segment

Define who receives your campaign:

  1. Go to Channel → Segments
  2. Click + New Segment
  3. Add filters (e.g., "Email is not empty", "Tags contains Marketing")
  4. Save segment

Learn more about segments →

Creating an Email Campaign

Step-by-Step Guide

Step 1: Basic Details

  1. Navigate to Channel → Campaigns
  2. Click + New Campaign
  3. Fill in basic information:
    • Campaign Name: Internal identifier (e.g., "May Newsletter")
    • Description: Campaign purpose (optional)
    • Channel: Select Email

Step 2: Select Template

  1. Choose from existing templates or create new
  2. Preview template to ensure it looks correct
  3. 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

  1. Choose your target segment
  2. Preview audience size
  3. 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:

OptionDescriptionBest For
Send NowImmediate deliveryTime-sensitive announcements
ScheduleSpecific date and timePlanned campaigns, product launches
Recipient's TimezoneDeliver at same local time for all contactsGlobal audiences, optimal engagement
Optimal Send TimeAI-recommended best time per contactMaximum 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

  1. Preview Campaign:
    • Review subject line
    • Preview email for sample contacts
    • Check personalization
    • Verify links work
  2. Send Test Email: Send to yourself or team
  3. Final Checklist:
    • ✅ Template looks correct
    • ✅ Audience is correct size
    • ✅ Subject line is compelling
    • ✅ All links work
    • ✅ Unsubscribe link present
    • ✅ From/Reply-to emails correct
  4. 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):

  1. Go to Channel → Campaigns
  2. Click State Manager button
  3. View active campaigns with live progress
  4. Actions available:
    • Pause: Temporarily stop sending
    • Resume: Continue paused campaign
    • Cancel: Permanently stop campaign

Campaign States

StateDescriptionActions Available
DraftNot sent yetEdit, Delete, Launch
ScheduledQueued for future sendEdit, Cancel, Reschedule
SendingCurrently processingPause, Cancel
PausedTemporarily haltedResume, Cancel
SentDelivery completeView Analytics, Duplicate
CancelledStopped permanentlyView 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:

  1. Open campaign analytics
  2. Click Activity Timeline
  3. 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:

  1. Open campaign
  2. Click Export button
  3. Choose format:
    • CSV: All contact data with activity
    • PDF: Summary report with charts
    • Excel: Detailed metrics with formulas
  4. Select date range and metrics to include

A/B Testing (Split Testing)

Test different versions to optimize performance:

Creating an A/B Test

  1. When creating campaign, enable A/B Test
  2. 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):

  1. Set up SPF record
  2. Set up DKIM record
  3. Set up DMARC record
  4. 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):

IndustryBest DayBest Time
B2BTuesday-Thursday9-11 AM
E-commerceSunday-Monday8-10 AM, 7-9 PM
Media/ContentMonday, Friday6-8 AM
NonprofitTuesday, Thursday12-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:

  1. A/B test subject lines
  2. Use recognizable sender name
  3. Test different send times
  4. Clean inactive contacts
  5. Check spam score before sending
  6. Verify domain authentication

High Bounce Rate (above 5%)

Possible Causes:

  • Invalid email addresses
  • Old, inactive lists
  • Domain authentication issues

Solutions:

  1. Validate emails before import
  2. Remove hard bounces immediately
  3. Set up SPF, DKIM, DMARC
  4. Re-engage inactive contacts
  5. Use double opt-in

Emails Going to Spam

Root Causes:

  • Domain not authenticated
  • High spam complaint rate
  • Poor list quality
  • Spam trigger words

Solutions:

  1. Set up domain authentication (SPF, DKIM, DMARC)
  2. Review why users mark as spam
  3. Implement double opt-in
  4. Use spam checker tools
  5. Avoid spam trigger words and patterns
  6. Include clear unsubscribe link

Low Click Rates

Possible Causes:

  • CTA not clear
  • Too many CTAs
  • Content not engaging
  • Mobile unfriendly

Solutions:

  1. Use single, prominent CTA
  2. Make buttons stand out
  3. Improve content relevance
  4. Test mobile rendering
  5. 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:

  1. Create template variants in different languages
  2. Set language field on contacts
  3. System auto-selects correct template variant

Drip Campaigns

Automated email sequences triggered by contact actions:

  1. Use workflow automation
  2. Set up triggers (form submission, tag added, etc.)
  3. Create email sequence with delays
  4. Monitor engagement and adjust

Learn more about workflows →