ARTICLE CONTENT:
Complete Guide: Migrating from Ontraport to AccessAlly Managed Contacts
⏱️ Estimated Time: 5-7 hours (plus testing)
🛠️ Technical Level: Intermediate (comfortable with CSV files, basic WordPress, email configuration)
💰 Cost Impact: Eliminate Ontraport subscription ($297-$797/month) – Review AccessAlly Managed email sending limits for your plan
Why Migrate from Ontraport to AccessAlly Managed?
Common reasons for migrating from Ontraport to AccessAlly Managed Contacts:
- Significant Cost Savings: Eliminate Ontraport subscription ($297-$797/month) – one of the highest cost CRMs
- Simplified Management: No external CRM to manage – everything in WordPress
- Feature Overlap: Not using Ontraport’s advanced CRM features (deals, pipelines, business automation)
- Easier Member Management: Member data stored directly in WordPress (no syncing delays)
- Reduced Complexity: Fewer moving parts = fewer things that can break
- Lower Learning Curve: Ontraport is complex – AccessAlly Managed is simpler for team members
AccessAlly Managed has email sending limits based on your plan and hosting. Review the AccessAlly Managed vs CRM comparison guide to ensure it meets your needs. You’ll lose Ontraport’s advanced automation, business reporting, and CRM pipeline features.
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Ontraport admin access (for data export)
- AccessAlly license (Pro or higher for Managed Contacts)
- Access to your payment gateway (Stripe or PayPal)
- Access to your domain’s DNS settings (for email deliverability configuration)
- SMTP service account (e.g., Postmark, SendGrid, Amazon SES) – REQUIRED
📋 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)
- Staging site setup for testing (HIGHLY recommended)
- Email deliverability setup plan (SPF, DKIM, DMARC records)
- Downtime plan and member communication strategy
Phase 1: Pre-Migration Setup (2-3 hours)
Step 1: Enable AccessAlly Managed Contacts
- Go to AccessAlly → Settings → General
- Under “CRM Integration,” select “Managed Contacts (no CRM)”
- Click Save Changes
- AccessAlly will reload with Managed Contacts features enabled
Step 2: Set Up Email Deliverability (CRITICAL STEP)
AccessAlly Managed sends emails directly from your WordPress site. This is the #1 make-or-break factor for this migration. Coming from Ontraport’s robust email infrastructure to WordPress email requires careful configuration.
Ontraport has professional email infrastructure with dedicated IPs and warm sender reputation. WordPress default email (wp_mail) will land in spam. You MUST configure proper SMTP or your members won’t receive emails.
Step 2A: Choose and Configure SMTP Service
Recommended SMTP Services:
- Postmark: Excellent deliverability, transactional focus ($15/month for 10K emails)
- SendGrid: Good deliverability, generous free tier (100 emails/day free)
- Amazon SES: Lowest cost ($0.10 per 1,000 emails) but requires technical setup
- Mailgun: Good balance of cost and features
- SparkPost: Strong deliverability for bulk sending
Install SMTP Plugin:
- Install WP Mail SMTP plugin (most popular, free + pro versions)
- Or install Post SMTP (good alternative)
- Configure with your chosen SMTP service credentials
- Send test email from plugin settings
- Verify test email arrives in inbox (not spam)
Step 2B: Configure DNS Records (MANDATORY)
Proper DNS configuration is essential for email deliverability. You need to configure SPF, DKIM, and DMARC records.
SPF Record (Sender Policy Framework):
- Add TXT record to your domain’s DNS
- Lists authorized mail servers for your domain
- Example:
v=spf1 include:spf.smtp-service.com ~all - Get exact SPF record from your SMTP service documentation
DKIM Record (DomainKeys Identified Mail):
- Add TXT record provided by your SMTP service
- Cryptographically signs emails to prove authenticity
- Your SMTP service will provide the exact record to add
- Record name usually like:
smtp._domainkey.yourdomain.com
DMARC Record (Domain-based Message Authentication):
- Add TXT record:
_dmarc.yourdomain.com - Tells receiving servers how to handle unauthenticated emails
- Start with monitoring mode:
v=DMARC1; p=none; rua=mailto:[email protected] - After testing, tighten to
p=quarantineorp=reject
Step 2C: Email Sending Limits
Unlike Ontraport (which has essentially unlimited sending), WordPress email has limits based on your hosting and SMTP plan.
| Hosting/Service Type | Typical Email Limit | Notes |
|---|---|---|
| Shared Hosting (wp_mail) | 100-500/hour | ❌ NOT RECOMMENDED – lands in spam |
| Managed WordPress (wp_mail) | 200-1,000/hour | ⚠️ Poor deliverability |
| SendGrid Free | 100/day | ✅ Good for small lists |
| Postmark | 10,000+/month | ✅ Excellent deliverability |
| Amazon SES | 50,000+/day | ✅ Scales well, requires setup |
Calculate your needs:
- How many members do you have?
- How many broadcast emails per month?
- How many automated emails per member per month?
- Ensure your SMTP plan can handle peak sending periods
Step 2D: Test Email Deliverability
- Send test emails to Gmail, Outlook, Yahoo accounts
- Check inbox placement (not spam folder)
- Use Mail Tester (mail-tester.com) to check spam score
- Target spam score: 8/10 or higher
- If score is low, review SPF/DKIM configuration
Step 3: Export Your Data from Ontraport
- Log into your Ontraport account
- Go to Contacts → Export Contacts
- Select “All Contacts” or filter to active members only
- Include all standard fields and custom fields
- Include tags
- Export format: CSV
- Download the CSV file
What’s included in the Ontraport export:
- Email addresses
- First and last names
- Custom fields (Ontraport field IDs like f1234)
- Tags
- Opt-in status
- Contact creation dates
What’s NOT included:
- Campaign workflows (must be rebuilt)
- Email campaign history
- Deals and pipelines
- Form designs
- Page templates
- Business automation rules
Step 4: Map Your Ontraport Data to AccessAlly Managed
Create a data mapping spreadsheet. Use the Data Mapping Reference Guide for complete mappings.
| Ontraport Field | AccessAlly Managed Field | Notes |
|---|---|---|
| user_email | Required field | |
| firstname | first_name | Standard WordPress field |
| lastname | last_name | Standard WordPress field |
| Tags | AccessAlly tags | Recreate tags in AccessAlly first |
| Custom Fields (f1234) | WordPress user meta | Create custom fields in AccessAlly |
| office_phone, cell_phone | Custom field: phone | Map to single phone field |
| Opt-in status | Tag: “Unsubscribed” | Track unsubscribes with tag |
Identifying Ontraport Custom Field IDs
To see what each Ontraport field ID represents:
- In Ontraport, go to Contacts → Contact Information
- Hover over each custom field name
- The field ID (e.g., f1234) appears in the field settings
- Document the mapping: “f1234 = Member Level”, “f5678 = Purchase Date”, etc.
Step 5: Recreate Your Tags in AccessAlly
- Make a list of all tags from your Ontraport export
- Go to AccessAlly → Tags
- Create each tag in AccessAlly
- Use the exact same tag names for easier mapping (case-sensitive)
Step 6: Create Custom Fields in AccessAlly
- List all Ontraport custom fields you want to migrate
- Go to AccessAlly → Custom Fields
- Create each custom field with appropriate field type
- Note the WordPress user meta key for each field (for CSV mapping)
Ontraport → AccessAlly field type mapping:
- Text → Text
- Large Text → Textarea
- Numeric → Number
- Date → Date
- Drop Down → Dropdown/Select
- Check Box → Checkbox
Step 7: Prepare Your CSV for Import
The AccessAlly Migration Wizard expects a specific CSV format. Transform your Ontraport export.
Required columns for AccessAlly Managed import:
user_email– Email address (required)first_name– First namelast_name– Last nameuser_pass– Leave blank (AccessAlly generates passwords)accessally_add_tags– Comma-separated list of tagsaccessally_add_memberships– Membership levels (if applicable)- Custom field columns (use WordPress user meta keys)
CSV transformation steps:
- Open your Ontraport export in Excel or Google Sheets
- Rename columns to match AccessAlly format:
- Ontraport “email” →
user_email - Ontraport “firstname” →
first_name - Ontraport “lastname” →
last_name - Ontraport tags column →
accessally_add_tags - Ontraport “f1234” → Custom field name (e.g.,
member_level)
- Ontraport “email” →
- Add a
user_passcolumn (leave blank) - Ensure tags are comma-separated in one cell
- Remove or flag unsubscribed contacts
- Save as new CSV: “ontraport-to-accessally-import.csv”
Phase 2: Migration Execution (2-3 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
- Go to AccessAlly → Migration Wizard
- Click “Upload CSV File”
- Select your prepared CSV file
- Map the CSV columns to AccessAlly fields (should auto-detect if named correctly)
- Choose import options:
- Update existing users: Check if some contacts may already exist in WordPress
- Send welcome email: UNCHECK (you’ll communicate separately about the change)
- Generate passwords: Check
- Click “Start Import”
Monitor the import progress:
- The Migration Wizard shows a progress bar
- Watch for error messages (common: duplicate emails, invalid formats)
- Save the import log for troubleshooting
- Note any contacts that failed to import
Step 10: Link Payment Gateway Subscriptions
If you have paid members with active subscriptions, you need to link their Stripe/PayPal subscriptions to their WordPress accounts.
- Export your active subscriptions from Stripe or PayPal
- Match subscription IDs to member email addresses
- Use the Migration Wizard’s “Link Subscriptions” feature, OR
- Manually update each member’s subscription ID in AccessAlly user profile
Detailed guide: How to Migrate Subscription Payments
Step 11: Rebuild Your Automations in AccessAlly
Ontraport campaigns and automations cannot be automatically migrated. You’ll need to rebuild them using AccessAlly’s automation tools.
Common Ontraport automations to rebuild:
- Welcome sequences: Use AccessAlly Email Wizards
- Tag-based automations: Use AccessAlly Automation Triggers
- Purchase follow-ups: Set up Order Form post-purchase actions
- Membership progression: Use AccessAlly Module Triggers
- Re-engagement campaigns: Use scheduled email broadcasts
Ontraport → AccessAlly automation mapping:
| Ontraport Feature | AccessAlly Equivalent |
|---|---|
| Campaign | Email Wizard (time-based sequence) |
| Sequence | Email Wizard steps |
| Tag-based rule | Automation Trigger |
| Wait step | Email Wizard delay |
| Switch (conditional) | Conditional logic in automations |
| Ontraport form | AccessAlly Opt-in Form |
Step 12: Migrate Your Forms
Ontraport forms need to be recreated as AccessAlly opt-in forms or order forms.
For opt-in forms:
- Go to AccessAlly → Opt-in Forms
- Create a new form
- Match the fields from your Ontraport form
- Set up tag assignments for form submissions
- Style the form to match your site design
- Replace Ontraport form embeds with AccessAlly form shortcodes
For purchase forms:
- Go to AccessAlly → Order Forms
- Create order forms for each product
- Connect to Stripe or PayPal
- Set up product links (memberships, tags, access grants)
- Configure post-purchase automations
- Style to match your brand
Phase 3: Post-Migration Verification (2-3 hours)
Step 13: Complete Post-Migration Checks
Work through the complete Post-Migration Verification Checklist. Key items for Ontraport → AA Managed:
✅ Contact Data Integrity
- Verify total contact count matches Ontraport export
- Check 10 random contacts for complete data (names, tags, custom fields)
- Search for duplicate accounts
- Verify unsubscribed contacts have correct status/tag
✅ Access & Permissions
- Test login as a member (use incognito window)
- Verify access to protected content works
- Check each membership level grants correct access
- Test content unlocking based on tags
✅ Tags & Custom Fields
- Verify tags migrated correctly (sample 10 contacts)
- Check custom fields populated with correct data
- Test tag-based access rules
- Verify custom field data displays in member profiles
✅ Email Deliverability (CRITICAL)
- Send test emails to Gmail, Outlook, Yahoo, Apple Mail
- Check inbox placement (not spam folder)
- Verify email formatting looks correct
- Test unsubscribe links work
- Test email wizard sequences trigger correctly
- Check email headers for proper SPF/DKIM authentication
This is the #1 post-migration issue. Test extensively:
- Send test emails to multiple email providers
- Check spam scores with Mail Tester (mail-tester.com)
- Monitor bounce rates for first few sends
- Watch for member complaints about missing emails
If emails land in spam, your members won’t receive critical communications and support tickets will spike.
✅ Forms & Automations
- Test each opt-in form submission
- Verify form data reaches WordPress user profile
- Test order form purchases (use Stripe test mode)
- Confirm post-purchase automations fire
- Test auto-login after purchase (if enabled)
- Verify form email notifications work
✅ Subscriptions & Payments
- Verify active subscriptions linked correctly
- Test new purchase flow end-to-end
- Test subscription cancellation
- 🚨 CRITICAL: Test failed payment handling
- Check that member access aligns with payment status
Test that failed payments correctly cancel member access:
- Create a test member with a test subscription
- Simulate a failed payment in Stripe test mode
- Verify AccessAlly removes member access appropriately
- Check that webhook fired and was processed correctly
This is a security issue if not working – members with failed payments could retain access.
Step 14: Monitor for 7 Days
Don’t cancel Ontraport immediately. Keep it active and monitor for issues during the first week:
- Day 1-2: Watch for immediate issues (login problems, access errors, email deliverability)
- Day 3-5: Monitor email engagement rates and bounce rates
- Day 6-7: Check for subscription/payment issues
What to monitor:
- Member support tickets (any migration-related confusion?)
- Email bounce rates (deliverability problems?)
- Email engagement (open/click rates similar to Ontraport?)
- Login errors or access issues
- Payment failures or subscription problems
- Form submission success rates
Step 15: Deactivate Migration Wizard Plugin
Once migration is complete and verified:
- Go to WordPress → Plugins
- Find “AccessAlly Migration Wizard”
- Click Deactivate
- Click Delete to remove the plugin
The Migration Wizard is only needed during migration. Removing it reduces your plugin footprint and potential security surface area.
Troubleshooting Common Issues
Issue 1: Emails Going to Spam (MOST COMMON)
Symptoms: Members report not receiving emails, or emails land in spam folder
Causes:
- SPF/DKIM/DMARC records not configured correctly
- No SMTP plugin configured (using default wp_mail)
- Sending domain has poor or no reputation
- WordPress sending from wrong “From” email address
- Email content triggers spam filters
Solution:
- Verify SPF and DKIM records are correct using MXToolbox or similar
- Install and properly configure WP Mail SMTP or similar plugin
- Test email with Mail Tester (mail-tester.com) – aim for 8/10 or higher
- Ensure “From” email address matches your domain
- Warm up your sending domain (start with small batches, gradually increase volume)
- Check that SMTP service authentication is working
- Review email content for spam trigger words
- Week 1: Send to most engaged members only (~25% of list)
- Week 2: Expand to 50% of list
- Week 3+: Send to full list
This builds sender reputation and improves deliverability.
Issue 2: Members Can’t Log In
Symptoms: Members getting “Invalid username or password” errors
Causes:
- Passwords weren’t migrated (Ontraport doesn’t export passwords)
- Members trying to use their Ontraport passwords (which don’t exist)
- Email addresses imported with typos or extra spaces
Solution:
- Send password reset emails to all members after migration
- Use AccessAlly’s “Generate New Passwords” feature
- Create a migration announcement explaining password reset process
- Set up a dedicated help page with password reset instructions
- Consider using “magic link” login for easier member access
Recommended member communication template:
Subject: Important: Member Portal Update – Action Required
Hi [First Name],
We’ve upgraded our member management system to serve you better. Your account and all content access has been transferred successfully.
You’ll need to set a new password to log in:
- Go to [your login page URL]
- Click “Forgot Password”
- Enter your email address: [their email]
- Check your email for the password reset link
- Create a new password
All your content access and membership benefits remain exactly the same. This is simply a technical backend change.
Having trouble? Reply to this email or visit [help page URL].
Thank you for your patience during this upgrade!
Issue 3: Contacts Imported But Missing Tags
Symptoms: Contacts exist in WordPress but don’t have any AccessAlly tags
Causes:
- Tags weren’t created in AccessAlly before import
- Tag names in CSV don’t exactly match AccessAlly tag names (case-sensitive)
accessally_add_tagscolumn formatted incorrectly- Extra spaces or special characters in tag names
Solution:
- Verify all tags exist in AccessAlly → Tags
- Check tag name spelling and capitalization (must match exactly)
- Re-export a small CSV sample with just emails and tags
- Re-import using “Update existing users” option
- Check one updated user to verify tags applied
Issue 4: Custom Fields Data Missing
Symptoms: Custom field data from Ontraport didn’t transfer to WordPress
Causes:
- Custom fields not created in AccessAlly before import
- CSV column names don’t match WordPress user meta keys
- Ontraport field IDs (f1234) not properly mapped
- Field type mismatch causing data to be rejected
Solution:
- Go to AccessAlly → Custom Fields
- Create each custom field (match field type from Ontraport)
- Note the exact user meta key for each field
- Update your CSV column headers to match user meta keys
- Re-import with “Update existing users” checked
- Verify data populated for test contacts
Issue 5: Subscription Payments Not Linked
Symptoms: Active subscribers showing as “no subscription” in AccessAlly
Causes:
- Subscription IDs not linked during migration
- Email address mismatch between Stripe and WordPress
- Wrong subscription ID format
- Subscription metadata stored in Ontraport not transferred
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 type
- Verify webhook configuration is correct
Detailed guide: Migrating Subscription Payments
Issue 6: Email Sending Hits Rate Limits
Symptoms: Emails queuing or failing to send due to rate limits
Causes:
- SMTP service plan has lower limits than expected
- Sending too many emails too quickly after migration
- WordPress hosting has email sending limits
Solution:
- Check your SMTP service plan limits
- Upgrade SMTP plan if needed
- Implement email queuing (spread sends over time)
- Use plugins like WP Mail SMTP Pro for better queue management
- Segment your email sends into smaller batches
Post-Migration: Clean Up & Optimization
Week 1: Monitor & Fix Issues
- Watch for support tickets related to access, login, or email issues
- Monitor email deliverability metrics (bounces, spam complaints)
- Track email engagement (open rates, click rates)
- Check payment processing and subscription continuity
- Fix any data issues discovered during verification
Week 2-4: Optimize
- Compare email engagement to Ontraport baseline (lower? Check deliverability)
- Continue warming email sending reputation
- Clean up unused tags and custom fields
- Streamline automation workflows
- Update member documentation with new login process
- Train team members on AccessAlly Managed features
Month 2: Cancel Ontraport
- Once stable for 30+ days, downgrade or cancel Ontraport subscription
- Download final backup of Ontraport data (contact history, campaign analytics)
- Remove Ontraport API credentials from AccessAlly settings
- Update any external integrations that pointed to Ontraport
- Celebrate cost savings of $297-$797/month!
Migration Timeline & Downtime
Total Time Estimate: 5-7 hours (plus 2-3 hours of testing)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup | Email deliverability config, data export, mapping, tag recreation | 2-3 hours |
| Migration Execution | Contact import, subscription linking, form recreation | 2-3 hours |
| Post-Migration | Testing, verification, automation rebuild | 1-2 hours |
Downtime Required: Optional – You can do most of the migration without downtime. Consider brief maintenance mode only during contact import if you have active form submissions.
Need Help?
Migration Support:
- Review the Migration Support Policy to understand what support is available
- For complex migrations or professional assistance: Contact AccessAlly support
- Consider professional help if you have 1,000+ members or complex automations
Related Guides:
- Pre-Migration Checklist
- Post-Migration Verification
- Data Mapping Reference
- Migrating to AccessAlly Managed Contacts Guide
- How to Migrate Subscription Payments
- AccessAlly Managed vs CRM Integration
- ✅ Email deliverability configured (SPF, DKIM, DMARC)
- ✅ SMTP service working and tested
- ✅ All contacts imported with correct data
- ✅ Tags and custom fields preserved
- ✅ Member login working
- ✅ Content access rules working
- ✅ Subscriptions linked and tested
- ✅ Failed payment handling verified
- ✅ Emails delivering to inbox (not spam)
- ✅ Forms working and collecting data
- ✅ Core automations rebuilt and tested
- ✅ No critical support tickets after 7 days
- ✅ Email engagement comparable to Ontraport baseline