ARTICLE CONTENT:
Complete Guide: Migrating from Kit (ConvertKit) to ActiveCampaign (Same AccessAlly Site)
⏱️ Estimated Time: 5-7 hours (plus testing)
🛠️ Technical Level: Intermediate
💰 Cost Impact: ActiveCampaign typically costs more than Kit ($15-259/mo vs $9-79/mo), but offers significantly more features
🎯 Migration Type: UPGRADE – Moving from simple email tool to full marketing automation platform
Why Migrate from Kit to ActiveCampaign?
This is an upgrade migration – you’re moving from Kit’s simple email marketing tool to ActiveCampaign’s powerful marketing automation platform. Common reasons for migrating:
- More Powerful Automation: ActiveCampaign’s automation builder is far more sophisticated than Kit sequences
- Better Custom Fields: Kit has very limited custom field support; ActiveCampaign has robust typed custom fields
- Advanced Segmentation: ActiveCampaign offers behavioral automation, site tracking, and lead scoring
- CRM Features: ActiveCampaign includes built-in CRM, deals, and pipelines (Kit has none)
- More Professional: ActiveCampaign is positioned for serious businesses; Kit is more creator-focused
- Better Integration Ecosystem: ActiveCampaign integrates with more tools and platforms
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Kit (ConvertKit) admin access (for data export)
- ActiveCampaign account (must be set up and configured)
- AccessAlly license that supports CRM switching
- Access to your payment gateway (Stripe or PayPal)
📋 Complete the Pre-Migration Checklist
Before proceeding, work through the complete Pre-Migration Checklist. Key items include:
- Full backup of WordPress site and database
- Export of all Kit subscriber data
- Audit of your current member count, tags, and custom fields (Kit has few)
- Data mapping spreadsheet (contacts, tags, sequences → automations)
- Staging site setup for testing (CRITICAL for CRM switches)
- Request 2-site exception from AccessAlly support
- Downtime plan and member communication
AccessAlly licenses are typically limited to one live site. You MUST request a temporary 2-site exception from AccessAlly support before setting up ActiveCampaign on your staging site. This lets you test the migration without breaking your live site.
Phase 1: Pre-Migration Setup (2-3 hours)
Step 1: Set Up Your ActiveCampaign Account
If you haven’t already set up ActiveCampaign:
- Sign up for ActiveCampaign (choose appropriate tier for your contact count and email volume)
- Complete basic account setup (company info, timezone, sender email, address)
- Configure email deliverability:
- Set up SPF record for your domain
- Set up DKIM record
- Verify domain ownership
- Test email sending (send yourself a test campaign)
- Create your first form and test it
- Explore the automation builder (familiarize yourself with the interface)
Step 2: Export Your Data from Kit
- Log into your Kit (ConvertKit) account
- Go to Subscribers
- Click Export in the top right
- Choose “Export all subscribers”
- Select “All fields” (to include custom fields)
- Select “Include tags”
- Click Export
- Kit will email you a CSV file
- Download and open the CSV
What’s included in the Kit export:
- Email addresses
- First names
- Custom fields (if you’ve created any – Kit has limited support)
- Tags (Kit relies heavily on tags due to limited custom field support)
- Subscription status
- Subscriber state (active/cancelled)
What’s NOT included:
- Sequences (must be rebuilt as ActiveCampaign automations)
- Forms (must be recreated)
- Email broadcast history
- Landing pages
- Commerce/product data (if using Kit Commerce)
Step 3: Map Your Kit Data to ActiveCampaign
Create a data mapping spreadsheet. Use the Data Mapping Reference Guide for complete field mappings.
| Kit Field | ActiveCampaign Field | Notes |
|---|---|---|
| Required field | ||
| First Name | first_name | Standard field |
| Tags | ActiveCampaign tags | Both use flat tag structure (no categories) |
| Custom Fields (limited) | Custom fields (robust) | Opportunity to expand data structure |
| State (active/cancelled) | Subscription status | Active → subscribed, cancelled → unsubscribed |
Kit has very limited custom field support, so most Kit users rely on tags for segmentation. ActiveCampaign has robust typed custom fields (text, number, date, dropdown, etc.). Consider converting some Kit tags into proper ActiveCampaign custom fields:
- Kit tag “Member-Gold” → AC custom field “Membership Level” = “Gold”
- Kit tag “Purchased-2024” → AC custom field “Purchase Year” = 2024
- Kit tag “Status-Active” → AC custom field “Member Status” = “Active”
This makes your data more structured and enables better segmentation.
Step 4: Decide on Tag vs. Custom Field Strategy
Because Kit has limited custom fields, you likely have many tags that represent data attributes. You have two options:
Option A: Keep Everything as Tags (Simpler Migration)
- Migrate all Kit tags directly to ActiveCampaign tags
- Faster migration (less data transformation)
- Works fine, but less structured
Option B: Convert Some Tags to Custom Fields (Better Long-Term)
- Identify tags that represent attributes (membership level, purchase status, etc.)
- Create typed custom fields in ActiveCampaign
- Transform tag data into custom field values during migration
- More work upfront, but cleaner data structure
- Enables better segmentation and automation
Step 5: Recreate Your Tags in ActiveCampaign
- Make a list of all tags from your Kit export
- Go to ActiveCampaign → Lists → Tags
- Create each tag in ActiveCampaign (or let import auto-create them)
- Use the exact same tag names for easier mapping
Important tag notes:
- Both Kit and ActiveCampaign use flat tag structures (no categories)
- Tag names are case-sensitive in both systems
- This is simpler than Keap → AC migrations (no category prepending issue)
- Clean up unused tags during this process
Step 6: Create Custom Fields in ActiveCampaign
If you have custom fields in Kit (rare), or if you’re converting tags to custom fields:
- List all custom fields you want to create
- Go to ActiveCampaign → Lists → Manage Fields
- Click “Add Field” for each custom field
- Choose appropriate field type:
- Text: Names, general text
- Number: Ages, counts, scores
- Date: Join dates, birthdays
- Dropdown: Membership levels, statuses
- Checkbox: Yes/no flags
- Note the field name/personalization tag for CSV mapping
Example custom field expansion:
| Kit Tag | ActiveCampaign Custom Field | Field Type |
|---|---|---|
| Gold-Member | Membership Level = “Gold” | Dropdown |
| Silver-Member | Membership Level = “Silver” | Dropdown |
| Purchased-2024 | Purchase Year = 2024 | Number |
| VIP-Status | VIP Status = true | Checkbox |
Step 7: Connect ActiveCampaign to AccessAlly (Staging Site First)
- On your STAGING site, go to AccessAlly → Settings → General
- Under “CRM Integration,” change from Kit (ConvertKit) to ActiveCampaign
- Enter your ActiveCampaign API credentials:
- API URL (found in ActiveCampaign → Settings → Developer)
- API Key (found in same location)
- Click Save and Test Connection
- Verify the connection is successful
Step 8: Prepare Your CSV for Migration Wizard
The AccessAlly Migration Wizard expects a specific format. Transform your Kit export.
Required columns for AccessAlly + ActiveCampaign import:
Email– Email address (required)First Name– First nameLast Name– Last name (Kit may not have this)Tags– Comma-separated list of ActiveCampaign tag names- Custom field columns (use ActiveCampaign field names)
CSV transformation steps:
- Open your Kit export in Excel or Google Sheets
- Rename columns to match ActiveCampaign format
- If converting tags to custom fields:
- Create new columns for custom fields
- Use formulas to extract values from tag columns
- Remove converted tags from Tags column
- Ensure tags are comma-separated in one column
- Remove cancelled/unsubscribed contacts (or tag them as “Unsubscribed”)
- Save as new CSV: “kit-to-activecampaign-import.csv”
Phase 2: Migration Execution (2-3 hours)
Step 9: Import Contacts via Migration Wizard
- On your STAGING site, go to AccessAlly → Migration Wizard
- If you don’t see Migration Wizard, download and activate the plugin (instructions)
- Click “Import from CSV”
- Upload your prepared CSV file
- Map CSV columns to ActiveCampaign fields
- Choose import options:
- Update existing users: Check if members may already exist in WordPress
- Create users in CRM: Check (this creates contacts in ActiveCampaign)
- Add tags: Check (applies tags from CSV)
- Click “Start Import”
What happens during import:
- WordPress user accounts created (if they don’t exist)
- Contacts created in ActiveCampaign
- Tags applied in ActiveCampaign
- Custom fields populated in ActiveCampaign
- Contact ID from ActiveCampaign stored in WordPress user meta
- This Contact ID linking is CRITICAL for access control
Step 10: Update AccessAlly Tags and Access Rules
AccessAlly stores tag names from your old CRM. After switching to ActiveCampaign, you need to verify these.
- Go through each AccessAlly Module or protected page
- Check “Who Can Access” settings
- Verify tag names still match ActiveCampaign tags (they should, since both use flat tags)
- If you converted tags to custom fields, update access rules to use custom field conditions instead
- Update membership levels to link to correct ActiveCampaign tags or custom fields
Critical areas to check:
- Module access rules
- Page protection settings
- Order form tag assignments
- Email wizard tag triggers
- Automation trigger rules
Step 11: Link Payment Gateway Subscriptions
If you have paid members with active subscriptions, you need to ensure their Stripe/PayPal subscriptions are properly linked.
- Export active subscriptions from Stripe or PayPal
- Match subscription IDs to member email addresses
- In AccessAlly, go to each member’s profile
- Verify the subscription ID is stored correctly
- Test that failed payments will cancel access
Detailed guide: Preserving Subscriptions During Migration
Step 12: Rebuild Your Sequences as ActiveCampaign Automations
Kit sequences must be rebuilt as ActiveCampaign automations. ActiveCampaign’s automation builder is more powerful than Kit sequences.
Kit → ActiveCampaign automation mapping:
| Kit Feature | ActiveCampaign Equivalent | Notes |
|---|---|---|
| Sequence | Automation with delay steps | More flexible in AC |
| Tag trigger | Tag trigger | Same concept |
| Wait X days | Wait step | AC offers more wait options |
| Event trigger | Custom field change / tag trigger | More trigger options in AC |
| N/A (Kit doesn’t have) | If/Else conditional logic | NEW feature in AC |
| N/A (Kit doesn’t have) | Site tracking triggers | NEW feature in AC |
| N/A (Kit doesn’t have) | Lead scoring | NEW feature in AC |
| N/A (Kit doesn’t have) | Goal-based automation exits | NEW feature in AC |
ActiveCampaign offers many features Kit doesn’t have:
- Site tracking: Trigger emails based on pages visited
- Lead scoring: Automatically score leads based on behavior
- Event tracking: Track custom events from your site
- If/Else logic: Create complex conditional automation paths
- Goals: End automations when specific goals are reached
- Splits: A/B test automation paths
Consider enhancing your sequences with these new capabilities.
How to rebuild each sequence:
- Document your Kit sequence (screenshot it)
- Go to ActiveCampaign → Automations → Create an Automation
- Choose trigger (tag applied, form submitted, etc.)
- Add steps:
- Send email: Recreate sequence emails
- Wait: Add delays between emails
- If/Else: Add conditional logic (new capability!)
- Tag/untag: Apply tags based on actions
- Update custom field: Track progress
- Set automation goal (if appropriate)
- Test automation with a test contact
- Activate automation
Step 13: Update Forms and Opt-ins
Kit forms need to be replaced with ActiveCampaign forms OR AccessAlly forms that submit to ActiveCampaign.
Option 1: Use ActiveCampaign Forms
- Create forms in ActiveCampaign → Forms
- Choose inline, floating box, or modal form type
- Design form to match your site
- Set up tag assignments and automation triggers
- Embed ActiveCampaign form code on your WordPress pages
Option 2: Use AccessAlly Forms (Recommended)
- Create forms in AccessAlly → Opt-in Forms
- Configure to submit to ActiveCampaign
- Better integration with WordPress/AccessAlly features
- More control over styling and behavior
- Easier to manage within WordPress
Phase 3: Go-Live and Verification (2-3 hours)
Step 14: Test Everything on Staging
Before touching your live site, thoroughly test on staging:
- ✅ Member login works
- ✅ Content access rules work correctly
- ✅ Tags control access properly
- ✅ Custom fields populate correctly
- ✅ Forms submit to ActiveCampaign
- ✅ Purchase flow works end-to-end
- ✅ Subscription linking works
- ✅ Failed payment handling tested
- ✅ Automations trigger correctly
- ✅ Email sending works
- ✅ Site tracking enabled (if using)
Step 15: Switch Live Site to ActiveCampaign
When staging tests pass, switch your live site:
- Schedule downtime (2-4 hour window recommended)
- Put site in maintenance mode
- Create fresh WordPress backup
- Export final Kit data (capture any new contacts since staging)
- Switch AccessAlly to ActiveCampaign (same steps as staging)
- Import any new contacts from final export
- Verify access rules and tags
- Test login for 3-5 members
- Take site out of maintenance mode
- Monitor closely for 1 hour
Step 16: Complete Post-Migration Checks
Work through the complete Post-Migration Verification Checklist. Key items for Kit → ActiveCampaign:
✅ Contact Data Integrity
- Verify total contact count matches Kit export
- Check 10 random contacts in ActiveCampaign for complete data
- Verify Contact IDs properly stored in WordPress
- Check for duplicate contacts
- Verify custom fields populated correctly
✅ Access & Permissions
- Test login as multiple member types
- Verify access to protected content for each membership level
- Check tag-based access rules work
- Test content unlocking based on tags or custom fields
✅ Tags & Custom Fields
- Verify tags migrated correctly (sample 10 contacts)
- Check custom fields populated in ActiveCampaign
- Test tag-based access rules
- Verify tag assignment via forms
- If you converted tags to fields, verify those work for access control
✅ Forms & Automations
- Test each opt-in form submission
- Verify form data reaches ActiveCampaign
- Test order form purchases
- Confirm post-purchase automations fire in ActiveCampaign
- Test auto-login after purchase
- Test site tracking (if enabled)
✅ Subscriptions & Payments
- Verify active subscriptions linked correctly
- Test new purchase flow end-to-end
- Test subscription cancellation
- 🚨 CRITICAL: Test failed payment handling
- Verify member access aligns with payment status
The #1 issue with CRM switches is Contact ID mismatches. Test this:
- Pick a random member from WordPress
- Check their user meta for “activecampaign_contact_id”
- Search ActiveCampaign for that Contact ID
- Verify it’s the correct contact
- Test that tagging them in ActiveCampaign grants access in AccessAlly
If Contact IDs are wrong, members will lose access even if they have correct tags.
Step 17: Monitor for 7 Days
Don’t cancel Kit immediately. Monitor for issues during the first week:
- Day 1-2: Watch for immediate access issues, login problems
- Day 3-5: Monitor form submissions and automation triggers
- Day 6-7: Check subscription/payment handling
What to monitor:
- Member support tickets (migration-related confusion?)
- Login errors or access issues
- Payment failures or subscription problems
- Form submission success rates
- Automation trigger verification
- Email engagement rates (compare to Kit baseline)
Step 18: Clean Up
Once migration is stable (7+ days):
- Disconnect Kit from AccessAlly (remove API keys)
- Deactivate Migration Wizard plugin
- Export final Kit data for records
- Downgrade or cancel Kit (keep 30 days as safety net)
- Remove staging site’s 2-site exception (contact AccessAlly support)
- Update member documentation with any CRM-related changes
- Explore new ActiveCampaign features (site tracking, lead scoring, etc.)
Troubleshooting Common Issues
Issue 1: Contact IDs Not Linking (CRITICAL)
Symptoms: Members have correct tags in ActiveCampaign but can’t access content
Causes:
- Contact ID not stored in WordPress user meta during import
- Contact ID stored under wrong meta key
- WordPress user exists but ActiveCampaign contact doesn’t
Solution:
- Check WordPress user meta for “activecampaign_contact_id” or “contact_id”
- If missing, re-import the user via Migration Wizard with “Update existing users” checked
- Verify the Contact ID in ActiveCampaign matches the stored ID
- Test access after fixing Contact ID
Issue 2: Tags Not Controlling Access
Symptoms: Members have tags in ActiveCampaign but content access doesn’t match
Causes:
- Tag names in AccessAlly don’t match ActiveCampaign exactly (case-sensitive)
- Access rules reference old Kit tag names with different spelling
- Contact ID linking issue (see Issue 1)
Solution:
- Go to AccessAlly module or page protection settings
- Check “Who Can Access” tag names
- Compare to exact tag names in ActiveCampaign (case-sensitive!)
- Update tag names in AccessAlly to match ActiveCampaign
- Test access again
Issue 3: Custom Fields Data Missing or Wrong Type
Symptoms: Custom field data didn’t migrate or has wrong data type
Causes:
- Custom fields not created in ActiveCampaign before import
- CSV column names don’t match ActiveCampaign field names
- Field type mismatch (text in Kit, number in ActiveCampaign)
Solution:
- Verify custom fields exist in ActiveCampaign → Lists → Manage Fields
- Check field types match your data
- Update CSV with correct ActiveCampaign field names
- Re-import with “Update existing users” checked
- Check a few contacts to verify data populated correctly
Issue 4: Automations Not Triggering
Symptoms: ActiveCampaign automations not firing when expected
Causes:
- Automation not activated
- Trigger conditions not met
- Contacts already entered automation (can’t re-enter by default)
- Tag names in automation don’t match actual tags
Solution:
- Go to ActiveCampaign → Automations
- Check automation is “Active” (not draft)
- Review trigger conditions
- Test with a fresh test contact
- Check automation logs for errors
- Verify tag names match exactly (case-sensitive)
Issue 5: Forms Not Submitting to ActiveCampaign
Symptoms: Form submissions not creating/updating contacts in ActiveCampaign
Causes:
- AccessAlly not properly connected to ActiveCampaign
- Form configured for old Kit connection
- ActiveCampaign API rate limit reached
- Form fields don’t match ActiveCampaign field names
Solution:
- Verify AccessAlly → ActiveCampaign connection still active
- Edit form settings in AccessAlly
- Ensure form is set to submit to ActiveCampaign (not Kit)
- Check field mappings match ActiveCampaign field names
- Test form submission and verify in ActiveCampaign
Issue 6: Site Tracking Not Working
Symptoms: ActiveCampaign not tracking site visits or page views
Causes:
- Site tracking code not installed
- Tracking disabled in ActiveCampaign settings
- Cookie consent blocking tracking
- JavaScript errors preventing tracking
Solution:
- Go to ActiveCampaign → Settings → Tracking
- Copy site tracking code
- Install code in WordPress header (use Insert Headers and Footers plugin or theme settings)
- Enable site tracking in ActiveCampaign
- Test by visiting your site while logged into a contact
- Check ActiveCampaign contact record for site activity
Migration Timeline & Downtime
Total Time Estimate: 5-7 hours (plus 2-3 hours testing)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup |
• ActiveCampaign account setup • Email deliverability config • Data export from Kit • Tag/field mapping • CSV preparation • Staging site connection |
2-3 hours |
| Migration Execution |
• Contact import via Migration Wizard • Tag verification • Subscription linking • Sequence → automation rebuild • Form migration |
2-3 hours |
| Testing & Go-Live |
• Staging testing • Live site switch • Post-migration verification • Contact ID testing • Monitoring setup |
2-3 hours |
Recommended Downtime Window: 2-3 hours on a weekend or low-traffic period for the live site switch
Leveraging Your New ActiveCampaign Features
Now that you’ve upgraded from Kit to ActiveCampaign, take advantage of features you didn’t have before:
1. Site Tracking
Track which pages members visit and trigger automations based on behavior:
- Send follow-up emails when members visit specific sales pages
- Tag members based on content they consume
- Create segments of engaged vs. inactive members
2. Lead Scoring
Automatically score leads based on engagement:
- Assign points for email opens, link clicks, page visits
- Identify your most engaged members
- Trigger VIP automations for high-score contacts
3. Advanced Segmentation
Create complex segments using custom fields and behavior:
- Segment by membership level + engagement score
- Find members who haven’t logged in for 30 days
- Identify high-value customers for upsell campaigns
4. CRM & Deals
If you sell high-ticket items, use ActiveCampaign’s built-in CRM:
- Track sales pipeline and deals
- Assign tasks to team members
- Automate deal stage changes based on behavior
5. Predictive Sending
Let ActiveCampaign optimize email send times:
- AC learns when each contact is most likely to open emails
- Automatically sends at optimal times for each person
- Improves open rates without manual work
Need Help?
Migration Support:
- Review the Migration Support Policy
- For CRM switch assistance: Contact AccessAlly support
- Consider professional migration help for large or complex sites
Related Guides:
- Pre-Migration Checklist
- Post-Migration Verification
- Data Mapping Reference
- How to Migrate CRMs and Keep The Same AccessAlly Site
- Preserving Subscriptions During Migration
- Keap → ActiveCampaign Migration (for comparison)
- ✅ All contacts imported to ActiveCampaign with correct data
- ✅ Contact IDs properly linked in WordPress
- ✅ Tags preserved (or converted to custom fields)
- ✅ Custom fields populated correctly
- ✅ Member login working
- ✅ Content access rules working correctly
- ✅ Tag-based and/or custom field-based access tested and verified
- ✅ Subscriptions linked and tested
- ✅ Failed payment handling verified
- ✅ Forms submitting to ActiveCampaign
- ✅ Sequences rebuilt as automations and tested
- ✅ Site tracking enabled (optional but recommended)
- ✅ No critical support tickets after 7 days
- ✅ Email engagement rates equal or better than Kit baseline