ARTICLE CONTENT:
Complete Guide: Migrating from Kit (ConvertKit) to Drip (Same AccessAlly Site)
⏱️ Estimated Time: 5-7 hours (plus testing)
🛠️ Technical Level: Intermediate
💰 Cost Impact: Similar pricing tiers ($25-$199/mo Kit vs $39-$1,599/mo Drip)
Why Migrate from Kit to Drip?
This is a lateral move between two simple email marketing tools. Both are lighter than full CRMs like Keap or Ontraport.
Common reasons for migrating from Kit to Drip:
- E-commerce Focus: Drip is built for e-commerce automation (product recommendations, cart abandonment, purchase behavior)
- Product-Based Business: You sell physical or digital products and need stronger e-commerce features
- Visual Workflow Builder: Drip’s visual automation builder may be more intuitive than Kit’s sequences
- Advanced Segmentation: Drip offers more sophisticated behavioral segmentation
- Revenue Tracking: Built-in revenue tracking per subscriber
Feature Trade-off: Kit vs Drip
| Feature | Kit (ConvertKit) | Drip |
|---|---|---|
| Best For | Creators, newsletters, courses | E-commerce, product businesses |
| Custom Fields | Limited (basic text fields) | Limited (all text, no validation) |
| Tags | Flat structure | Flat structure |
| Automation | Sequences (linear) | Visual workflows (branching) |
| E-commerce | Basic (via integrations) | Advanced (native features) |
| Landing Pages | ✅ Built-in creator tools | ❌ Limited |
| Pricing (mid-tier) | $66/mo (3,000 contacts) | $89/mo (3,000 contacts) |
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Kit (ConvertKit) admin access (for data export)
- Drip 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
- Data mapping spreadsheet (contacts, tags, custom fields, sequences)
- 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 Drip 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 Drip Account
If you haven’t already set up Drip:
- Sign up for Drip (choose appropriate tier for your contact count)
- Complete basic account setup (business info, timezone, sender details)
- Configure email deliverability (SPF, DKIM records for your domain)
- Test email sending (send yourself a test broadcast)
- Create your first workflow and test it
- Set up tracking code on your website (optional but recommended)
Step 2: Export Your Data from Kit
- Log into your Kit (ConvertKit) account
- Go to Subscribers → Export
- Select “All Subscribers”
- Choose format: CSV
- Include all available fields (email, name, tags, custom fields)
- Click Export
- Download the CSV file
What’s included in the Kit export:
- Email addresses
- First names (Kit stores “first_name” only, no separate last name by default)
- Custom fields (if you’ve created any)
- Tags (flat structure, no categories)
- Subscription status (subscribed/unsubscribed)
- Subscriber scores (if used)
What’s NOT included:
- Sequences (must be rebuilt as Drip workflows)
- Forms (must be recreated)
- Landing pages (must be recreated or use Drip alternatives)
- Broadcast email history
- Segment definitions
Step 3: Map Your Kit Data to Drip
Create a data mapping spreadsheet. Use the Data Mapping Reference Guide for complete details.
| Kit Field | Drip Field | Notes |
|---|---|---|
| Required field | ||
| First Name | first_name | Direct mapping |
| Last Name | last_name | If collected separately |
| Tags | tags | Both use flat tag structure (simple migration) |
| Custom Fields | custom_fields | ALL stored as text in Drip (no validation) |
| Subscriber Score | lead_score | Optional – may not map directly |
| Status (subscribed/unsubscribed) | status | Standard field |
Step 4: Recreate Your Tags in Drip
- Make a list of all tags from your Kit export
- Go to Drip → Subscribers → Tags
- Create each tag in Drip
- Use the exact same tag names for easier mapping
- Tag names are case-sensitive in both systems
Tag migration notes:
- Both Kit and Drip use simple, flat tag structures (no categories or hierarchies)
- Tag names can be identical between systems
- No automatic prepending or renaming (unlike Keap → ActiveCampaign)
- Clean up unused tags during this process
Step 5: Create Custom Fields in Drip
- List all custom fields from Kit
- Go to Drip → Settings → Custom Fields
- Create each custom field in Drip
- Note the exact field names for CSV import
Kit → Drip custom field considerations:
- Kit text fields → Drip text fields (direct mapping)
- Kit date fields → Drip text fields (format as “YYYY-MM-DD” string)
- Kit number fields → Drip text fields (store as string)
- Kit URL fields → Drip text fields (direct mapping)
Step 6: Connect Drip to AccessAlly (Staging Site First)
- On your STAGING site, go to AccessAlly → Settings → General
- Under “CRM Integration,” change from Kit to Drip
- Enter your Drip API credentials:
- Account ID (found in Drip → Settings → Account → General Info)
- API Token (found in Drip → Settings → User Settings → API Token)
- Click Save and Test Connection
- Verify the connection is successful
Step 7: Prepare Your CSV for Migration Wizard
The AccessAlly Migration Wizard expects a specific format. Transform your Kit export.
Required columns for AccessAlly + Drip import:
Email– Email address (required)First Name– First nameLast Name– Last name (if available)Tags– Comma-separated list of Drip tag namescustom_field_name– Custom field columns (use exact Drip field names)
CSV transformation steps:
- Open your Kit export in Excel or Google Sheets
- Rename columns to match Drip format (usually minimal changes needed)
- Ensure tag column contains comma-separated tags in one cell
- For custom fields, rename columns to exact Drip field names
- Remove unsubscribed contacts (or keep with “unsubscribed” status)
- Save as new CSV: “kit-to-drip-import.csv”
Phase 2: Migration Execution (1-2 hours)
Step 8: Download and Activate the Migration Wizard Plugin
- Go to AccessAlly → Utilities
- Find “Migration Wizard Plugin”
- Click Download to get the plugin ZIP file
- Go to WordPress → Plugins → Add New → Upload Plugin
- Upload the Migration Wizard ZIP file
- Click Activate Plugin
Full instructions: Using the AccessAlly Migration Wizard Plugin
Step 9: Import Your Contacts via Migration Wizard
- On your STAGING site, go to AccessAlly → Migration Wizard
- Click “Import from CSV”
- Upload your prepared CSV file
- Map CSV columns to Drip fields (should auto-detect if named correctly)
- Choose import options:
- Update existing users: Check if members may already exist in WordPress
- Create users in CRM: Check (creates contacts in Drip)
- Apply tags: Check (applies tags from CSV)
- Send welcome email: UNCHECK (email members separately after testing)
- Click “Start Import”
What happens during import:
- WordPress user accounts created (if they don’t exist)
- Contacts created in Drip
- Tags applied in Drip
- Contact ID from Drip stored in WordPress user meta
- This Contact ID linking is CRITICAL for access control
Monitor the import progress:
- Watch the progress bar in Migration Wizard
- Check for error messages (common: duplicate emails, invalid email formats)
- Save the import log for troubleshooting
Step 10: Update AccessAlly Tags and Access Rules
If you used identical tag names, this step should be minimal. If you changed any tag names, update them in AccessAlly.
- Go through each AccessAlly Module
- Check “Who Can Access” settings
- Verify tag names match Drip tags exactly (case-sensitive)
- Update any tag-based access rules if names changed
- Update membership levels to link to correct Drip tags
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, 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 Drip Workflows
Kit sequences must be rebuilt as Drip workflows. Drip’s visual workflow builder is more powerful but requires manual recreation.
Kit → Drip automation mapping:
| Kit Feature | Drip Equivalent | Complexity |
|---|---|---|
| Email Sequence | Workflow with email actions | Simple (linear flow) |
| Tag trigger | Workflow trigger (tag applied) | Simple (direct mapping) |
| Wait delay | Wait action in workflow | Simple (same concept) |
| Link click trigger | Link clicked trigger | Simple (direct mapping) |
| Add tag action | Apply tag action | Simple (direct mapping) |
| Conditional logic | Decision tree (branching) | Medium (more powerful in Drip) |
Common Kit sequences to rebuild:
- Welcome sequences: Use Drip workflows with email actions and wait steps
- Tag-based sequences: Use Drip tag triggers
- Purchase follow-ups: Set up e-commerce workflows in Drip
- Re-engagement sequences: Use Drip’s behavioral triggers
Step 13: Migrate Your Forms
Kit forms need to be recreated as Drip forms or AccessAlly forms.
Option 1: Use Drip Forms
- Create forms in Drip → Forms
- Embed Drip form code on your WordPress pages
- Style forms to match your site
- Set up tag assignments and workflow triggers
Option 2: Use AccessAlly Forms (Recommended)
- Create forms in AccessAlly → Opt-in Forms or Order Forms
- Configure to submit to Drip
- Better integration with WordPress/AccessAlly features
- More control over styling and behavior
- Replace Kit form embeds with AccessAlly form shortcodes
Phase 3: Post-Migration Verification and Go-Live (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
- ✅ Forms submit to Drip correctly
- ✅ Purchase flow works end-to-end
- ✅ Subscription linking works
- ✅ Failed payment handling tested
- ✅ Workflows trigger correctly
- ✅ Email sending works
✅ Contact Data Integrity
- Verify total contact count matches Kit export
- Check 10 random contacts in Drip for complete data
- Verify Contact IDs properly stored in WordPress
- Check for duplicate contacts
✅ Contact ID Verification (CRITICAL)
The #1 issue with CRM switches is Contact ID mismatches. Test this:
- Pick a random member from WordPress
- Check their user meta for “drip_contact_id” or “contact_id”
- Search Drip for that Contact ID
- Verify it’s the correct contact
- Test that tagging them in Drip grants access in AccessAlly
If Contact IDs are wrong, members will lose access even if they have correct tags.
✅ 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
✅ Tags & Custom Fields
- Verify tags migrated correctly (sample 10 contacts)
- Check custom fields populated in Drip
- Test tag-based access rules
- Verify tag assignment via forms
✅ Forms & Workflows
- Test each opt-in form submission
- Verify form data reaches Drip
- Test order form purchases (use Stripe test mode)
- Confirm post-purchase workflows fire in Drip
- Test auto-login after purchase (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
Step 15: Switch Live Site to Drip
When staging tests pass, switch your live site:
- Schedule downtime (2-3 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 Drip (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-2 hours
Step 16: Complete Post-Migration Checks
Work through the complete Post-Migration Verification Checklist.
Step 17: Monitor for 7 Days
Don’t cancel your Kit account 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 workflow 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
- Workflow trigger verification
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
Troubleshooting Common Issues
Issue 1: Contact IDs Not Linking (CRITICAL)
Symptoms: Members have correct tags in Drip 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 Drip contact doesn’t
Solution:
- Check WordPress user meta for “drip_contact_id” or “contact_id”
- If missing, re-import the user via Migration Wizard with “Update existing users” checked
- Verify the Contact ID in Drip matches the stored ID
- Test access after fixing Contact ID
Issue 2: Tags Not Controlling Access
Symptoms: Members have tags in Drip but content access doesn’t match
Causes:
- Tag names in AccessAlly don’t match Drip exactly (case-sensitive)
- Access rules reference old Kit tag names that were renamed
- 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 Drip (case-sensitive!)
- Update tag names in AccessAlly to match Drip
- Test access again
Issue 3: Custom Fields Data Missing or Wrong Type
Symptoms: Custom field data didn’t migrate from Kit to Drip, or displays incorrectly
Causes:
- Custom fields not created in Drip before import
- CSV column names don’t match Drip field names
- Field type mismatch (Drip stores everything as text)
Solution:
- Verify custom fields exist in Drip
- Note exact field names
- Update CSV with correct Drip field names as column headers
- For date/number fields, format as strings (e.g., “2025-01-15” for dates)
- Re-import with “Update existing users” checked
- Check a few contacts to verify data populated
Issue 4: Workflows Not Triggering
Symptoms: Drip workflows not firing when expected (e.g., after form submission or tag application)
Causes:
- Workflow not activated (still in draft mode)
- Trigger conditions don’t match (wrong tag name, wrong event)
- Workflow filters excluding contacts
- API delays (workflows may take 1-5 minutes to trigger)
Solution:
- Check workflow status in Drip (must be “Active”)
- Review trigger settings (exact tag name, event type)
- Check workflow filters (subscriber must meet all conditions)
- Test with a test subscriber and wait 5 minutes
- Check Drip activity log for the subscriber
Issue 5: Forms Not Submitting to Drip
Symptoms: Form submissions not creating/updating contacts in Drip
Causes:
- AccessAlly not properly connected to Drip
- Form configured for old Kit connection
- Drip API rate limit reached
- Form fields don’t match Drip field names
Solution:
- Verify AccessAlly → Drip connection still active
- Edit form settings in AccessAlly
- Ensure form is set to submit to Drip (not Kit)
- Check field mappings match Drip field names
- Test form submission and verify in Drip within 2-3 minutes
Issue 6: Subscription Payments Not Linked
Symptoms: Active subscribers showing as “no subscription” in AccessAlly
Causes:
- Subscription IDs not properly transferred during migration
- Email address mismatch between Stripe and WordPress
- Subscription metadata not stored correctly
Solution:
- Export active subscriptions from Stripe
- Match subscription IDs to WordPress user emails
- Manually update AccessAlly subscription data for each user
- Test failed payment handling for each subscription
Detailed guide: Preserving Subscriptions During Migration
Migration Timeline & Downtime
Total Time Estimate: 5-7 hours (plus 2-3 hours testing)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup |
– Set up Drip account – Export Kit data – Map data fields – Recreate tags and custom fields – Connect Drip to staging site – Prepare CSV for import |
2-3 hours (No downtime) |
| Migration Execution |
– Install Migration Wizard – Import contacts to Drip – Update AccessAlly tag references – Link payment subscriptions – Rebuild sequences as workflows – Recreate forms |
1-2 hours (Staging only) |
| Testing & Verification |
– Test member login and access – Verify Contact ID linking – Test forms and workflows – Check subscription handling – Test failed payment scenarios |
2-3 hours (Staging only) |
| Go-Live |
– Schedule downtime window – Switch live site to Drip – Import any new contacts – Verify access and tags – Test member logins – Monitor for issues |
2-3 hours (⚠️ DOWNTIME REQUIRED) |
| Post-Migration Monitoring |
– Monitor support tickets – Watch form submissions – Check workflow triggers – Verify payment processing – Clean up after 7 days |
7 days (No downtime) |
Recommended Downtime Window: 2-3 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 tag-based access rules across many modules
- You can’t afford 2-3 hours of downtime
- You’re not comfortable with manual data transformation
- You need help rebuilding complex sequences as workflows
Migration Support:
- Review the Migration Support Policy
- For CRM switch assistance: Contact AccessAlly support
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 (if considering going CRM-less instead)
- ✅ All contacts imported to Drip with correct data
- ✅ Contact IDs properly linked in WordPress
- ✅ Tags migrated correctly (flat structure, straightforward)
- ✅ Custom fields preserved (all as text)
- ✅ 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 Drip
- ✅ Sequences rebuilt as Drip workflows
- ✅ Workflows triggering correctly
- ✅ No critical support tickets after 7 days