Loading tutorials…
Loading tutorials…
ActiveCampaign rewards careful setup more than almost any other email platform — get the plan, auth, and import order wrong and you're cleaning up data for months. Here is the setup sequence that doesn't trap you in 60 days.
Who this is forOperators standing up ActiveCampaign for the first time, or owners on the Lite plan hitting a ceiling and ready to upgrade to Plus ($49/mo) or Professional ($149/mo). If you already have 5K+ contacts on another platform, this tutorial sequences the migration so predictive features aren't broken on day one.
What you'll need
Step 1
Lite ($29/mo) has no site tracking, no CRM, no conditional automations. Most operators need Plus ($49/mo) minimum. Don't import into Lite and migrate later.
ActiveCampaign has four tiers in 2026: Lite, Plus ($49/mo at 1K contacts), Professional ($149/mo), Enterprise (custom).
Lite is essentially Mailchimp-equivalent — basic campaigns, basic automation, no site tracking, no CRM, no conditional content. Avoid it unless you only need a newsletter.
Plus adds: site tracking, CRM with deal pipelines, conditional content, lead scoring, contact + account scoring. This is the working floor for most operators.
Professional adds: predictive sending (Win Probability ML), predictive content, attribution reporting, full CXautomation features. Worth it above ~10K contacts or for any e-com stack relying on ML send-time optimization.
Enterprise adds: custom reporting, custom mailserver domain, dedicated rep. Only relevant past 100K contacts or for regulated industries.
Decision rule: if you'll use Automations with branching logic OR site tracking OR a sales pipeline, start on Plus. The $20/mo savings on Lite is destroyed the first month you have to rebuild.
Step 2
Authentication is required before importing — without it, the first send to a fresh list can land 60-80% in spam and burn the domain.
In ActiveCampaign → Settings → Advanced → Email & SMS → 'Authenticate your domain.'
Enter your sending domain (e.g., mail.yourbrand.com or just yourbrand.com).
ActiveCampaign generates a CNAME for DKIM (e.g., `dk._domainkey.yourbrand.com` → `dk._domainkey.acemslvc.com`). Add it to DNS.
Add an SPF record at the root: `v=spf1 include:_spf.activecampaign.com ~all` (or merge `include:_spf.activecampaign.com` into your existing SPF — never have two SPF records).
Add a DMARC record at `_dmarc.yourbrand.com`: start with `v=DMARC1; p=none; rua=mailto:dmarc@yourbrand.com` to monitor before enforcing.
Wait 24-48 hours. In ActiveCampaign → Settings → Advanced, the auth status should flip to 'Verified' (green).
Do not import contacts before this is verified. Sending unauthenticated to a fresh list is the fastest path to a permanent reputation hit.
Step 3
Lists are subscription boundaries (compliance), not segments. Create one master list per opt-in source — most accounts need 1-3 lists, not 20.
ActiveCampaign → Lists → 'Add a list.' Name it after the opt-in mechanism (e.g., 'Newsletter,' 'Customers,' 'Webinar Attendees'). Not by interest — that's what tags are for.
Set the public name shown in unsubscribe footers and add a sender address with a real reply path. AC requires a physical mailing address (CAN-SPAM); use a PO box if you don't want home address public.
Now add custom fields: Contacts → Fields → 'Add field.' For most operators, the first six custom fields are: Phone, Lifecycle Stage (dropdown), Company, Plan, Signup Source, Last Engagement Score.
Pick field type carefully — once a field has data, changing its type (e.g., text → dropdown) is messy. Use dropdowns for finite values, text for free-form, date for anything time-based.
Do not create a field for something a tag could express. 'Industry: SaaS / E-com / Agency' belongs as tags (`industry-saas`, `industry-ecom`), not a dropdown. Tags are queryable in automations; custom fields are slower.
Step 4
Add an 'Imported From [Old ESP]' tag and a 'Last Engagement Date' field BEFORE upload. Don't dump 10K cold contacts into a fresh sender domain.
In your CSV export from Mailchimp/Klaviyo/HubSpot/etc., include columns for: email, first name, last name, last open date, last click date, total opens, original signup date.
In ActiveCampaign, create a custom field 'Last Engagement Date' (Date type) before importing — map the CSV's last-open column to it.
Contacts → Import → Upload CSV. Map fields. ASSIGN A TAG during import: `imported-from-[oldESP]-[yyyymm]`. This is non-negotiable for warmup.
Critical: do NOT send a campaign to the entire imported list on day one. Segment by Last Engagement Date — opened-in-last-30-days first (smallest, hottest), then 60 days, then 90, then sunset the rest. This is the warmup curve that prevents reputation damage.
If you don't have engagement dates, you can't warm up safely. Either send to a small (~10%) random sample and accept some bounces, or pay a list-validation service ($20-50 for 10K) before the first send.
Step 5
Install the AC tracking code on your site (next tutorial details GTM), then build at least one signup form to capture new contacts cleanly.
ActiveCampaign → Settings → Tracking → Site Tracking → 'Enable.' Copy the snippet — we install it properly in the next tutorial. For now, paste it before `</head>` on your highest-traffic page to verify tracking is alive.
Forms → 'Create a form.' Pick the type: Inline (embed), Floating Bar, Floating Box (popup), or Modal.
Connect the form to your master list. Add hidden fields for any auto-tag (e.g., `source: footer-signup`).
Configure double opt-in based on jurisdiction: required for EU/Canada, recommended for US.
Copy the embed code or use the WordPress plugin. Publish on a low-traffic test page first; verify a real submission appears in Contacts within 60 seconds.
Step 6
Send to a 'seed' set of 5-10 real inboxes across Gmail, Outlook, Yahoo, ProtonMail. Verify inbox placement, not just delivery.
Create a simple campaign in ActiveCampaign → Campaigns → 'Create a campaign.' Use a real subject line (not 'test test'), real preheader, real body.
Send only to a list of 5-10 contacts you control across providers: Gmail (personal + workspace), Outlook 365, Yahoo, ProtonMail, an iCloud inbox.
Check each inbox: Primary tab, Promotions tab, or Spam? Hover the sender — does it show 'sent via activecampaign.com'? That's an auth issue. Does it show your domain cleanly? You're good.
If any of the seed inboxes land in spam, fix it now before any real send. Most common causes: incomplete DKIM, missing DMARC, image-heavy template with no plain-text version.
Free inbox-placement tools like GlockApps or Mail-Tester give a deliverability score (target: 9+/10 on Mail-Tester). Worth $20 to validate before sending to your real list.
Common mistakes
Starting on Lite to save $20/mo, then rebuilding on Plus
What goes wrong: Lite has no site tracking, no CRM, no conditional automations. Operators rebuild automations + re-tag contacts on Plus 3-4 months later. Loses 15-25 hours of setup work and $200-400 of agency time if you brought one in.
How to avoid: Start on Plus if you'll ever use site tracking, conditional automations, or the CRM. The $20/mo savings is destroyed by one rebuild.
Importing before SPF/DKIM/DMARC are verified
What goes wrong: Fresh domain + first send = ISP filters aggressively. 60-80% of the first send lands in spam, the domain gets a permanent reputation score below 70, and recovery takes 60-90 days of careful warmup.
How to avoid: Authenticate first. Wait 24-48 hours for DNS to propagate AND for AC to verify (green status). Only then import and send.
One big list called "All Contacts" instead of source-based lists
What goes wrong: Compliance audits become a nightmare — you can't prove how each contact opted in. Loses 12-18% engagement when tags + lists conflict (e.g., the welcome automation fires for contacts who were imported as customers, not newsletter signups).
How to avoid: One list per opt-in source. 'Newsletter,' 'Customers,' 'Webinar.' Use tags for everything else. Most operators need 1-3 lists, not 20.
Dumping a cold list onto a fresh sending domain
What goes wrong: Bounce rate spikes >5%, complaint rate >0.3%, and ISPs flag the domain. Even active subscribers stop seeing emails — open rate drops from 28% to 12% on a previously-healthy list.
How to avoid: Segment imports by Last Engagement Date. Send only to the most-recently-engaged 10-20% in week 1, expand by recency cohort each week. Sunset contacts with no engagement in 12+ months — don't try to revive them on a fresh domain.
Using custom fields where tags belong
What goes wrong: A dropdown 'Interest' field with 12 options is slow to filter and impossible to combine (someone can only have one value). Loses the ability to express 'interested in X AND Y' — drops automation segmentation accuracy 20-30%.
How to avoid: Tags for behavioral/interest markers (queryable, multi-value). Fields for stable attributes only (Company, Plan, Phone). When in doubt: tag.
Skipping the seed inbox check before first real send
What goes wrong: First campaign sends to 10K contacts and lands in Promotions/Spam. You don't notice for 7-14 days. By then, ISPs have built a reputation signal that takes 30-60 days to unwind.
How to avoid: Always do a 5-10 inbox seed test before any campaign that goes to more than 1K contacts. Gmail + Outlook coverage at minimum. Mail-Tester score should be 9+/10.
Recap
Done — what's next
How to install ActiveCampaign site tracking with GTM and event mapping
Read the next tutorial
Hand it off
Account setup is the foundation — every automation, segment, and campaign you build later assumes this layer is clean. If you'd rather have a vetted ActiveCampaign specialist do the install, authenticate the domain, sequence the migration, and validate inbox placement, that's typically $400-900 of one-time work at $14-16/hr. After that you can DIY the rest, or keep them on for ongoing.
See specialist rates
Plus ($49/mo at 1K contacts) is the working floor for most operators — it's the lowest tier with site tracking, CRM, conditional automations, and lead scoring. Lite ($29/mo) is essentially a newsletter tool and traps you when you need any of those features. Jump to Professional ($149/mo) once you cross 10K contacts or want predictive sending (Win Probability ML).
Partially. Export from your old ESP with last-open, last-click, and total-opens columns. Create a 'Last Engagement Date' custom field in ActiveCampaign before importing. You'll keep the date metadata, but not the per-event history (open events on specific campaigns don't transfer). This is enough to segment for warmup.
Wait until ActiveCampaign → Settings → Advanced → Email & SMS shows green Verified status on all three (SPF, DKIM, DMARC). DNS usually propagates in 4-24 hours; AC validates within an hour after that. Don't import or send a single campaign before verification.
List = compliance boundary tied to a single opt-in consent. Tag = lightweight, queryable, multi-value marker for behavior or interest (`webinar-attended-jun26`, `industry-saas`). Custom field = stable attribute that has one value at a time (Plan, Company, Phone). Lists are hardest to undo, tags are easiest. When unsure, use a tag.
Yes — Gmail and Yahoo require DMARC for any sender doing more than 5,000 messages/day to their users (since Feb 2024). Even below that threshold, DMARC's `p=none` policy gives you visibility into auth failures via reports. Add it with `p=none` first, then graduate to `p=quarantine` after 30 days of clean reports.
Yes, for 30-60 days. Disable the old ESP's automations before activating their ActiveCampaign equivalents to avoid double-sending. Watch your combined unsubscribe rate during overlap — it will spike if anything sends twice. Move transactional last to keep order-confirmation deliverability stable through the cutover.
ActiveCampaign
Site tracking is what turns ActiveCampaign from an email tool into a behavior platform. Done wrong, 35% of your behavior-triggered automations never fire. Here is the GTM install path most guides skip.
ActiveCampaign
The automation builder is ActiveCampaign's highest-leverage feature — and the place most operators get stuck. Triggers, conditions, and goals each have a 'right' way that doesn't show up in the in-app tutorial. Here's the build that scales.
ActiveCampaign
Tags, lists, and fields each have a 'right' use case — and an expensive 'wrong' one. Most accounts have data model debt that costs 12-18% engagement when tags and lists conflict. Here's the framework specialists use.
ActiveCampaign
Open rates dropping from 28% to 16%, campaigns landing in Promotions, sudden bounce spikes? Deliverability is the silent killer of email revenue. Here is the diagnostic sequence specialists run before suggesting any fix.
ActiveCampaign
DIY ActiveCampaign works — until the automations stack, the data model frays, and you spend more time debugging flows than running the business. This is the honest framework: when the cost of self-managing exceeds the cost of hiring.