ARTICLE CONTENT:
Complete Guide: Migrating from Drip to ActiveCampaign (Same AccessAlly Site)
⏱️ Estimated Time: 5-7 hours (plus testing)
🛠️ Technical Level: Intermediate
💰 Cost Impact: ActiveCampaign typically costs more than Drip ($29-$149/mo vs $39-$99/mo for similar list sizes)
✅ Advantage: Both use flat tag structures (no categories) – easier than Keap migrations
Why Migrate from Drip to ActiveCampaign?
Common reasons for migrating from Drip to ActiveCampaign while keeping your AccessAlly site:
- Broader Marketing Automation: ActiveCampaign offers more comprehensive marketing automation beyond e-commerce
- Better Email Deliverability: ActiveCampaign has a stronger reputation for inbox placement
- Advanced CRM Features: ActiveCampaign includes built-in CRM, deals, and sales pipelines
- More Integrations: ActiveCampaign integrates with 870+ platforms vs. Drip’s 100+
- Site Tracking: More robust website tracking and behavioral automation
- Easier Automation Builder: Visual automation builder is more intuitive than Drip workflows
- Cost: ActiveCampaign can be more expensive for larger lists
- E-commerce Focus: Drip specializes in e-commerce; ensure ActiveCampaign’s e-commerce features meet your needs
- Learning Curve: Budget time to learn ActiveCampaign’s interface and features
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Drip admin access (for data export)
- ActiveCampaign account (must be set up and configured first)
- AccessAlly license that supports CRM switching
- Access to your payment gateway (Stripe or PayPal)
- Staging site for testing (recommended for all CRM switches)
📋 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 Drip contact data
- Audit of your current member count, tags, and custom fields
- Data mapping spreadsheet (contacts, tags, custom fields, workflows)
- 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 settings (SPF, DKIM, domain authentication)
- Test email sending (send yourself a test campaign to verify deliverability)
- Create your first test form and automation
- Familiarize yourself with the automation builder interface
Step 2: Export Your Data from Drip
- Log into your Drip account
- Go to Settings → Account
- Click “Export All Subscribers”
- Drip will email you a CSV file (may take 15-30 minutes for large lists)
- Download and open the CSV file to review contents
- Note the column structure for data mapping
What’s included in the Drip export:
- Email addresses
- First and last names
- Custom fields (all stored as text in Drip)
- Tags (flat structure, no categories)
- Subscription status (active/unsubscribed)
- Opt-in timestamps
- Custom event data (if applicable)
What’s NOT included:
- Workflow automations (must be rebuilt in ActiveCampaign)
- Email campaign history
- Email templates
- Form designs
- Visual workflow designs
Step 3: Map Your Drip Data to ActiveCampaign
Create a comprehensive data mapping spreadsheet. Use the Data Mapping Reference Guide for complete field mappings.
| Drip Field | ActiveCampaign Field | Notes |
|---|---|---|
| Required field | ||
| First Name | first_name | Standard field |
| Last Name | last_name | Standard field |
| Phone | phone | Standard field |
| Tags | Tags | Both use flat tag structure (easy mapping!) |
| Custom Fields (text) | Custom Fields (typed) | CRITICAL: AC validates field types |
| Status (active/unsubscribed) | Subscription status | Preserve unsubscribe status |
Drip stores ALL custom fields as text with no type validation. ActiveCampaign has typed fields (text, date, number, etc.) with validation. This means:
- A Drip field with “2024-01-15” as text must become a DATE field in ActiveCampaign
- A Drip field with “1500” as text must become a NUMBER field in ActiveCampaign
- Invalid data (text in a number field) will cause import errors
- You must clean your data BEFORE importing to ActiveCampaign
Step 4: Create Custom Fields in ActiveCampaign
- List all custom fields from your Drip export
- For each field, determine the correct field type:
- Text → Text or Textarea
- Dates (YYYY-MM-DD) → Date
- Numbers (prices, counts) → Number
- Yes/No values → Checkbox or Dropdown
- Go to ActiveCampaign → Lists → Manage Fields
- Click “Add Field” for each custom field
- Select the correct field type and create the field
- Note the field name for CSV mapping
Drip → ActiveCampaign field type conversion guide:
| Drip Data Type | Example Value | ActiveCampaign Field Type | Validation Required |
|---|---|---|---|
| Text (all) | “Premium Member” | Text | None |
| Text (date format) | “2024-01-15” | Date | Must be valid date format |
| Text (number format) | “1500” or “$1,500” | Number | Remove currency symbols and commas |
| Text (yes/no) | “Yes” or “true” | Checkbox | Convert to true/false |
| Text (options) | “Basic”, “Pro”, “Enterprise” | Dropdown | Must match dropdown options |
Step 5: Recreate Your Tags in ActiveCampaign
- Make a list of all tags from your Drip export
- Go to ActiveCampaign → Lists → Tags
- Create each tag in ActiveCampaign
- Use the exact same tag names for easier mapping (case-sensitive!)
- Clean up unused tags during this process
Both Drip and ActiveCampaign use flat tag structures (no categories). This makes tag migration straightforward compared to Keap → ActiveCampaign, which requires extensive tag remapping due to category prepending.
- Drip: “Gold Member” tag
- ActiveCampaign: “Gold Member” tag (exact same!)
- No category prefixes to deal with
Step 6: Clean Your CSV Data for ActiveCampaign
Transform your Drip export to ensure data type compatibility with ActiveCampaign:
- Open your Drip export in Excel or Google Sheets
- For each custom field column:
- Date fields: Ensure format is YYYY-MM-DD (e.g., “2024-01-15”)
- Number fields: Remove currency symbols ($), commas, and text (e.g., “$1,500.00” → “1500”)
- Checkbox fields: Convert to “1” (checked) or “0” (unchecked)
- Dropdown fields: Ensure values exactly match ActiveCampaign dropdown options
- Rename column headers to match ActiveCampaign field names
- Ensure tags are comma-separated in one column
- Remove unsubscribed contacts OR preserve them with proper status
- Save as new CSV: “drip-to-activecampaign-import.csv”
- Dates: “Jan 15, 2024” won’t import as a date. Convert to “2024-01-15”
- Prices: “$1,500.00” won’t import as a number. Convert to “1500”
- Phone numbers: Remove formatting for consistency (e.g., “(555) 123-4567” → “5551234567”)
- Empty values: Blank cells are okay, but “N/A” or “null” text will cause errors
Step 7: Connect ActiveCampaign to AccessAlly (Staging Site First)
- On your STAGING site, go to AccessAlly → Settings → General
- Under “CRM Integration,” change from Drip 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 before proceeding
Phase 2: Migration Execution (2-3 hours)
Step 8: 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 cleaned 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)
- Send welcome email: UNCHECK (you’ll email members separately after migration)
- 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 (with type validation)
- Contact ID from ActiveCampaign stored in WordPress user meta
- This Contact ID linking is CRITICAL for access control
Step 9: Verify Contact ID Linking
Contact ID linking is the #1 cause of access issues in CRM migrations. If Contact IDs don’t link correctly, members lose access even if they have correct tags.
How to verify Contact ID linking:
- Pick 5-10 random members from your import
- In WordPress, go to Users and edit each user
- Scroll to AccessAlly user meta section
- Look for “activecampaign_contact_id” or “contact_id” field
- Copy the Contact ID value
- Go to ActiveCampaign → Contacts
- Search for that Contact ID
- Verify it matches the correct contact (same email address)
- Check that the contact has correct tags in ActiveCampaign
- Test that member can access protected content
If Contact IDs are missing or wrong:
- Re-run the Migration Wizard with “Update existing users” checked
- Verify ActiveCampaign API connection is active
- Check Migration Wizard logs for errors during import
- Contact AccessAlly support if issues persist
Step 10: Update AccessAlly Tags and Access Rules
AccessAlly stores tag names from your old CRM. After switching to ActiveCampaign, verify these still match:
- Go through each AccessAlly Module
- Check “Who Can Access” settings
- Verify tag names exactly match ActiveCampaign tags (case-sensitive!)
- Update any tag-based access rules if tag names changed
- Update membership levels to link to correct ActiveCampaign tags
Critical areas to check:
- Module access rules
- Page protection settings
- Order form tag assignments
- Email wizard tag triggers
- Automation trigger rules
- Membership level definitions
Step 11: Link Payment Gateway Subscriptions
If you have paid members with active subscriptions, 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 in user meta
- Test that failed payments will cancel access
Detailed guide: Preserving Subscriptions During Migration
Step 12: Rebuild Your Automations in ActiveCampaign
Drip workflows cannot be automatically migrated. You must rebuild them in ActiveCampaign.
Common Drip workflows to rebuild:
- Welcome sequences: Use ActiveCampaign automations
- Tag-based workflows: Use ActiveCampaign automation triggers
- Purchase follow-ups: Set up post-purchase automations
- Re-engagement campaigns: Use ActiveCampaign automations with conditional content
- Abandoned cart sequences: Rebuild using ActiveCampaign’s e-commerce automation
Drip → ActiveCampaign automation element mapping:
| Drip Element | ActiveCampaign Equivalent |
|---|---|
| Workflow | Automation |
| Trigger (tag applied) | Starts: Tag is added |
| Delay | Wait |
| Send email | Send email |
| Decision (if/then) | If/Else |
| Apply tag | Add tag |
| Remove tag | Remove tag |
| Custom field update | Update contact field |
| Unsubscribe | Unsubscribe from list |
| Event trigger | Starts: Site tracking event |
Step 13: Update Forms and Opt-ins
Drip forms need to be replaced with ActiveCampaign forms OR AccessAlly forms that submit to ActiveCampaign.
Option 1: Use ActiveCampaign Native Forms
- Create forms in ActiveCampaign → Forms
- Embed ActiveCampaign form code on your WordPress pages
- Style forms to match your site design
- Set up tag assignments and automation triggers
- Enable double opt-in if required for compliance
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 maintain within WordPress admin
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 for multiple member types
- ✅ Content access rules work correctly
- ✅ Tags control access properly (test each membership level)
- ✅ Contact ID linking verified for sample members
- ✅ Forms submit to ActiveCampaign successfully
- ✅ Purchase flow works end-to-end (use test mode)
- ✅ Subscription linking works correctly
- ✅ Failed payment handling tested
- ✅ Automations trigger correctly
- ✅ Email sending works (test deliverability)
- ✅ Custom fields populate correctly with proper types
Step 15: Switch Live Site to ActiveCampaign
When staging tests pass completely, switch your live site:
- Schedule downtime (2-4 hour window recommended)
- Announce downtime to members 48 hours in advance
- Put site in maintenance mode
- Create fresh WordPress backup (full database and files)
- Export final Drip data (capture any new contacts since staging setup)
- Switch AccessAlly to ActiveCampaign (same steps as staging)
- Import any new contacts from final Drip export
- Verify access rules and tags
- Test login for 3-5 members (different membership levels)
- Verify Contact ID linking for test members
- Take site out of maintenance mode
- Monitor closely for 1-2 hours
Step 16: Complete Post-Migration Checks
Work through the complete Post-Migration Verification Checklist. Key items for Drip → ActiveCampaign:
✅ Contact Data Integrity
- Verify total contact count matches Drip export
- Check 10 random contacts in ActiveCampaign for complete data
- Verify Contact IDs properly stored in WordPress user meta
- Check for duplicate contacts
- Verify unsubscribed contacts have correct status
✅ Access & Permissions
- Test login as multiple member types
- Verify access to protected content for each membership level
- Check tag-based access rules work correctly
- Test content unlocking based on tags
- Verify drip content (progressive release) works
✅ Tags & Custom Fields
- Verify tags migrated correctly (sample 10 contacts)
- Check custom fields populated in ActiveCampaign with correct types
- Test tag-based access rules
- Verify tag assignment via forms works
- Check that date fields display correctly (not as text)
- Verify number fields calculate correctly (not as text)
✅ Forms & Automations
- Test each opt-in form submission
- Verify form data reaches ActiveCampaign
- Test order form purchases (Stripe test mode)
- Confirm post-purchase automations fire in ActiveCampaign
- Test auto-login after purchase (if enabled)
- Verify automation triggers fire correctly
✅ 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
Test that failed payments correctly cancel member access. This is a security issue if not working.
- Create a test member with a test subscription (Stripe test mode)
- Simulate a failed payment in Stripe
- Verify AccessAlly removes member access
- Check that the subscription cancellation webhook fired correctly
- Ensure the member receives appropriate notification
Step 17: Monitor for 7 Days
Don’t cancel your Drip account immediately. Monitor for issues during the first week:
- Day 1-2: Watch for immediate issues (login problems, access errors)
- Day 3-5: Monitor form submissions and automation triggers
- Day 6-7: Check for subscription/payment issues
What to monitor:
- Member support tickets (any migration-related confusion?)
- Login errors or access issues
- Payment failures or subscription problems
- Form submission success rates
- Automation trigger verification (are welcome sequences firing?)
- Email deliverability (check spam rates)
Step 18: Clean Up
Once migration is stable (7+ days):
- Disconnect Drip from AccessAlly (remove API keys)
- Deactivate Migration Wizard plugin
- Export final Drip data for records
- Downgrade or cancel Drip (keep 30 days as safety net)
- Remove staging site’s 2-site exception (contact AccessAlly support)
- Update member documentation if needed
- Archive migration planning documents for future reference
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
- ActiveCampaign API connection broken during import
Solution:
- Check WordPress user meta for “activecampaign_contact_id” or “contact_id”
- If missing, verify ActiveCampaign connection is active
- 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: Custom Field Data Didn’t Import
Symptoms: Custom field data missing or showing as blank in ActiveCampaign
Causes:
- Custom fields not created in ActiveCampaign before import
- Field type mismatch (tried to import text into a number field)
- Invalid data format (e.g., “Jan 15” instead of “2024-01-15” for date field)
- CSV column names don’t match ActiveCampaign field names
Solution:
- Verify custom fields exist in ActiveCampaign with correct types
- Check CSV data format matches field type requirements
- Clean data in CSV (remove invalid characters, format dates correctly)
- Update CSV column headers to exactly match ActiveCampaign field names
- Re-import with “Update existing users” checked
- Check a few contacts to verify data populated correctly
Issue 3: 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 Drip connection
- ActiveCampaign API rate limit reached
- Form fields don’t match ActiveCampaign field names
- Required fields in ActiveCampaign not provided by form
Solution:
- Verify AccessAlly → ActiveCampaign connection still active
- Edit form settings in AccessAlly
- Ensure form is set to submit to ActiveCampaign (not Drip)
- Check field mappings match ActiveCampaign field names
- Test form submission and check ActiveCampaign for new contact
- Review ActiveCampaign API logs for error messages
Issue 4: Tags Work But Custom Field Access Doesn’t
Symptoms: Tag-based access works, but custom field-based access rules don’t
Causes:
- Custom field type changed from text (Drip) to typed field (ActiveCampaign)
- AccessAlly access rules comparing wrong data types
- Custom field values formatted differently in ActiveCampaign
Solution:
- Check custom field type in ActiveCampaign
- Verify AccessAlly access rule is comparing correct data type
- For date fields, ensure rule uses date comparison (not text)
- For number fields, ensure rule uses numeric comparison
- Update access rules to match new field types
Issue 5: Automation Triggers Not Firing
Symptoms: ActiveCampaign automations don’t trigger when tags are applied
Causes:
- Automation trigger set for wrong tag name
- Automation is inactive or paused
- Contact already went through automation (check “run once” vs “run multiple times”)
- Tag applied but automation trigger condition not met
Solution:
- Go to ActiveCampaign → Automations
- Check automation is active (not paused)
- Verify trigger conditions (exact tag name, case-sensitive)
- Check automation settings for “run once” vs “run multiple times”
- Test with a fresh test contact
- Review automation logs in ActiveCampaign
Issue 6: Members Getting Duplicate Emails
Symptoms: Members receiving the same email multiple times from ActiveCampaign
Causes:
- Duplicate contact records in ActiveCampaign
- Multiple automations triggering for same action
- Contact subscribed to multiple lists with same automation
- Migration Wizard ran multiple times
Solution:
- Search for duplicate email addresses in ActiveCampaign
- Merge or delete duplicate contacts
- Check ActiveCampaign → Automations for duplicate sequences
- Verify automation triggers aren’t firing multiple times
- Check contact’s automation history for clues
Migration Timeline & Downtime
Total Time Estimate: 5-7 hours (plus 2-3 hours testing)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup | ActiveCampaign account setup, data export, field mapping, CSV cleaning | 2-3 hours |
| Data Preparation | Create custom fields, clean data types, prepare CSV for import | 1-2 hours |
| Staging Import | Switch CRM on staging, import contacts, verify Contact ID linking | 1-2 hours |
| Automation Rebuild | Rebuild Drip workflows in ActiveCampaign automations | 2-3 hours |
| Form Migration | Replace Drip forms with ActiveCampaign or AccessAlly forms | 1 hour |
| Staging Testing | Test all access rules, forms, automations, payment handling | 2-3 hours |
| Live Site Switch | Switch live site to ActiveCampaign, import final contacts, verify | 1-2 hours |
Recommended Downtime Window: 2-4 hours on a weekend or low-traffic period for the live site switch
Need Help?
Consider professional migration assistance if:
- You have 1,000+ active members
- You have complex custom field types that need careful migration
- You have complex tag-based access rules across many modules
- You can’t afford downtime or access issues
- You’re not comfortable cleaning data types for ActiveCampaign validation
- You have extensive Drip workflows that need rebuilding
Migration Support:
- Review the Migration Support Policy to understand what support is available
- 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
- Drip → AccessAlly Managed Migration (alternative path)
- ✅ All contacts imported to ActiveCampaign with correct data
- ✅ Contact IDs properly linked in WordPress
- ✅ Custom fields migrated with correct types (not all as text)
- ✅ Tags preserved (flat structure advantage!)
- ✅ Member login working
- ✅ Content access rules working correctly
- ✅ Tag-based access tested and verified
- ✅ Subscriptions linked and tested
- ✅ Failed payment handling verified
- ✅ Forms submitting to ActiveCampaign
- ✅ Core automations rebuilt and tested
- ✅ Email deliverability tested (inbox, not spam)
- ✅ No critical support tickets after 7 days