1. Home
  2. Migrations
  3. Migrating from Ontraport to Keap

Migrating from Ontraport to Keap

ARTICLE CONTENT:

Complete Guide: Migrating from Ontraport to Keap (Same AccessAlly Site)

📊 Migration Complexity: MEDIUM-HIGH
⏱️ Estimated Time: 7-10 hours (plus testing)
🛠️ Technical Level: Intermediate-Advanced
💰 Cost Impact: Keap typically costs more than Ontraport ($299-$599/mo vs $79-$497/mo)
⚠️ Key Challenge: Ontraport field IDs → Keap custom fields, flat tags → tag categories

Why Migrate from Ontraport to Keap?

Common reasons for migrating from Ontraport to Keap:

  • Better Email Deliverability: Keap has a strong reputation for inbox placement
  • More Robust CRM Features: Keap’s sales pipeline and opportunity tracking are more advanced
  • Appointment Scheduling: Native appointment booking integrated with CRM
  • Ecosystem & Integrations: Keap has larger marketplace and integration ecosystem
  • Industry Reputation: Keap is well-established in coaching and service-based businesses
  • Team Collaboration: Better multi-user features for growing teams
⚠️ Important Consideration: Keap has a steeper learning curve than Ontraport. Budget time for team training. Keap’s pricing is also typically higher, especially at scale. Ensure the ROI justifies the switch.

What You’ll Need Before Starting

✅ Required Access & Accounts

  • WordPress admin access to your AccessAlly site
  • Ontraport admin access (for data export)
  • Keap account (must be set up and configured)
  • AccessAlly license that supports CRM switching
  • Access to your payment gateway (Stripe or PayPal)
  • Access to domain DNS settings (for email deliverability)

📋 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 Ontraport contact data
  • Audit of current member count, tags, and custom fields
  • Data mapping spreadsheet (contacts, tags, custom fields, automations)
  • Tag category structure planning (Ontraport flat tags → Keap categories)
  • Staging site setup for testing (CRITICAL for CRM switches)
  • Request 2-site exception from AccessAlly support
  • Downtime plan and member communication
🚨 CRITICAL: Request 2-Site Exception
AccessAlly licenses are typically limited to one live site. You MUST request a temporary 2-site exception from AccessAlly support before setting up Keap on your staging site. This lets you test the migration without breaking your live site.

Phase 1: Pre-Migration Setup (3-5 hours)

Step 1: Set Up Your Keap Account

If you haven’t already set up Keap:

  1. Sign up for Keap (choose appropriate tier for your contact count and email volume)
  2. Complete basic account setup (company info, timezone, sender details)
  3. Configure email deliverability (SPF, DKIM, DMARC records)
  4. Set up dedicated sending domain (e.g., mail.yourdomain.com)
  5. Test email sending (send yourself a test broadcast)
  6. Create your first tag category and tag
  7. Create a test form and automation
💡 Pro Tip: Don’t import ANY contacts into Keap yet. Complete all setup and configuration first, then import via AccessAlly Migration Wizard to ensure Contact ID linking works correctly.

Step 2: Export Your Data from Ontraport

  1. Log into your Ontraport account
  2. Go to Contacts → Search
  3. Create a search for “All Contacts”
  4. Click “Export”
  5. Select “All Fields” (include standard and custom fields)
  6. Include tags in export
  7. Download the CSV file
  8. Open in Excel or Google Sheets to review structure

What’s included in the Ontraport export:

  • Email addresses
  • First and last names
  • Phone numbers
  • Custom fields (identified by field IDs like “f1234”)
  • Tags (in a single column, comma-separated)
  • Contact scores (if used)
  • Subscription status

What’s NOT included:

  • Campaign workflows (must be rebuilt in Keap)
  • Sequences and automations (rebuild required)
  • Email campaign history
  • Landing page designs
  • Form designs
  • Deals and pipelines (if used)

Step 3: Map Ontraport Field IDs to Keap Custom Fields

Ontraport uses field IDs (f1234) for custom fields. You need to map these to Keap custom fields.

Create a field mapping spreadsheet:

Ontraport Field ID Field Label Field Type Keap Field Notes
email Email Email Email Required field
firstname First Name Text First Name Standard field
lastname Last Name Text Last Name Standard field
office_phone Phone Phone Phone 1 Standard field
f1234 Member Level Dropdown _MemberLevel Create custom field in Keap
f5678 Join Date Date _JoinDate Create custom field in Keap
⚠️ Ontraport Field ID Detective Work: Ontraport exports show field IDs (f1234) as column headers. To find what each field represents, go to Ontraport → Contacts → Contact Information and cross-reference field IDs with their labels.

Step 4: Plan Your Tag Category Structure (CRITICAL)

Ontraport uses flat tags. Keap organizes tags into categories. You must plan how to organize your tags.

Create a tag mapping spreadsheet:

Ontraport Tag Keap Category Keap Tag Used in AccessAlly?
Gold Member Membership Level Gold Member YES – Module access
Silver Member Membership Level Silver Member YES – Module access
Lead Magnet Downloaded Lead Source Lead Magnet NO – Marketing only
Email Engaged Engagement Email Engaged NO – Internal only

Recommended Keap tag categories:

  • Membership Level – Gold, Silver, Bronze, etc.
  • Lead Source – Where leads came from
  • Engagement – Behavioral tags (opened email, clicked link, etc.)
  • Status – Active, Paused, Cancelled, etc.
  • Interest – Topics they’re interested in
💡 Pro Tip: Keep tag names exactly the same between Ontraport and Keap for easier AccessAlly mapping. Only the category structure changes, not the actual tag names (if possible).

Step 5: Create Tag Categories and Tags in Keap

  1. Log into Keap
  2. Go to CRM → Tags
  3. Click “Create Category” for each category you planned
  4. Within each category, create the individual tags
  5. Use the exact same tag names as Ontraport (to match AccessAlly access rules)
  6. Document the category + tag combinations for CSV import later

Step 6: Create Custom Fields in Keap

  1. Go to CRM → Settings → Custom Fields
  2. Click “Add Custom Field”
  3. For each Ontraport custom field (f1234, etc.):
    • Create matching field in Keap
    • Match field type (text, number, date, dropdown)
    • Use a descriptive name (e.g., “_MemberLevel”)
    • Note the Keap field name for CSV mapping

Ontraport → Keap field type mapping:

  • Text → Text
  • Long Text → Text Area
  • Numeric → Number
  • Drop Down → Dropdown
  • Date → Date
  • Check Box → Yes/No

Step 7: Connect Keap to AccessAlly (Staging Site First)

🚨 DO THIS ON STAGING FIRST: Never switch CRMs on your live site without testing on staging. Request a 2-site exception from AccessAlly support before proceeding.
  1. On your STAGING site, go to AccessAlly → Settings → General
  2. Under “CRM Integration,” change from Ontraport to Keap
  3. Enter your Keap API credentials:
    • Get API key from Keap: Settings → Application → API → Legacy Keys
    • You’ll need both the API key and encrypted key
  4. Click Save and Test Connection
  5. Verify the connection is successful

Step 8: Prepare Your CSV for Migration Wizard

The AccessAlly Migration Wizard expects a specific format. Transform your Ontraport export.

Required columns for AccessAlly + Keap import:

  • Email – Email address (required)
  • First Name – First name
  • Last Name – Last name
  • Tags – Comma-separated list of Keap tag names (tag name only, not category)
  • Custom field columns using Keap field names (e.g., _MemberLevel)

CSV transformation steps:

  1. Open your Ontraport export in Excel or Google Sheets
  2. Rename standard field columns:
    • Ontraport “email” → Email
    • Ontraport “firstname” → First Name
    • Ontraport “lastname” → Last Name
  3. For Ontraport field IDs (f1234), rename to Keap custom field names (e.g., “_MemberLevel”)
  4. Rename tags column to Tags
  5. Ensure tags are comma-separated in one column (just tag names, not categories)
  6. Remove unsubscribed contacts (or handle separately with an “Unsubscribed” tag)
  7. Save as new CSV: “ontraport-to-keap-import.csv”
💡 Pro Tip: Test with a small batch (10-20 contacts) first to verify your CSV format, field mappings, and tag assignments are correct before importing your entire list.

Phase 2: Migration Execution (2-3 hours)

Step 9: Download and Activate Migration Wizard Plugin

  1. On your STAGING site, go to AccessAlly → Utilities
  2. Find “Migration Wizard Plugin”
  3. Click Download to get the plugin ZIP file
  4. Go to WordPress → Plugins → Add New → Upload Plugin
  5. Upload the Migration Wizard ZIP file
  6. Click Activate Plugin

Full instructions: Using the AccessAlly Migration Wizard Plugin

Step 10: Import Contacts via Migration Wizard

  1. On STAGING site, go to AccessAlly → Migration Wizard
  2. Click “Import from CSV”
  3. Upload your prepared CSV file
  4. Map CSV columns to Keap fields:
    • Map standard fields (Email, First Name, Last Name)
    • Map custom fields (ensure Keap field names match exactly)
    • Map Tags column
  5. Choose import options:
    • Update existing users: Check if members may already exist in WordPress
    • Create contacts in CRM: Check (creates contacts in Keap)
    • Add tags: Check (applies tags from CSV)
    • Send welcome email: UNCHECK (you’ll email members separately)
  6. Click “Start Import”

What happens during import:

  • WordPress user accounts created (if they don’t exist)
  • Contacts created in Keap
  • Tags applied in Keap (Migration Wizard should handle category assignment)
  • Custom fields populated in Keap
  • Contact ID from Keap stored in WordPress user meta (CRITICAL for access control)
⏱️ Time Estimate: Import processes ~100-200 contacts per minute. Monitor for errors. Check that tags are assigned to correct categories in Keap.

Step 11: Verify Tag Categories in Keap

After import, verify tags are in the correct categories:

  1. Log into Keap
  2. Go to CRM → Tags
  3. Check a few imported contacts
  4. Verify their tags are in the correct categories
  5. If tags are uncategorized, manually move them to correct categories
🚨 IMPORTANT: Keap tag categories affect automation triggers. If tags are in wrong categories, automations may not fire correctly. Verify category placement thoroughly.

Step 12: Update AccessAlly Tags and Access Rules

AccessAlly stores tag names from your old CRM. After switching to Keap, you need to verify these still match.

  1. Go through each AccessAlly Module or protected page
  2. Check “Who Can Access” settings
  3. Verify tag names still match Keap tags (should be same if you kept tag names consistent)
  4. Update any tag-based access rules if needed
  5. Update membership levels to link to correct Keap tags

Critical areas to check:

  • Module access rules
  • Page protection settings
  • Order form tag assignments
  • Email wizard tag triggers
  • Automation trigger rules
💡 Good News: If you kept tag NAMES the same (only category structure changed), AccessAlly access rules should continue working with minimal changes. AccessAlly references tag names, not categories.

If you have paid members with active subscriptions, ensure their Stripe/PayPal subscriptions are properly linked.

  1. Export active subscriptions from Stripe or PayPal
  2. Match subscription IDs to member email addresses
  3. In AccessAlly, go to each member’s profile
  4. Verify the subscription ID is stored correctly
  5. Test that failed payments will cancel access

Detailed guide: How to Migrate Subscription Payments

🚨 SECURITY ISSUE: If subscription links aren’t correct, failed payments won’t cancel member access. This is a revenue leak. Test thoroughly.

Step 14: Rebuild Your Automations in Keap

Ontraport campaigns cannot be automatically migrated. You must rebuild them in Keap.

Common Ontraport automations to rebuild:

  • Welcome sequences: Use Keap campaigns
  • Tag-based automations: Use Keap campaign triggers
  • Purchase follow-ups: Set up in Keap campaigns
  • Lead scoring: Rebuild scoring rules in Keap
  • Appointment reminders: Use Keap’s native appointment features

Ontraport → Keap automation mapping:

Ontraport Keap Equivalent
Campaign Campaign
Sequence Sequence (within campaign)
Rule Campaign goal or decision diamond
Tag trigger Campaign trigger (tag applied)
Wait step Delay timer in sequence
Switch element Decision diamond
💡 Planning Tip: Document your Ontraport campaigns BEFORE migrating. Take screenshots of each workflow and list all triggers and actions. Keap’s Campaign Builder is different from Ontraport’s visual builder – budget extra time to learn it.

Step 15: Update Forms and Opt-ins

Ontraport forms need to be replaced with Keap forms OR AccessAlly forms that submit to Keap.

Option 1: Use Keap Forms

  1. Create forms in Keap → Marketing → Forms
  2. Embed Keap form code on your WordPress pages
  3. Style forms to match your site (Keap’s form styling is limited)
  4. Set up tag assignments and campaign triggers

Option 2: Use AccessAlly Forms (Recommended)

  1. Create forms in AccessAlly → Opt-in Forms
  2. Configure to submit to Keap
  3. Better integration with WordPress/AccessAlly features
  4. More control over styling and behavior
  5. Set up tag assignments (including category placement if needed)

Phase 3: Go-Live and Verification (2-3 hours)

Step 16: 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 (verify category doesn’t affect access)
  • ✅ Forms submit to Keap
  • ✅ Purchase flow works end-to-end
  • ✅ Subscription linking works
  • ✅ Failed payment handling tested
  • ✅ Automations trigger correctly (check tag category triggers)
  • ✅ Email sending works
  • ✅ Custom fields populated correctly
💡 Pro Tip: Have a team member (not you) test the member experience. Fresh eyes catch issues you’ll miss. Test each membership level separately.

Step 17: Switch Live Site to Keap

When staging tests pass, switch your live site:

  1. Schedule downtime (3-4 hour window recommended)
  2. Put site in maintenance mode
  3. Create fresh WordPress backup
  4. Export final Ontraport data (capture any new contacts since staging)
  5. Switch AccessAlly to Keap (same steps as staging)
  6. Import any new contacts from final export
  7. Verify access rules and tags
  8. Test login for 3-5 members (different membership levels)
  9. Take site out of maintenance mode
  10. Monitor closely for 1-2 hours

Step 18: Complete Post-Migration Checks

Work through the complete Post-Migration Verification Checklist. Key items for Ontraport → Keap:

✅ Contact Data Integrity
  • Verify total contact count matches Ontraport
  • Check 10 random contacts in Keap for complete data
  • Verify Contact IDs properly stored in WordPress
  • Check for duplicate contacts
  • Verify custom fields populated correctly (check Ontraport f-number fields)
✅ Tags & Categories
  • Verify tags migrated correctly (sample 10 contacts)
  • Check tags are in correct Keap categories
  • Test tag-based access rules
  • Verify tag assignment via forms
✅ 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
✅ Forms & Automations
  • Test each opt-in form submission
  • Verify form data reaches Keap with correct tag categories
  • Test order form purchases
  • Confirm post-purchase campaigns fire in Keap
  • Test auto-login after purchase
✅ 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
🚨 CRITICAL TEST: Contact ID Verification
The #1 issue with CRM switches is Contact ID mismatches. Test this:

  1. Pick a random member from WordPress
  2. Check their user meta for “keap_contact_id” or “infusionsoft_contact_id”
  3. Search Keap for that Contact ID
  4. Verify it’s the correct contact
  5. Test that tagging them in Keap grants access in AccessAlly

If Contact IDs are wrong, members will lose access even if they have correct tags.

Step 19: Monitor for 7 Days

Don’t cancel Ontraport 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 campaign 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
  • Campaign trigger verification (especially tag category triggers)

Step 20: Clean Up

Once migration is stable (7+ days):

  1. Disconnect Ontraport from AccessAlly (remove API keys)
  2. Deactivate Migration Wizard plugin
  3. Export final Ontraport data for records
  4. Downgrade or cancel Ontraport (keep 30 days as safety net)
  5. Remove staging site’s 2-site exception (contact AccessAlly support)
  6. Update member documentation with any CRM-related changes

Troubleshooting Common Issues

Issue 1: Contact IDs Not Linking (CRITICAL)

Symptoms: Members have correct tags in Keap 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 Keap contact doesn’t

Solution:

  1. Check WordPress user meta for “keap_contact_id” or “infusionsoft_contact_id”
  2. If missing, re-import the user via Migration Wizard with “Update existing users” checked
  3. Verify the Contact ID in Keap matches the stored ID
  4. Test access after fixing Contact ID

Issue 2: Tags in Wrong Categories

Symptoms: Tags imported but in “Uncategorized” or wrong category

Causes:

  • Tag categories not created before import
  • Migration Wizard couldn’t determine correct category
  • Category name mismatch

Solution:

  1. Go to Keap → CRM → Tags
  2. Find uncategorized tags
  3. Drag and drop into correct categories
  4. Update any campaign triggers that reference these tags

Issue 3: Custom Fields Data Missing

Symptoms: Custom field data didn’t migrate from Ontraport to Keap

Causes:

  • Custom fields not created in Keap before import
  • CSV column names don’t match Keap field names
  • Field type mismatch (text in Ontraport, dropdown in Keap)
  • Ontraport field ID (f1234) not mapped correctly

Solution:

  1. Verify custom fields exist in Keap → CRM → Settings → Custom Fields
  2. Note exact Keap field names (usually start with underscore, e.g., “_MemberLevel”)
  3. Update CSV with correct Keap field names as column headers
  4. Re-import with “Update existing users” checked
  5. Check a few contacts to verify data populated

Issue 4: Campaigns Not Triggering

Symptoms: Keap campaigns not firing when tags are applied

Causes:

  • Campaign trigger set to wrong tag category
  • Tag applied but in different category than trigger expects
  • Campaign not published/active
  • Contact already went through campaign (check goals)

Solution:

  1. Check campaign trigger settings
  2. Verify tag AND category match
  3. Ensure campaign is published
  4. Test with fresh contact (not one already in system)

Issue 5: Ontraport Field IDs Not Importing

Symptoms: Data in Ontraport custom fields (f1234) is blank after import

Causes:

  • CSV still has Ontraport field IDs as column headers
  • Should have been renamed to Keap custom field names

Solution:

  1. Open your CSV
  2. Find columns with Ontraport field IDs (f1234, f5678, etc.)
  3. Rename to Keap custom field names (e.g., “_MemberLevel”)
  4. Re-import with “Update existing users” checked

Issue 6: All Members Lost Access After Migration

Symptoms: Every member getting “You don’t have permission” errors

Causes:

  • Contact IDs not linking (most common – see Issue 1)
  • Tag names changed during migration
  • AccessAlly connection to Keap broken
  • Membership level settings cleared

Solution:

  1. DON’T PANIC – this is fixable
  2. Check AccessAlly → Keap connection is active
  3. Pick one test member and troubleshoot their Contact ID (see Issue 1)
  4. Once you fix the root cause, it affects all members
  5. If you can’t fix quickly, consider rolling back to Ontraport temporarily
🚨 Rollback Procedure:
If critical issues occur and you need to revert to Ontraport:

  1. Change AccessAlly CRM connection back to Ontraport
  2. Re-enter Ontraport API credentials
  3. Verify connection works
  4. Test member access (should restore immediately)
  5. Contact AccessAlly support for migration assistance

Migration Timeline

Total Time Estimate: 7-10 hours (plus 2-3 hours testing)

Phase Tasks Time
Pre-Migration Setup Keap setup, data export, field/tag mapping, category planning 3-5 hours
Tag & Field Creation Create tag categories, tags, and custom fields in Keap 1-2 hours
Migration Execution Staging setup, contact import, subscription linking 2-3 hours
Automation Rebuild Rebuild Ontraport campaigns in Keap 2-4 hours
Form Migration Replace Ontraport forms with Keap/AccessAlly forms 1 hour
Testing & Verification Comprehensive testing on staging 2-3 hours
Live Site Switch Switch live site, final import, verification 2-3 hours

Recommended Downtime Window: 3-4 hours on a weekend or low-traffic period for the live site switch


Need Help?

Migration Support:

Related Guides:

🎯 Migration Success Checklist:

  • ✅ All contacts imported to Keap with correct data
  • ✅ Contact IDs properly linked in WordPress
  • ✅ Tags migrated and organized into correct Keap categories
  • ✅ Custom fields populated (Ontraport f-numbers → Keap custom fields)
  • ✅ 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 Keap with correct tag categories
  • ✅ Core campaigns rebuilt and tested
  • ✅ No critical support tickets after 7 days
Updated on January 15, 2026
Was this article helpful?

Related Articles

NO QUESTION GOES UNANSWERED

Live Weekly Q&A

Join us for live Q&A. Learn the basics, discover what's possible, and connect with AccessAlly users.

Need Support?

Have questions? Get in touch. Our inbox support hours are 9am-5pm EST, Monday - Friday.

Laptop with the AccessAlly demo site

AccessAlly is the most flexible way to sell and elegantly deliver digital offerings. All in one place.

WATCH THE DEMO

You'll get follow-up emails about AccessAlly and new features. Opt out anytime. Full privacy policy here.