ARTICLE CONTENT:
Complete Guide: Migrating from AccessAlly Managed Contacts to Ontraport
⏱️ Estimated Time: 6-8 hours (plus testing)
🛠️ Technical Level: Intermediate-Advanced
💰 Cost Impact: MAJOR – $0/mo CRM cost → $297-797/mo Ontraport subscription (but eliminates SMTP service costs)
Why Migrate from AccessAlly Managed to Ontraport?
This is a MAJOR upgrade: moving from no external CRM to a full business automation platform. Common reasons for this migration:
- Email Deliverability Issues: AccessAlly Managed sends from WordPress/SMTP – Ontraport has enterprise email infrastructure
- Scale Beyond Email Sending Limits: AccessAlly Managed has plan-based email limits – Ontraport handles high-volume sending
- Advanced Automation: Need complex campaigns, conditional logic, and multi-step sequences beyond Email Wizards
- CRM Features: Need contact management, deals, pipelines, task management
- Better Analytics: Ontraport provides business reporting and revenue tracking
- Native Payment Processing: Ontraport can process payments directly (no separate Stripe account needed)
- Business Growth: Your business has outgrown WordPress-based contact management
- Cost Increase: Ontraport starts at $297/mo (vs. $0 for Managed). Ensure this fits your budget.
- Learning Curve: Ontraport is complex. Budget 10-20 hours for team training.
- Technical Complexity: This migration requires Contact ID linking, which is critical and error-prone.
- Email Improvement: You WILL see better deliverability (no more WordPress SMTP issues).
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Ontraport account (must be set up and configured first)
- AccessAlly license that supports CRM integration
- Access to your payment gateway (Stripe or PayPal)
- Access to your domain’s 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 WordPress users (your “contacts” in AccessAlly Managed)
- Audit of your current member count, tags, and custom fields
- Data mapping spreadsheet (WordPress fields → Ontraport fields)
- 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 Ontraport on your staging site. This lets you test the migration without breaking your live site.
Phase 1: Pre-Migration Setup (3-4 hours)
Step 1: Set Up Your Ontraport Account
If you haven’t already set up Ontraport:
- Sign up for Ontraport (choose tier based on contact count – $297/mo for up to 1,000 contacts)
- Complete basic account setup:
- Company information
- Timezone and business hours
- Sender email address (use your domain, not Gmail)
- Configure email deliverability:
- Set up SPF records for your domain
- Set up DKIM signing
- Verify sender domain
- Test email sending (send yourself a test broadcast)
- Create a test form and ensure it works
Step 2: Export Your WordPress Users (Your “Contacts”)
With AccessAlly Managed, your contacts are stored as WordPress users. You need to export them.
- Go to WordPress → Users
- Install a user export plugin (e.g., “Export Users to CSV” or use AccessAlly’s built-in export)
- Export ALL users with all fields:
- Email (user_email)
- First name (first_name)
- Last name (last_name)
- User role
- User meta fields (custom fields)
- AccessAlly tags
- Download and open the CSV file
Alternative: Use AccessAlly’s Contact Export
- Go to AccessAlly → Contacts
- Click “Export Contacts”
- Select all fields and tags
- Download CSV
Step 3: Map WordPress Data to Ontraport Fields
Create a data mapping spreadsheet. Use the Data Mapping Reference Guide for complete field mappings.
| WordPress / AccessAlly | Ontraport Field | Notes |
|---|---|---|
| user_email | Required field | |
| first_name | firstname | Standard field |
| last_name | lastname | Standard field |
| AccessAlly Tags | Ontraport Tags (with tag IDs) | Recreate tags in Ontraport first |
| WordPress User Meta (custom fields) | Ontraport Custom Fields (f1234) | Note Ontraport field IDs |
| user_registered (date) | date_created or custom date field | Optional – for historical tracking |
Step 4: Recreate Your Tags in Ontraport
- Make a list of all AccessAlly tags from your export
- Go to Ontraport → Contacts → Tags
- Create each tag in Ontraport (exact same names for easier mapping)
- Note each tag’s ID (Ontraport assigns numeric IDs to tags)
Tag considerations:
- Use exact same tag names as AccessAlly (case-sensitive)
- Clean up unused tags during this process (simplification opportunity)
- Tags in Ontraport work the same as AccessAlly tags (simple tag/untag)
Step 5: Create Custom Fields in Ontraport
- List all WordPress user meta fields (custom fields) from your export
- Go to Ontraport → Contacts → Contact Information
- Click “Add Field” for each custom field
- Match field types:
- Text → Text
- Textarea → Large Text
- Number → Numeric
- Date → Date
- Checkbox → Check Box
- Dropdown → Drop Down
- CRITICAL: Note each field’s ID (e.g., “f1234”) for CSV mapping
Example custom fields to create:
- Member Level (dropdown or text)
- Join Date (date field)
- Subscription Status (dropdown: Active, Cancelled, Expired)
- Last Login Date (date field)
- Any course progress or quiz scores you’re tracking
Step 6: Connect Ontraport to AccessAlly (Staging Site First)
- On your STAGING site, go to AccessAlly → Settings → General
- Under “CRM Integration,” change from “Managed Contacts” to “Ontraport”
- Enter your Ontraport API credentials:
- App ID: Found in Ontraport → Administration → Integrations → API Instructions
- API Key: Found in same location
- Click Save and Test Connection
- Verify the connection is successful (green checkmark)
Step 7: Prepare Your CSV for Migration Wizard
Transform your WordPress user export into the format AccessAlly Migration Wizard expects.
Required columns for Ontraport import:
Email– Email address (required)First Name– First nameLast Name– Last nameTags– Comma-separated list of Ontraport tag namesf1234– Custom field columns (use Ontraport field IDs)
CSV transformation steps:
- Open your WordPress user export in Excel or Google Sheets
- Rename columns to match Ontraport format:
user_email→Emailfirst_name→First Namelast_name→Last Name- AccessAlly tags column →
Tags
- For custom fields, rename columns to Ontraport field IDs:
- Example: “Member Level” → “f1234” (whatever ID Ontraport assigned)
- Ensure tags are comma-separated in one cell (e.g., “Gold Member, Active Subscriber”)
- Remove admin users and test accounts (don’t import into Ontraport)
- Save as new CSV: “wordpress-to-ontraport-import.csv”
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:
- Go to AccessAlly → Utilities
- Download “Migration Wizard Plugin”
- Install and activate via WordPress → Plugins → Add New → Upload
- Click “Import from CSV”
- Upload your prepared CSV file
- Map CSV columns to Ontraport fields (should auto-detect if named correctly)
- Choose import options:
- Update existing users: Check if some users may already exist in WordPress
- Create contacts in CRM: CHECK THIS (creates contacts in Ontraport)
- Add tags: Check (applies tags from CSV)
- Send welcome email: UNCHECK (you’ll email members separately)
- Click “Start Import”
What happens during import:
- Contacts are created in Ontraport (if they don’t exist)
- Tags are applied in Ontraport
- Custom fields are populated
- CRITICAL: Contact ID from Ontraport is stored in WordPress user meta
- This Contact ID linking is what allows AccessAlly to control access based on Ontraport tags
Step 9: Verify Contact ID Linking (CRITICAL STEP)
The #1 issue with Managed → CRM migrations is Contact ID mismatches. Test this immediately:
- Pick a random user from WordPress → Users
- Click to view their profile
- Scroll to “User Meta” or use a plugin to view meta fields
- Look for a field like
ontraport_contact_idorcontact_id - Note the Contact ID value (e.g., “12345”)
- Go to Ontraport → Contacts
- Search for that Contact ID
- Verify it’s the correct person (email matches)
- Check they have the correct tags in Ontraport
Step 10: Update AccessAlly Tags and Access Rules
AccessAlly’s tag names should already match (you used the same tag names in Ontraport). But verify:
- Go to AccessAlly → Modules
- For each module, check “Who Can Access” settings
- Verify tag names match Ontraport tags exactly (case-sensitive)
- Update membership levels to link to correct Ontraport tags
- Check protected pages for tag-based access rules
- Update order form tag assignments
- Update email wizard tag triggers
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, verify each member’s subscription ID is stored correctly
- Test that failed payments will cancel access
Detailed guide: Preserving Subscriptions During Migration
Step 12: Rebuild Email Automations in Ontraport
AccessAlly Email Wizards can stay in AccessAlly OR be rebuilt as Ontraport campaigns. You have two options:
Option A: Keep Email Wizards in AccessAlly (Easier)
- Email Wizards continue to work (AccessAlly sends emails via Ontraport)
- No rebuild required
- Less powerful than Ontraport campaigns but sufficient for simple sequences
Option B: Rebuild as Ontraport Campaigns (More Powerful)
- Use Ontraport’s campaign builder for multi-step sequences
- Advanced conditional logic and split testing
- Better analytics and reporting
- Steeper learning curve but more flexibility
Common automations to consider rebuilding:
| AccessAlly | Ontraport Equivalent |
|---|---|
| Email Wizard | Campaign or Sequence |
| Tag trigger | Campaign trigger (tag applied) |
| Drip email sequence | Campaign with wait steps |
| Module completion trigger | Webhook → Ontraport rule |
Step 13: Update Forms
AccessAlly forms should automatically work with Ontraport. But verify:
- Go to AccessAlly → Opt-in Forms
- Edit each form
- Verify form submits to Ontraport (not WordPress)
- Check tag assignments are correct
- Test form submission
- Verify contact created/updated in Ontraport
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 (test with real member credentials)
- ✅ Content access rules work correctly (each membership level)
- ✅ Tags control access properly (test tag-based access)
- ✅ Forms submit to Ontraport and create contacts
- ✅ Purchase flow works end-to-end (use Stripe test mode)
- ✅ Subscription linking works
- ✅ Failed payment handling tested (critical security test)
- ✅ Email sending works (deliverability check)
- ✅ Contact IDs properly linked (verify 5-10 random members)
Test this on staging:
- Pick a member account from WordPress
- Note their Contact ID in user meta
- Find them in Ontraport using that Contact ID
- Add a test tag in Ontraport
- Verify AccessAlly grants access based on that tag
- Remove the tag in Ontraport
- Verify AccessAlly removes access
If this doesn’t work, Contact ID linking is broken. Fix before going live.
Step 15: Switch Live Site to Ontraport
When staging tests pass, switch your live site:
- Schedule downtime (2-4 hour window recommended)
- Communicate with members (email advance notice of brief maintenance)
- Put site in maintenance mode
- Create fresh WordPress backup
- Export final WordPress users (catch any new members since staging)
- Switch AccessAlly to Ontraport:
- AccessAlly → Settings → General
- Change CRM to “Ontraport”
- Enter API credentials
- Test connection
- Import any new members from final export (use Migration Wizard)
- Verify access rules and tags
- Test login for 3-5 members (different membership levels)
- 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 Managed → Ontraport:
✅ Contact Data Integrity
- Verify total contact count matches WordPress user count
- Check 10 random contacts in Ontraport for complete data
- Verify Contact IDs properly stored in WordPress
- Check for duplicate contacts (email search in Ontraport)
✅ Access & Permissions
- Test login as multiple member types (Gold, Silver, Free, etc.)
- 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 in Ontraport)
- Check custom fields populated correctly
- Test tag-based access rules
- Verify tag assignment via forms
✅ Email Deliverability
- Send test emails to Gmail, Outlook, Yahoo
- Check inbox placement (not spam) – should be MUCH better than WordPress SMTP
- Verify unsubscribe links work
- Test email wizard sequences (if still using AccessAlly Email Wizards)
- Or test Ontraport campaigns (if you rebuilt sequences)
✅ Forms & Automations
- Test each opt-in form submission
- Verify form data reaches Ontraport
- Test order form purchases (use Stripe test mode)
- Confirm post-purchase automations fire
- 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
Test that failed payments correctly cancel member access:
- 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
This is a security issue if not working. Members could retain access after payment failure.
Step 17: Monitor for 7 Days
Don’t deactivate anything immediately. Monitor for issues during the first week:
- Day 1-2: Watch for immediate issues (login problems, access errors)
- Day 3-5: Monitor email deliverability and engagement rates (should improve!)
- Day 6-7: Check for subscription/payment issues
What to monitor:
- Member support tickets (migration-related confusion?)
- Email bounce rates (deliverability – should be lower than before)
- Email open rates (should improve with better inbox placement)
- Login errors or access issues
- Payment failures or subscription problems
- Form submission success rates
Step 18: Clean Up
Once migration is stable (7+ days):
- Deactivate Migration Wizard plugin (WordPress → Plugins → Deactivate/Delete)
- Remove staging site’s 2-site exception (contact AccessAlly support)
- Celebrate improved email deliverability! Monitor your inbox placement – you should see significant improvement
- Cancel SMTP service (if you were using Postmark, SendGrid, etc.) – Ontraport handles email now
- Update member documentation with any CRM-related changes
- Plan Ontraport training for your team (budget 10-20 hours to learn the platform)
Troubleshooting Common Issues
Issue 1: Contact IDs Not Linking (MOST COMMON)
Symptoms: Members have correct tags in Ontraport 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 Ontraport contact doesn’t
- Import didn’t complete successfully
Solution:
- Go to WordPress → Users
- Find the affected member
- View their profile and user meta
- Look for
ontraport_contact_idorcontact_idfield - If missing, re-import the user via Migration Wizard with “Update existing users” checked
- Verify the Contact ID now appears in user meta
- Search Ontraport for that Contact ID to verify it’s the right person
- Test access
Issue 2: Emails Going to Spam (Unlikely But Possible)
Symptoms: Members report not receiving emails, or emails land in spam folder
Causes:
- SPF/DKIM not configured correctly in Ontraport
- Sender domain not verified
- Sending from wrong email address (e.g., @gmail.com instead of your domain)
Solution:
- Go to Ontraport → Administration → Settings → Email
- Verify sender domain is authenticated (green checkmark)
- Check SPF and DKIM records in your DNS
- Test email deliverability with Mail Tester (mail-tester.com) – should score 9-10/10
- Ensure “From” email matches your verified domain
Issue 3: Members Can’t Log In
Symptoms: Members getting “Invalid username or password” errors
Causes:
- Passwords unchanged (this shouldn’t happen with Managed → Ontraport)
- WordPress user account issue (unrelated to CRM switch)
- Caching issue showing old login page
Solution:
- Clear WordPress cache and browser cache
- Test login yourself with a member account
- If login works for you but not members, ask them to clear browser cache
- If still failing, send password reset email
- Check WordPress user account exists (WordPress → Users)
Issue 4: Subscription Payments Not Linked
Symptoms: Active subscribers showing as “no subscription” in AccessAlly
Causes:
- Subscription IDs not 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 link subscriptions in AccessAlly user profiles
- Test failed payment handling for each subscription
Detailed guide: Migrating Subscription Payments
Issue 5: Custom Fields Data Missing
Symptoms: Custom field data didn’t migrate to Ontraport
Causes:
- Custom fields not created in Ontraport before import
- CSV column names don’t match Ontraport field IDs (f1234)
- Field type mismatch (text in WordPress, number in Ontraport)
Solution:
- Verify custom fields exist in Ontraport → Contacts → Contact Information
- Note exact field IDs (e.g., “f1234”)
- Update your CSV with correct Ontraport field ID column names
- Re-import with “Update existing users” checked
- Check a few contacts in Ontraport to verify data populated
Issue 6: Forms Not Submitting to Ontraport
Symptoms: Form submissions not creating/updating contacts in Ontraport
Causes:
- AccessAlly not properly connected to Ontraport
- Form still configured for Managed Contacts (WordPress)
- Ontraport API rate limit reached
- Form fields don’t match Ontraport field names/IDs
Solution:
- Verify AccessAlly → Ontraport connection still active (Settings → General)
- Edit form settings in AccessAlly → Opt-in Forms
- Ensure form is set to submit to Ontraport (not WordPress)
- Check field mappings match Ontraport field IDs
- Test form submission and verify contact created/updated in Ontraport
Email Deliverability: Before vs After Comparison
One of the biggest benefits of this migration is email deliverability improvement. Here’s what to expect:
| Metric | AccessAlly Managed (WordPress SMTP) | Ontraport |
|---|---|---|
| Inbox Placement Rate | 60-80% (varies widely) | 90-95% (enterprise infrastructure) |
| Email Authentication | Manual SPF/DKIM setup (often incomplete) | Managed by Ontraport (automated) |
| Sending Reputation | Shared server IP (unpredictable) | Dedicated IP pools (protected reputation) |
| Bounce Handling | Manual (often not configured) | Automatic (bounces auto-removed) |
| Email Volume Limits | Limited by plan or SMTP service | Higher limits (scales with tier) |
| Spam Complaints | Manual monitoring (if at all) | Automatic tracking and suppression |
Cost Analysis: AccessAlly Managed vs Ontraport
Understanding the full cost impact of this migration:
| Service | AccessAlly Managed (Before) | Ontraport (After) |
|---|---|---|
| CRM Cost | $0 (no external CRM) | $297-797/mo (based on contacts) |
| SMTP Service | $10-100/mo (Postmark, SendGrid, etc.) | $0 (included in Ontraport) |
| Email Deliverability | Variable (60-80% inbox rate) | Better (90-95% inbox rate) |
| Automation Features | Basic (Email Wizards) | Advanced (Campaigns, Rules, Sequences) |
| CRM Features | None (just contact storage) | Full CRM (deals, pipelines, tasks) |
| NET COST INCREASE | $10-100/mo | +$200-700/mo |
- Email deliverability issues are costing you sales (better inbox placement = higher open rates)
- You need advanced automation that Email Wizards can’t handle
- You need CRM features for sales tracking and customer management
- You’re spending significant time managing SMTP issues and email bounces
- Your business revenue can absorb $300-800/mo for better infrastructure
If you’re just looking to save money or don’t need advanced features, staying with AccessAlly Managed may be more cost-effective.
Migration Timeline
Total Time Estimate: 6-8 hours (plus 2-3 hours testing)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup | Ontraport account setup, email authentication, export WordPress users, create tags/fields, data mapping | 3-4 hours |
| Migration Execution | Connect Ontraport to AccessAlly (staging), import contacts via Migration Wizard, verify Contact ID linking, update access rules | 2-3 hours |
| Go-Live & Verification | Test on staging, switch live site, post-migration checks, monitor for issues | 2-3 hours |
| Total | 6-8 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 (high-stakes migration)
- You have complex tag-based access rules across many modules
- You can’t afford downtime or access issues
- You’re uncomfortable with Contact ID linking troubleshooting
- You want guaranteed successful migration with minimal member disruption
Migration Support:
- Review the Migration Support Policy
- For migration assistance: Contact AccessAlly support
Related Guides:
- Pre-Migration Checklist
- Post-Migration Verification
- Data Mapping Reference
- How to Switch CRMs and Keep Same Site
- Preserving Subscriptions During Migration
- Switching to/from AccessAlly Managed Contacts
- ✅ All WordPress users imported to Ontraport with complete data
- ✅ Contact IDs properly linked in WordPress user meta
- ✅ Tags and custom fields preserved
- ✅ Member login working (test multiple membership levels)
- ✅ Content access rules working correctly
- ✅ Tag-based access tested and verified
- ✅ Subscriptions linked and tested
- ✅ Failed payment handling verified (security critical)
- ✅ Forms submitting to Ontraport and creating contacts
- ✅ Email deliverability improved (90%+ inbox placement)
- ✅ Email Wizards still working OR rebuilt as Ontraport campaigns
- ✅ No critical support tickets after 7 days
- ✅ Team trained on Ontraport basics