1. Home
  2. Migrations
  3. Importing Contacts via the AccessAlly User Migration Wizard

Importing Contacts via the AccessAlly User Migration Wizard

⚠️ Important: These migration guides are self-service resources. Learn about our migration support policy.

Staging Sites

If you are migrating from a WordPress course and membership plugin to AccessAlly you can create a staging site if you’d like to keep your existing content.

Migration Process

This is a simple breakdown of the steps when migrating to AccessAlly. These steps are covered in more detail in our free AccessAlly 101 training.

Step 1: Install AccessAlly – set up and install the AccessAlly plugin

Step 2: Add Offerings – this is where the content of your courses in Kajabi is recreated in AccessAlly.

Step 3: Create Emails – create CRM or AccessAlly Emails to deliver the content to your existing students.

Step 4: Import Students (covered in this article) – import students from a CSV file from your CRM (ActiveCampaign, Kit, Drip, Keap, or Ontraport) or as a CSV spreadsheet (AccessAlly Managed Contacts)

Import Students

Now it’s time to get your existing contacts added to your AccessAlly site and connected to a valid contact ID number. You’ll do this with the AccessAlly Migration Wizard plugin.

Why the Contact ID number is so important.

Each user on your AccessAlly site needs to be added as a user to WordPress, assigned a unique Contact ID number, and be synced with relevant tag(s) and information needed by AccessAlly.

When should you run the AccessAlly User Migration plugin?

This plugin works best after you’ve installed the AccessAlly on your site and created your first offering.

When you create an offering in AccessAlly the tags needed for a user to access the content are created for you. And… you’ll want the users to have the correct content and correct tags the moment they’re imported into your site.

Especially if you’re using CRM automations!

Where is the Contact ID number located?

The answer is… it depends!

If you’re using one of our supported CRM systems… the Contact ID number is assigned by your CRM system. These CRM systems are:

  1. Infusionsoft/Keap
  2. Ontraport
  3. ActiveCampaign
  4. Kit
  5. Drip

If you’re using AccessAlly Managed contacts… the Contact ID number is assigned when you import your first batch of contacts. The AccessAlly User Migration plugin will create the WordPress users, assign the Contact ID numbers, and apply the first tag (to help you filter and sort your members) – without a CRM.

Audit Contacts

It’s a great idea to audit your contacts by each offering you are migrating the content for into your AccessAlly site. This allows you to review smaller batches of existing contacts with less room for error! If you’re using AccessAlly Managed contacts you can skip to the Download step below.

If your contacts are not in a CRM (and you’re using Infusionsoft/Keap, Ontraport, ActiveCampaign, Kit, or Drip) you’ll export your contacts – from your course or membership plugin or platform so you can import them into your CRM.

You can tag these contacts with tag(s) you’d like them to have for offering(s) on your AccessAlly site.

Ready to Migrate Existing Users?

Download the AccessAlly User Migration Wizard plugin.

Troubleshooting

User Data Parsing Errors

If you encounter an error message saying “Parsing user failed due to error” during the migration process, this typically means there’s an issue with the data format being imported.

Common Causes

  • Missing required fields in your import data
  • Incorrect data formatting (e.g., special characters, invalid email addresses)
  • Empty or malformed CSV files
  • Encoding issues with your import file

How to Fix This

  1. Test with a small sample first – Start by migrating just 2-3 users to identify any data formatting issues
  2. Validate your data format – Ensure all required fields are present (email, name, etc.)
  3. Check for special characters – Remove any unusual characters from names or custom fields
  4. Verify file encoding – Save your CSV as UTF-8 to avoid character encoding errors
  5. Review required fields – Make sure every user has at minimum an email address and name

Best Practices

Before running your full migration:

  • Export a small sample (5-10 users) and test the migration first
  • Document any custom fields or special data you need to preserve
  • Keep a backup of your original data before making changes
  • Contact support if errors persist after cleaning your data

Troubleshooting: Migration Tool Stops or Stalls

If the AccessAlly Migration Tool stops working, stalls, or shows API errors during the migration process, this section provides solutions to common causes.

⚠️ Before troubleshooting: Always run migrations on a staging site first. Never debug migration issues on your live site.

Common Causes of Stalled Migrations

1. CSV File Formatting Issues

The most common cause of migration tool failures is improperly formatted CSV files.

Symptoms:

  • Migration starts but stops after a few contacts
  • Error message mentions “parsing” or “invalid format”
  • Tool shows “0 contacts processed” even though file has data

Solutions:

  1. Check file encoding
    • CSV must be UTF-8 encoded
    • In Excel: Save As → CSV UTF-8 (Comma delimited)
    • Special characters (é, ñ, etc.) cause issues if not UTF-8
  2. Remove empty rows
    • Delete any blank rows at the end of your CSV
    • Ensure no empty rows between contact records
  3. Check for required fields
    • Every row must have at minimum: email address
    • Name is highly recommended
    • Missing email = migration tool skips that contact
  4. Remove special characters from data
    • Commas in name fields can break CSV parsing
    • Quotes need to be properly escaped
    • Line breaks within fields cause issues
  5. Test with small sample first
    • Export just 5-10 contacts to test CSV
    • Run migration on test file first
    • If test works, proceed with full file

2. Admin Email in CSV File

If your own admin email address is in the CSV file, it can cause conflicts.

Symptoms:

  • Migration fails when reaching your email in the list
  • Error about “user already exists”
  • Tool stops at a specific contact

Solution:

  • Remove your admin email address from the CSV before uploading
  • Remove any email addresses that already exist as WordPress users
  • The migration tool creates new WordPress users – it can’t migrate contacts that are already users

3. Server Timeout / Resource Limits

Large migrations can exceed your server’s resource limits.

Symptoms:

  • Migration works for small batches but fails on large files
  • White screen or “500 Internal Server Error”
  • Migration stops after X minutes consistently

Solutions:

  1. Migrate in smaller batches
    • Split your CSV into multiple files (e.g., 100-200 contacts each)
    • Run migration multiple times with smaller files
    • This is the safest approach for large migrations
  2. Increase PHP timeout limits (if you have server access)
    • Increase max_execution_time to 300 (5 minutes)
    • Increase memory_limit to 256M or higher
    • Contact your hosting provider if you can’t change these
  3. Run during off-peak hours
    • Server load affects migration performance
    • Run migrations late at night or early morning

4. CRM API Rate Limiting

Your CRM may be throttling API requests during migration.

Symptoms:

  • Migration stops partway through
  • Error mentions “API limit” or “rate limit”
  • Migration works if you wait 10-15 minutes and try again

Solutions:

  • Wait 15-30 minutes and try again
  • Migrate in smaller batches (reduces API calls per minute)
  • Check your CRM’s API limits in their documentation
  • Upgrade to higher CRM tier if hitting limits consistently

5. Plugin Conflicts

Other WordPress plugins can interfere with the migration process.

Symptoms:

  • Migration worked before but now doesn’t
  • Recently installed/updated other plugins
  • JavaScript errors in browser console

Solution:

  • Temporarily deactivate all plugins except AccessAlly
  • Run migration
  • Reactivate plugins one by one to find conflict
  • Common culprits: security plugins, caching plugins, other CRM integrations

How to Resume a Stalled Migration

If your migration stops partway through:

  1. Identify how many contacts successfully migrated
    • Check WordPress Users list
    • Note how many new users were created
  2. Create new CSV with remaining contacts
    • Remove successfully migrated contacts from CSV
    • Keep only contacts that haven’t migrated yet
  3. Fix the underlying issue
    • Apply one of the solutions above based on error type
  4. Run migration again with remaining contacts
    • Upload the new CSV with only remaining contacts
    • Continue where you left off

Testing Your Fix

Before running the full migration again:

  1. Test with 5-10 contacts from the problem area
  2. Verify they import correctly
  3. Check tags were applied
  4. Confirm no errors
  5. Then proceed with full migration

Still Having Issues?

If you’ve tried the solutions above and migration still fails:

  1. Check browser console for errors
    • Open Developer Tools (F12)
    • Go to Console tab
    • Look for red error messages
    • Screenshot and share with developer
  2. Check server error logs
    • Contact hosting provider for access to error logs
    • Look for PHP errors during migration time
  3. Consider hiring a developer
    • Server configuration issues require technical expertise
    • Complex migrations benefit from developer assistance

Migration Support Policy: AccessAlly does not provide support for migrations or migration-related troubleshooting. Learn more about our migration support policy.

💡 Pro Tip: Most migration tool failures are due to CSV formatting issues. Always test with a small sample file first before migrating thousands of contacts.

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.