Migrating from ActiveCampaign to AcelleMail

ActiveCampaign is the marketing-automation tool that grew up — a serious workflow engine bundled with CRM, sales pipelines, and conversational messaging. Its automation depth is legitimate. So is the price: per-contact billing scales to $5,000+/month at 50k contacts on Pro/Enterprise tiers. This guide walks the 8-week migration: what to export from ActiveCampaign, how Contacts/Lists/Tags/Automations/Deals translate (or don't), the cost-per-tier comparison, and the trade-offs you accept when moving from "all-in-one marketing platform" to "purpose-built email engine."

What this is for

ActiveCampaign is the marketing-automation tool that grew up. Starting as an email platform in 2003, it expanded into CRM, sales pipelines, deal management, conversational messaging, lead scoring, and predictive sending. Today it markets itself as the all-in-one revenue operations platform for small-to-mid-market businesses — and it's the most feature-rich email-marketing competitor on the market.

The trade-off is price. ActiveCampaign Plus, Professional, and Enterprise tiers all charge by total contact count with non-linear curves:

  • $49/month at 1k contacts (Plus)
  • $145/month at 5k contacts
  • $375/month at 25k contacts
  • $895/month at 50k contacts (Pro)
  • ~$2,000-5,000/month at 100k-250k contacts depending on tier

Past 25k contacts, the per-month spend is comparable to a junior marketing hire. The math against self-hosted AcelleMail with your own SMTP — paid once for the license, then variable SMTP fees only — becomes hard to ignore.

This guide is the operator-grade playbook for the migration. The honest framing: you're trading "all-in-one platform" for "email-only platform." What you save in money, you spend deciding which of AC's CRM/Deals/Conversations/Forms/Lead Scoring/predictive features you can give up, which you'll replace with other tools, and which you'll rebuild lighter on AcelleMail.

Companion reads: Migrating from Mailchimp to AcelleMail, Migrating from MailerLite to AcelleMail, Migrating from Brevo (Sendinblue) to AcelleMail, Migrating from ConvertKit (Kit) to AcelleMail, Migrating from Klaviyo to AcelleMail.

Cost comparison — realistic numbers

ActiveCampaign Plus tier (the most common starting plan that includes automations + CRM lite):

Total contacts ActiveCampaign Plus AcelleMail (license + VPS + SES) Year 1 saving
1,000 contacts $49/mo = $588/yr $39 + $7/mo VPS + $2/mo SES ≈ $147 yr 1 $441
5,000 contacts $145/mo = $1,740/yr $39 + $12/mo VPS + $5/mo SES ≈ $243 yr 1 $1,497
10,000 contacts $239/mo = $2,868/yr $39 + $20/mo VPS + $10/mo SES ≈ $399 yr 1 $2,469
25,000 contacts $375/mo = $4,500/yr $39 + $30/mo VPS + $25/mo SES ≈ $699 yr 1 $3,801
50,000 contacts $895/mo = $10,740/yr $39 + $50/mo VPS + $50/mo SES ≈ $1,239 yr 1 $9,501
100,000 contacts $1,895/mo = $22,740/yr $39 + $80/mo VPS + $100/mo SES ≈ $2,199 yr 1 $20,541
250,000 contacts $4,495/mo = $53,940/yr $39 + $200/mo VPS + $250/mo SES ≈ $5,439 yr 1 $48,501

Sources. ActiveCampaign pricing as of 2026-05 (activecampaign.com/pricing). AcelleMail license at codecanyon.net/item/acellemail. VPS pricing reflects DigitalOcean droplets per tier. SMTP cost assumes Amazon SES at $0.10/1k emails. Numbers exclude operator time + your replacement-tool costs (CRM, etc.).

The crossover is below 1k contacts. Year-1 savings at 50k contacts ($9.5k) easily fund 6 months of a senior contractor to handle migration + replacement-tool setup. At 100k+ contacts, the savings are stunning and the migration almost always pencils out.

What ActiveCampaign gives you that AcelleMail does differently

This is the long version of the parity table because AC has the broadest feature set of any migration source.

Feature ActiveCampaign AcelleMail Migration approach
Email marketing Yes (deep) Yes Direct port
Visual automation editor Yes (best-in-class) Yes (Automation 2) Re-build node-by-node
Tag-based + List-based segmentation Both, with deep operator + condition combinators Both (List + Segment + Tag) 1:1 conceptual map; operators may simplify
CRM + Deal pipelines Yes (real CRM) No Replace: HubSpot Free, Pipedrive, Folk
Sales automation (deal-trigger flows) Yes No (deal concept doesn't exist) Rebuild in your replacement CRM
Conversations (live chat + chatbot) Yes (Conversations tier) No Replace: Intercom, Drift, Crisp
Predictive sending (best-time-per-contact) Yes (Pro) No Send at fixed times; lose ~5% engagement edge
Predictive content (best-version-per-contact) Yes (Pro) No A/B test variants instead
Lead scoring Yes No (not in core; can build via tag/field arithmetic) Simplified via custom field + automation
Site tracking (page views → events) Yes (Conversations + tracking script) No native; via custom integration Most teams drop this; AB testing tools replace
SMS marketing Yes (paid add-on) No Replace: Twilio, MessageBird, Postscript
Forms (inline, modal, slide-in) Yes Yes (Forms + Funnels) Re-create
Landing pages Yes Yes (Funnels) Re-create
WordPress/Shopify/WooCommerce integration Native plugins Via API + native plugins (vbrandsync for WP) Re-wire
Multi-user team accounts Yes (per-seat pricing) Yes (built-in) Big saving for teams 3+
Conditional content ({% if %} blocks) Yes Limited (basic merge tags only) Simplify templates
Time-zone-aware send Yes Limited (campaign-level timezone) Per-contact timezone via segmentation workaround
Reporting + automation maps Yes (deep) Yes (basic) Lose some sales-attribution depth
Free SSL/branded URLs Yes Yes via Acelle config Manual setup
White label No Yes (SaaS reseller tier in some Acelle versions) Bonus for migrants who become resellers

The architectural shift to plan around:

  1. AC is email + sales + service. AcelleMail is email. Plan replacements for everything else BEFORE migration.
  2. AC's predictive features (Pro tier) don't have AcelleMail equivalents. If your operations depend on best-time-to-send or best-content-version, accept the loss or rebuild as A/B tests.
  3. AC's CRM has Deal pipelines that drive automations. AcelleMail automations are subscriber-driven only. You'll need to re-wire Deal-trigger workflows through whatever CRM replacement you choose.

The 8-week timeline

Week Phase
Week 1 Install AcelleMail + DNS prep + CRM replacement setup
Week 2 Export from ActiveCampaign + import to AcelleMail
Week 3 Template rebuild + automation rebuild (Part 1: simple automations)
Week 4 Automation rebuild (Part 2: complex automations + CRM-trigger workflows) + sending-server config
Weeks 5 DNS migration
Week 6 IP warmup if dedicated
Weeks 7-8 Parallel period
Week 9 Cutover + AC downgrade

For migrants with heavy CRM dependency (sales teams using Deals/pipelines daily), add 2-3 weeks for the CRM replacement setup that has to happen in parallel.

Step 1 — Install AcelleMail + plan replacements (Week 1)

Pick your VPS host:

Plan VPS sizing for production: 25k contacts → $20-30/month, 50k → $30-50, 100k+ → $80+. For high-volume migrants, see Scaling for 100k Emails per Day.

Post-install foundation:

Plan AC feature replacements

Decide upfront what tools replace each AC feature you'll lose. Common combinations:

AC feature Replacement option Approx cost
CRM + Deal pipelines HubSpot CRM Free (free up to 1M contacts; paid for advanced) $0-50/mo
CRM + Deal pipelines Pipedrive (built for sales pipelines) $15-99/mo per user
CRM + Deal pipelines Folk (modern, designer-friendly) $20-80/mo per user
Conversations (live chat) Crisp $25-95/mo
Conversations (live chat) Intercom $74-250/mo
Site tracking Plausible / Fathom / Posthog (free) $0-50/mo
SMS marketing Twilio / MessageBird per-message pricing
Lead scoring Manual: AcelleMail custom field updated by automation $0
Predictive sending A/B test send times instead $0

For most AC migrants who use the platform mainly for email + automations, the replacement bundle is HubSpot Free CRM + an SMS provider if needed. Total replacement cost: $0-50/month — still a fraction of AC's pricing.

Set up replacements in week 1 so they're ready by the time you need them in week 4+.

Step 2 — Export from ActiveCampaign (Week 2)

ActiveCampaign exports are comprehensive but spread across the platform.

Export contacts

In AC (app.activecampaign.com):

  1. Contacts → Manage Contacts.
  2. Export → Export All Contacts (or filter by list / tag / segment first).
  3. Select fields: at minimum Email, First Name, Last Name, Phone, Status, Created At, Source, Country, City, IP, Last Active, Tags, Lists, Deal stage (if using Deals).
  4. Export → email with CSV (~5-15 min depending on count).

Sample CSV header:

Email,First Name,Last Name,Phone,Status,Created at,Source,Country,City,IP Address,Last Active,Tags,Lists,Deal Stage,Lead Score

Note: AC's status model

AC Status What it means Import?
Active Subscribed and engaged Yes
Unconfirmed Started double opt-in not completed No (re-confirm if relevant)
Unsubscribed Opted out Suppression list
Bounced Hard-bounced Suppression list
Spam Marked as spam Suppression list
Awaiting Pending validation Hold; re-evaluate

Filter:

awk -F',' 'NR==1 || $5 == "Active"' ac-contacts.csv > mailable.csv
awk -F',' 'NR==1 || $5 ~ /^(Unsubscribed|Bounced|Spam)$/' ac-contacts.csv > suppression.csv

Export lists + tags

For lists:

  1. Lists → Manage Lists.
  2. Note each list ID + name.
  3. The contacts CSV already has a Lists column — multi-value (semicolon-separated).

For tags:

  1. Settings → Manage Tags.
  2. Note tag names + counts. AC power users often have 100-300 tags; consolidate to ~50-80 before migration (audit; delete one-off / stale tags).
  3. Tags appear in the contacts CSV Tags column (semicolon-separated).

Export Custom Fields

  1. Contacts → Manage Fields (Custom Fields panel).
  2. Note each field's name, type, and personalization tag.
  3. They appear in the contacts CSV as columns named like IFIELD[<id>] or by their custom label.

You'll need each custom field replicated in AcelleMail before import (Step 4).

Export Automations

ActiveCampaign automations don't export. Document manually:

For each automation under Automations:

  1. Screenshot the canvas (full view; AC's canvas can be huge — capture in sections if needed).
  2. Note the trigger.
  3. For each node:
    • Send email → which template
    • Send SMS → flag for replacement plan
    • Wait → duration
    • If/else → the condition rule
    • Update contact → field + value
    • Add tag / Remove tag
    • Adjust score → if using lead scoring
    • Add to/remove from deal → flag for CRM replacement
    • Goal → goal conditions
  4. Save each Email's HTML (Email step → Open → View source).

AC power users often have 20-50 active automations. Plan 2-3 days for full documentation.

Export Deals (if using AC's CRM)

  1. Deals → Manage Pipelines.
  2. Export each pipeline. CSV format:
    Deal ID,Title,Contact Email,Pipeline,Stage,Value,Currency,Owner,Created,Last Updated
    
  3. These migrate to your replacement CRM, not to AcelleMail. Plan separately per your replacement-tool choice.

Export Forms

  1. Forms → All Forms.
  2. Note each form's embed code and the contact behavior (which tags get applied on submit, which automations trigger).
  3. Recreate in AcelleMail Forms post-cutover, OR keep AC forms running via webhook-bridge (similar to the Kit migration pattern; see Step 7).

Export templates

  1. Campaigns → Templates (or Saved).
  2. For each template, Export → save HTML file.

Export campaign history (for archive)

  1. Campaigns → Manage Campaigns.
  2. Export reports CSV for retention.

Step 3 — Clean the CSV (Week 2)

Standard cleanup applies — see Email List Hygiene: Clean Your List for Better Deliverability.

AC-specific notes:

Active = not necessarily engaged. AC's Active status means "still subscribed," not "still opening your emails." Decide your engagement window:

  • Conservative: import only contacts with Last Active in the last 90 days.
  • Moderate: import everyone with Last Active in the last 365 days.
  • Aggressive: import everyone, plan a re-engagement campaign post-migration.
# Active + last activity within 365 days
awk -F',' '
  BEGIN { yr_ago = strftime("%Y-%m-%d", systime() - 365*86400) }
  NR==1 || ($5 == "Active" && $11 >= yr_ago)
' ac-contacts.csv > engaged-mailable.csv

Dedupe by email — AC profiles are unique by email, but if you have multiple AC accounts (multi-brand), check across.

Validate with NeverBounce / Kickbox / ZeroBounce for lists >25k — even AC's validation has spam-trap drift over 12+ months.

Step 4 — Field mapping (Week 2)

AC CSV column AcelleMail List Field
Email EMAIL (system)
First Name FIRST_NAME
Last Name LAST_NAME
Phone PHONE (custom — create)
Status (drop — filter to Active only)
Created at OPT_IN_TIME (system)
Source SOURCE (custom — create)
Country COUNTRY (custom — create)
City CITY (custom — create)
IP Address OPT_IN_IP (custom — create) for GDPR
Last Active LAST_ACTIVE (custom — create)
Lead Score LEAD_SCORE (custom — create) — replaces AC's native scoring
Tags (apply after import via tinker script)
Lists (apply after import via tinker script)
Deal Stage (drop — migrates to replacement CRM, not AcelleMail)
each custom field <UPPERCASE_NAME> (custom — create)

Step 5 — Import to AcelleMail (Week 2)

For AC migrants, recommended import strategy:

  • One AcelleMail List named Contacts — migrated from ActiveCampaign YYYY-MM.
  • All Active+engaged contacts into that list.
  • Tags + Lists applied via tinker script after import.

Lists index — create the destination list

List overview

Create all custom List Fields per Step 4 mapping.

Import entry CSV upload Upload success Column mapping

Map columns to fields. Drop the Tags, Lists, and Deal Stage columns at this step — handle separately.

Import revisit — verify count

Verify count + sample 5 random contact data points.

Apply tags

sudo -u www-data php artisan tinker --execute='
  $csv = fopen("/tmp/ac-contacts.csv", "r");
  $headers = fgetcsv($csv);
  $emailIdx = array_search("Email", $headers);
  $tagsIdx = array_search("Tags", $headers);
  $count = 0;
  while (($row = fgetcsv($csv)) !== false) {
    $email = $row[$emailIdx];
    $tagsStr = $row[$tagsIdx];
    if (!$email || !$tagsStr) continue;
    $tags = array_filter(array_map("trim", explode(";", $tagsStr)));
    $sub = App\Model\Subscriber::where("email", $email)->first();
    if (!$sub) continue;
    foreach ($tags as $tagName) {
      $tag = App\Model\Tag::firstOrCreate([
        "name" => $tagName,
        "customer_id" => $sub->mailList->customer_id,
      ]);
      $sub->tags()->syncWithoutDetaching([$tag->id]);
    }
    $count++;
  }
  fclose($csv);
  echo "tagged $count contacts\n";
'

Import suppression

Settings → Suppression list → Import → upload the Unsubscribed/Bounced/Spam contacts CSV.

Migrate Deals to your replacement CRM

This happens outside AcelleMail. Per your replacement-tool choice:

  • HubSpot Free: Import deals via Settings → Import → Deal records. Match on email to existing contacts.
  • Pipedrive: Use the CSV import wizard with deal-stage mapping.
  • Folk: Direct CSV import; map Deal fields to Folk's deal model.

This step is the most tool-specific. Budget a day per CRM.

Step 6 — Port templates + rebuild automations (Weeks 3-4)

Templates

For each AC template HTML file:

  1. AcelleMail: Templates → New → Custom HTML.
  2. Paste HTML.
  3. Search-replace AC merge tags:
AC tag AcelleMail tag
%FIRSTNAME% {FIRST_NAME}
%LASTNAME% {LAST_NAME}
%EMAIL% {EMAIL}
%FIELDS[<id>]% or %<CUSTOM_TAG>% {<CUSTOM>}
%UNSUBSCRIBE% {UNSUBSCRIBE_URL}
%LINK_FOR_WEB% {VIEW_AS_WEBPAGE_URL}
AC's {% if %} conditional blocks Simplify; AcelleMail doesn't support conditional content in templates

The conditional-content limitation is the biggest AC-specific template friction. Common patterns:

  • AC: {% if contact.field == "Premium" %}Premium content{% else %}Free tier content{% endif %}
  • AcelleMail: Split into two separate templates; segment subscribers by field value; send the appropriate template to each segment.

Many AC migrants reduce template count from "1 template with 10 conditional sections" to "5 simpler templates with audience-targeted sends." Usually a quality improvement; sometimes an organizational hassle.

Automations rebuild

Each AC automation → one AcelleMail Automation 2. Node-by-node mapping:

AC node AcelleMail node
Trigger: Subscribes to list Subscriber added to list
Trigger: Tag added Tag added
Trigger: Field changed Subscriber field changed
Trigger: Submits form Subscriber added (via form-bridge)
Trigger: Visits page (Site tracking) Webhook received
Trigger: Sends a message reply Skipped (no equivalent in AcelleMail)
Send email Send Email node (pick template)
Send SMS Skipped — send via your SMS provider's API instead
Wait Wait node
If/else Condition node
Update contact field Operation: update field
Add tag / Remove tag Operation: add/remove tag
Adjust score Operation: update LEAD_SCORE field (subtraction = negative arithmetic)
Add to/Remove from list Operation: move subscriber between lists (limited; usually skipped)
Add deal Skipped in AcelleMail; handle via CRM webhook (CRM watches AcelleMail's webhook → creates deal)
Move deal stage Same — CRM-side
Webhook Operation: send webhook
Goal Wait + Condition node combo

For complex flows with Deal triggers (e.g. "When deal moves to 'Won', tag contact + send congrats email"), the workflow shifts:

  • AC: All in one automation canvas.
  • AcelleMail: Two halves:
    • The AcelleMail automation handles the email side (triggered by webhook).
    • The CRM (HubSpot/Pipedrive) handles deal-stage transitions and calls AcelleMail's trigger endpoint via webhook.

See Using API Triggers for Custom Automation Workflows for the webhook pattern.

Plan effort per automation:

  • Simple welcome / nurture (5-7 emails, no branching): 30-60 min
  • Branching welcome (with if/else for engagement): 1-2 hrs
  • Lead-score-trigger flows: 2-4 hrs (rebuild scoring logic via tag/field arithmetic)
  • Deal-trigger flows: 3-6 hrs (CRM webhook integration)
  • SMS-included flows: skip SMS nodes; send via separate SMS tool

Total: budget 2 weeks for a typical AC power user with 20-30 automations.

Step 7 — Configure sending server (Week 4)

Provider Cost @ 25k contacts Notes
Amazon SES $15-25/mo Cheapest; production-access required
SendGrid $35-50/mo Easier signup
Postmark $50+/mo Premium reputation
Mailgun $35+/mo Generous trial

For most AC migrants, SES wins on cost. Above 50k contacts, consider dedicated IP add-on — see Dedicated vs Shared IP Address.

Step 8 — DNS migration (Week 5)

DNS record AC value AcelleMail addition Approach
SPF v=spf1 include:_spf.activehosted.com ?all Append: include:amazonses.com Add in parallel; remove AC at cutover
DKIM dk._domainkey.<yourdomain> (TXT) New selector Coexist
DMARC (unchanged) (unchanged) Stay
Branded tracking AC-hosted tracking subdomain Configure AcelleMail tracking domain Switch CNAME at cutover

References: Complete DNS Setup for Email Sending, How to Set Up SPF, DKIM, and DMARC Records, DMARC Enforcement Migration.

Step 9 — IP warmup (Week 6)

If using shared SMTP pool — skip. If dedicated — full warmup at IP Warmup Schedule for New Sending Servers.

Step 10 — Parallel period (Weeks 7-8)

Random recipient split:

Phase AC share AcelleMail share
Week 7 day 1-3 90% 10%
Week 7 day 4-7 75% 25%
Week 8 day 1-3 50% 50%
Week 8 day 4-7 25% 75%
Week 9 day 1 0% 100% (cutover)

Daily monitoring (AC migrants are often sales/marketing teams who watch metrics closely):

  • Open rate — within 10% of AC baseline post-warmup.
  • Click rate — within 10%.
  • Bounce rate — <2%.
  • Unsubscribe rate — should match AC (slight changes from new footer normal).
  • Spam complaints — <0.1%.
  • Sales pipeline movement (if applicable) — verify deal-stage automations still fire via CRM-AcelleMail webhook integration.
  • Postmaster Tools, FBL, Sender Reputation — see Sender Reputation Monitoring and Feedback Loops (FBL) Setup.

If any major metric drops >15%, pause AcelleMail share, debug, fix, then resume.

Step 11 — Cutover + AC cleanup (Week 9)

  1. Update SPF — remove AC include.
  2. Verify spf=pass dkim=pass dmarc=pass.
  3. Switch branded tracking CNAME.
  4. Verify CRM-AcelleMail webhook integration is firing. Move a test deal stage in HubSpot/Pipedrive; confirm AcelleMail receives the trigger.
  5. Update external integrations (Zapier, custom webhooks, partner platforms).
  6. Downgrade AC to lowest tier — keep historical access.
  7. Cancel AC SMS, Conversations, or other paid add-ons separately.
  8. 30 days later: confirm steady-state, cancel AC entirely (or keep at lowest tier for archive).

Common pitfalls

Underestimating CRM replacement effort. AC users who rely on Deals daily may need 3-4 weeks for full CRM setup + data migration + team training. Don't skip this in week 1.

Forgetting conditional content templates. AC's {% if %} blocks let one template serve multiple audiences. Splitting into multiple templates is more work but easier to maintain long-term. Don't try to hack conditionals into AcelleMail.

Losing predictive sending insights. AC Pro's best-time-to-send doesn't migrate. Most operators don't notice the ~5% engagement loss after a month; some power users do. A/B test send times to recover most of the edge.

Forgetting site tracking. If your automations trigger on page visits, those triggers stop firing post-migration unless you build a custom site-tracking → AcelleMail-webhook bridge. Many AC migrants drop this and accept simpler automations.

Trying to rebuild AC's CRM features in AcelleMail. AcelleMail isn't a CRM. Don't try to track deals or pipelines in subscriber custom fields — use a real CRM. The two-tool pattern (AcelleMail for email + CRM for deals) is the correct architecture.

Underestimating automation rebuild time for complex flows. AC power users have 30+ automations with deep conditional logic. Plan a focused 2-week block; don't try to ship migration in 6 weeks if you're in this bucket.

Cancelling AC too fast. The 30-day buffer gives fallback. Cancel only after every CRM webhook, every automation, and every integration has fired successfully at least once in production.

FAQ

How long does an AC migration really take? Realistic: 8-10 weeks for a 25k-contact AC power user with 20+ automations and active Deal pipelines. Faster (5-6 weeks) for AC users who mainly use email and have light CRM usage.

Should I migrate if I'm on AC Lite (no automations, no Deals)? The cost savings still favor AcelleMail at any tier ≥1k contacts. The migration is much simpler without automations + Deals — maybe 3-4 weeks. Yes, migrate.

What about ActiveCampaign Conversations (live chat)? Doesn't migrate to AcelleMail. Replace with Crisp, Intercom, or similar. Plan the replacement before cutover.

Can I keep AC's CRM and use AcelleMail just for email? Theoretically yes — AC has a CRM-only tier. Practically rare; the cost split rarely makes sense vs. HubSpot Free or Pipedrive. Better path: full migration with HubSpot CRM.

What about my lead-scoring history? Migrate the current score as a custom field (LEAD_SCORE). The historical score-change events don't migrate; only the snapshot. Rebuild scoring logic via automation update field operations.

Does AcelleMail support deal-triggered automations? Not natively. Use webhook bridges from your replacement CRM. The CRM watches deal-stage changes and calls AcelleMail's API trigger endpoint when conditions match.

Will my AC automation reports / analytics migrate? No. Engagement history is per-platform. Export AC reports CSV for archive; AcelleMail starts fresh.

Can I migrate AC forms in-place? Two options: rebuild in AcelleMail Forms (lose AC's specific form designs) OR keep AC forms running with a webhook bridge that forwards submissions to AcelleMail (extra ops, but seamless to users). Most migrants pick rebuild for cleanliness.

Related articles

0 comments

0 comments

No comments yet — be the first to share a tip or question.

See it running

Try a live AcelleMail tenant — no install

Spin up a demo instance, send to yourself, click around the admin. No commitment, no email required.

Open the demo

More in Migration & Comparison