ARTICLE CONTENT:
General Migration Guide: Moving from Other Platforms to AccessAlly
⏱️ Estimated Time: 30-50 hours (depends on platform and data complexity)
🛠️ Technical Level: Intermediate to Advanced
💰 Cost Impact: AccessAlly + CRM subscription ($80-$500/mo) + WordPress hosting ($20-$100/mo)
Who This Guide Is For
This guide is for course creators and membership site owners migrating to AccessAlly from platforms that don’t have dedicated migration documentation. This includes:
- All-in-one platforms: Podia, Teachable, Thinkific, Mighty Networks, Circle, Tribe, Skool
- Community platforms: Discord-based memberships, Slack workspaces, Facebook Groups with paid access
- Custom solutions: Self-built membership systems, headless CMS setups, custom PHP/Node.js platforms
- E-commerce platforms with memberships: WooCommerce Memberships, Shopify memberships, custom e-commerce
- Legacy platforms: Older or discontinued membership platforms
- Spreadsheet-based systems: Manual member management via spreadsheets (yes, some people do this!)
Unlike platform-specific guides that provide step-by-step instructions, this guide teaches you the framework and principles for any migration. You’ll learn what questions to ask, what data you need, and how to plan a successful migration regardless of your starting point.
Understanding What You’re Moving To
AccessAlly Architecture Overview
Before planning your migration, understand how AccessAlly works:
AccessAlly is NOT an all-in-one platform. Unlike Podia, Kajabi, or Mighty Networks, AccessAlly is a WordPress plugin that requires:
- WordPress hosting – Your own managed WordPress hosting (WP Engine, Kinsta, Flywheel, Cloudways, etc.)
- AccessAlly plugin – The membership/course management system
- CRM integration – ActiveCampaign, Ontraport, Keap, Kit, Drip, or AccessAlly Managed Contacts
- Payment gateway – Stripe or PayPal (configured separately)
- Email service – For transactional emails (often part of CRM or separate service like SendGrid)
Access Control Model:
- AccessAlly uses CRM tags to control who can access what
- When someone purchases, they get tagged in your CRM
- When they visit protected content, AccessAlly checks their CRM tags
- The link between WordPress user and CRM contact is critical (stored as Subscriber ID in WordPress)
What this means for your migration:
- You need to choose and set up a CRM before migrating members
- Your current “membership levels” or “access tiers” become CRM tags
- Each member needs both a WordPress user account AND a CRM contact record
- The Migration Wizard handles linking these two (creates Subscriber ID)
Phase 1: Discovery & Planning (Before You Touch Anything)
Step 1: Answer These Critical Questions
Before you can plan your migration, you need clear answers to these questions:
About Your Current Platform:
- How many active members do you have? (paying vs. free)
- How is access currently controlled? (membership levels, tags, roles, manual spreadsheet?)
- What data can you export? (members, purchases, content, progress, forum posts?)
- How are payments processed? (platform-native, Stripe, PayPal, manual?)
- Can you export member emails in CSV format?
- Do you have member purchase history available?
- Is course completion data available?
- Can you export your course content or must you manually copy it?
About Your Content:
- How many courses/programs do you offer?
- How many lessons/modules total?
- Where are videos hosted? (platform-hosted, Vimeo, YouTube, Wistia?)
- Can you download video files or must you re-upload from source?
- Do you have downloadable resources (PDFs, worksheets)?
- Do you use quizzes or assessments?
- Is there a community component (forum, discussion boards)?
About Your Business Model:
- One-time purchase, subscription, or both?
- If subscriptions: monthly, annual, or custom billing cycles?
- Do you offer free trials?
- Payment plans or installments?
- Multiple product tiers (basic, premium, VIP)?
- Do members purchase multiple courses or just one?
- Any grandfathered pricing or lifetime deals?
About Your Members:
- What’s your member churn rate? (helps estimate migration urgency)
- How tech-savvy are your members? (affects communication strategy)
- What time zones are they in? (affects downtime planning)
- Have you migrated platforms before? (affects member patience with issues)
Step 2: Data Export Assessment
This is where many migrations get stuck. You need to determine what data you can extract from your current platform.
Data Export Checklist:
| Data Type | What You Need | Export Method |
|---|---|---|
| Member List | Email, name, join date, status (active/cancelled) | CSV export from platform admin |
| Purchase History | Who bought what, when, for how much | Transaction export or Stripe/PayPal data |
| Membership Levels | Which tier/level each member has | Member export with level/tier column |
| Subscription Status | Active subscriptions, billing date, amount | Subscription export or payment gateway |
| Course Content | Lesson text, videos, PDFs, structure | Manual copy or content export (rare) |
| Video Files | Video downloads or access to upload to new host | Download from platform or original files |
| Course Progress | Which lessons each member completed | Progress export (often unavailable) |
| Community Data | Forum posts, comments, discussions | Manual screenshots or export (rare) |
If your platform doesn’t offer CSV exports:
- Check for API access: Some platforms have APIs that developers can use to extract data
- Manual data collection: For small member lists (< 100), manual spreadsheet creation may be faster
- Contact platform support: Many platforms will provide data exports if you tell them you’re migrating
- Screen scraping tools: Last resort for extracting data from admin panels (use carefully)
- Hire developer: If API exists but you lack skills, hire someone to extract data
Do NOT cancel your current platform until you’ve successfully exported ALL data and verified your new AccessAlly site works. Many platforms delete data 30-60 days after cancellation. Keep both systems running during transition.
Step 3: Choose Your CRM
AccessAlly requires a CRM for member management. This is a critical decision that affects your entire business.
CRM Options Comparison:
| CRM | Best For | Price Range | Learning Curve |
|---|---|---|---|
| AccessAlly Managed | Simplest option, no CRM setup | $97-$497/mo | Low |
| ActiveCampaign | Advanced automation, most popular | $29-$149/mo | Medium |
| Ontraport | Full CRM + automation | $79-$297/mo | Medium-High |
| Kit (ConvertKit) | Simple, creator-focused | $25-$259/mo | Low |
| Keap | Sales teams, full CRM | $159-$229/mo | High |
| Drip | E-commerce focused | $39-$1,899/mo | Medium |
Selection Criteria:
- Budget: What can you afford? (Factor in email send volume – many CRMs charge per contact)
- Technical skills: ActiveCampaign/Keap have steeper learning curves than Kit/AccessAlly Managed
- Automation needs: Complex funnels? Choose ActiveCampaign or Ontraport. Simple sequences? Kit works.
- Current tools: Already using a CRM for email? Use that one with AccessAlly.
- Ease of migration: AccessAlly Managed = zero CRM setup. Others require configuration.
Step 4: Create Your Data Mapping Spreadsheet
This is the most important planning document for your migration. It maps your current structure to AccessAlly’s structure.
Create a spreadsheet with these tabs:
- Membership Levels → Tags: Map current levels/tiers to CRM tags
- Member List: All members with email, name, current level, status
- Product List: All courses/products with pricing and access rules
- Content Inventory: All courses, modules, lessons with current URLs
- Subscription Status: Active subscriptions with billing dates and amounts
Example Mapping (Tab 1: Levels → Tags):
| Current Platform Level | AccessAlly CRM Tag | What It Grants Access To |
|---|---|---|
| Basic Member | Member: Basic | Course 101, Community Access |
| Premium Member | Member: Premium | All courses, Community, Monthly Calls |
| Course A Only | Product: Course A | Course A only |
Use the Data Mapping Reference Guide as a template.
Step 5: Decide on Subscription Migration Strategy
If you have active subscriptions, you need a plan for handling them. This is often the trickiest part of any migration.
Option 1: Transfer Subscriptions to New Payment Gateway (Best if possible)
- When it works: Your current platform uses Stripe or PayPal directly (you have direct access)
- Process: Keep same Stripe/PayPal account, connect it to AccessAlly
- Pros: Subscriptions continue uninterrupted, no member action needed
- Cons: Requires webhook reconfiguration, thorough testing
- Success rate: High if done correctly
Option 2: Grandfather Existing Subscriptions (Safest)
- When it works: When you can’t transfer subscriptions (proprietary payment system)
- Process: Keep old platform for legacy subscriptions, use AccessAlly for new sales
- Pros: No member disruption, no churn risk
- Cons: Run two systems simultaneously (6-18 months), sync complexity
- Success rate: Very high, but operationally complex
Option 3: Request Member Re-Subscription (Risky)
- When it works: Highly engaged community, strong incentive offered
- Process: Ask members to cancel old subscription, re-subscribe on new platform
- Pros: Clean break from old platform
- Cons: 20-40% may not complete re-subscription (churn), member frustration
- Success rate: Medium – expect significant churn
Phase 2: Infrastructure Setup (Before Member Data)
Step 6: Set Up WordPress Hosting
If you’re moving from a hosted platform, you’ll need WordPress hosting.
Recommended hosts for AccessAlly:
- WP Engine: $30-$100/mo – Excellent support, automatic backups, staging sites
- Kinsta: $35-$100/mo – Fast, reliable, great for course sites
- Flywheel: $15-$50/mo – Designer-friendly, good performance
- Cloudways: $10-$80/mo – Flexible, good value, requires more technical knowledge
Minimum requirements:
- 2GB RAM minimum (4GB+ recommended for 500+ members)
- SSD storage
- PHP 8.0 or higher
- MySQL 5.7 or higher
- SSL certificate (usually included)
- Daily backups
- Staging environment (critical for testing)
Step 7: Install and Configure AccessAlly
- Install WordPress (most hosts offer one-click installer)
- Choose a theme: Astra, GeneratePress, or Kadence recommended (lightweight, compatible)
- Install AccessAlly plugin (upload from your AccessAlly account)
- Enter license key (AccessAlly → Settings → License)
- Connect your CRM:
- Go to AccessAlly → Settings → General
- Select your CRM
- Enter API credentials (get from your CRM account)
- Test connection
- Configure payment gateway:
- AccessAlly → Settings → Payment Integration
- Choose Stripe or PayPal
- Enter API keys
- Configure webhooks
- Test in test mode first
CRM setup resources:
Step 8: Create Tag Taxonomy in CRM
Using your data mapping spreadsheet, create all necessary tags in your CRM before importing members.
Recommended tag structure:
- Product Tags: Grant access to specific courses/products
- Format: “Product: [Course Name]” or “Access: [Course Name]”
- Example: “Product: Beginner Course”, “Product: Premium Membership”
- Status Tags: Track member lifecycle
- Format: “Status: [Status Type]”
- Example: “Status: Active”, “Status: Cancelled”, “Status: Trial”
- Tier Tags: Group multiple products (if using membership levels)
- Format: “Member: [Tier Name]”
- Example: “Member: Basic”, “Member: Premium”, “Member: VIP”
- Progress Tags: Track engagement (optional but useful)
- Format: “Progress: [Milestone]”
- Example: “Progress: Course 50% Complete”, “Progress: Certified”
Phase 3: Content Migration
Step 9: Recreate Course Structure
AccessAlly uses “Modules” for course organization. Each course becomes a Module.
- Go to AccessAlly → Modules → Add New
- Create a module for each course:
- Module name (matches your course name)
- Access rule: “Has tag: Product: [Course Name]”
- Icon/image (optional but recommended)
- Set module visibility:
- Show only to members with access tag
- OR show to everyone but content is locked (teaser strategy)
- Configure module settings:
- Progress tracking (on/off)
- Completion certificates (if desired)
- Navigation style
Step 10: Migrate Course Content
Content migration strategies depend on your current platform’s export capabilities.
Strategy A: Manual Copy-Paste (Most Common)
- Create WordPress posts for each lesson
- Copy lesson content from old platform
- Paste into WordPress post editor
- Reformat using Gutenberg blocks or page builder
- Add each lesson to appropriate AccessAlly Module
- Set access rules on each post
Strategy B: HTML Export + Import (If Available)
- Export lesson content as HTML (if platform supports it)
- Use WordPress import tools to bulk import
- Clean up formatting issues
- Assign to AccessAlly Modules
- Set access rules
Strategy C: Fresh Start (Cleanest)
- Rewrite content from scratch in WordPress
- Use migration as opportunity to improve content
- Update outdated material
- Most time-intensive but best result
Step 11: Handle Video Migration
Video hosting depends on your current setup:
If videos are platform-hosted (Podia, Teachable, etc.):
- Download all video files (if platform allows)
- Choose new video host: Vimeo ($12-$75/mo), Wistia ($19-$99/mo), or YouTube (free but public)
- Upload videos to new host
- Configure privacy settings (important for paid content!)
- Embed videos in AccessAlly lessons using embed codes
If videos are already on Vimeo/Wistia/YouTube:
- Simply copy embed codes to new AccessAlly lessons
- Verify privacy settings (don’t expose paid content)
- Update video domain restrictions if applicable
Step 12: Create Member Dashboard and Navigation
- Create member dashboard page:
- Use AccessAlly’s module navigation blocks
- Show all modules member has access to
- Display progress indicators
- Add welcome message or announcements
- Set up navigation menus:
- Create different menus for logged-in vs. logged-out users
- Link to dashboard, courses, profile, support
- Configure login/logout pages:
- Custom login page (optional but recommended)
- Redirect after login → dashboard
- Redirect after logout → homepage
Phase 4: Member Data Migration
Step 13: Prepare Member Import CSV
Transform your exported member data into AccessAlly import format.
Required CSV columns:
email– Email address (required)first_name– First namelast_name– Last nametags– Comma-separated list of CRM tag names (e.g., “Product: Course A, Status: Active”)- Any custom fields defined in your CRM
CSV preparation steps:
- Open your member export in Excel/Google Sheets
- Map current membership levels to AccessAlly tags using your data mapping spreadsheet
- Create a “tags” column
- Use formulas to generate correct tag strings based on member tier
- Clean email addresses (remove invalid/test accounts)
- Validate data (no missing emails, no duplicate emails)
- Save as CSV: “members-for-accessally-import.csv”
Example formula for tag conversion:
// If column D contains "Premium Member", add "Member: Premium, Status: Active" =IF(D2="Premium Member", "Member: Premium, Status: Active", IF(D2="Basic Member", "Member: Basic, Status: Active", ""))
Step 14: Test Import on Staging Site
NEVER import directly to your live site first. Always test on staging.
- Create 5-10 test member records (one from each membership tier)
- Upload test CSV to AccessAlly Migration Wizard on staging site
- Review import preview:
- Correct tags assigned?
- WordPress users will be created?
- CRM contacts will be created?
- Run import
- Verify results:
- Check WordPress → Users (users created?)
- Check CRM (contacts created with correct tags?)
- Check user meta (Subscriber ID stored?)
- Test login as test member
- Verify access to correct content
- Fix any issues before importing full member list
Step 15: Import Full Member List
Once test import succeeds on staging, import your full member list.
- On staging site: AccessAlly → Migration Wizard
- If you don’t see Migration Wizard, download plugin: instructions
- Upload full member CSV
- Map columns:
- email → Email
- first_name → First Name
- last_name → Last Name
- tags → Tags
- Configure import options:
- ✅ Create WordPress users
- ✅ Create CRM contacts
- ✅ Add tags
- ❌ Send confirmation email (members already opted in)
- Start import (processing speed: ~100-200 members per minute)
- Monitor progress and review any errors
- Verify random sample:
- Pick 20 members randomly
- Verify WordPress user exists
- Verify CRM contact exists with tags
- Verify Subscriber ID linkage
Step 16: Create Order Forms for Products
Set up order forms so new members can purchase on your AccessAlly site.
- Go to AccessAlly → Order Forms → Add New
- For each product/course, create an order form:
- Product name and description
- Price and billing frequency
- Payment gateway (Stripe or PayPal)
- Post-purchase actions:
- Assign tag (e.g., “Product: Course Name”)
- Create WordPress user (if not existing)
- Redirect to thank you page or course dashboard
- Embed order form on sales page using shortcode
- Test purchase flow end-to-end:
- Complete test purchase
- Verify payment processes
- Verify WordPress user and CRM contact created
- Verify tag assigned
- Verify access granted immediately
Phase 5: Testing and Launch
Step 17: Comprehensive Testing Checklist
Test EVERYTHING on staging before launch:
✅ Member Access Testing
- Test login for each membership tier
- Verify correct content access for each tier
- Verify restricted content blocks non-members
- Test password reset
- Test profile editing
✅ Purchase Flow Testing
- Complete test purchase for each product
- Verify payment processes
- Verify WordPress user created
- Verify CRM contact created with tag
- Verify access granted immediately
- Verify email receipt sent
✅ Course Navigation Testing
- Navigate through lessons
- Test video playback
- Test downloadable resources
- Test progress tracking
- Test “Mark Complete” buttons
- Test course navigation (prev/next)
✅ Subscription Testing (if applicable)
- Test subscription purchase
- Verify recurring billing set up in Stripe/PayPal
- Test subscription renewal webhook
- Test subscription cancellation
- Verify access removed on cancel
Step 18: Communication Strategy
Communicate with members about the migration:
2 weeks before migration:
- Email announcement: migration happening, benefits, timeline
- Post in community (if applicable)
- Address on social media
48 hours before migration:
- Reminder email: specific date/time of migration
- Expected downtime window (if any)
- What members need to do (usually nothing, or password reset)
- Support contact in case of issues
Launch day:
- Migration complete email
- Link to new site
- Login instructions (use password reset if needed)
- Video walkthrough (highly recommended!)
- Support availability
Step 19: Launch and Monitor
- Final data sync: Export any new members added since last export, import to AccessAlly
- Switch domain/DNS (if changing domains) or launch new site
- Monitor closely for first 24 hours:
- Watch for login issues
- Monitor support tickets/emails
- Check for access problems
- Watch for payment issues
- Respond quickly to issues (have team on standby launch day)
- Gather feedback: Ask members how migration went
Step 20: Post-Migration Verification
Work through the complete Post-Migration Verification Checklist. Key items:
- Verify total member count matches old platform
- Spot-check 20+ random members for correct access
- Verify Subscriber IDs properly stored
- Test new purchases
- Monitor email deliverability
- Check for any error patterns in support tickets
- Verify subscription renewals work (wait for first renewal)
When to Hire Professional Help
Consider hiring AccessAlly migration services if:
- You have 500+ members (high stakes, complex data)
- You lack WordPress or technical skills
- Your platform doesn’t provide clean data exports
- You have complex subscription billing (multiple tiers, payment plans)
- You can’t afford downtime or member churn
- Your time is more valuable spent on other business activities
- You’ve read this guide and feel overwhelmed
Professional migration services typically include:
- Complete data extraction and transformation
- WordPress and AccessAlly setup
- CRM configuration
- Content migration (or guidance on DIY content migration)
- Member import
- Testing and verification
- Launch support
Expected cost: $2,000-$8,000 depending on complexity and member count
Timeline: 2-4 weeks for professional migration
Contact AccessAlly for professional migration services: https://accessally.com/contact/
DIY if: You have WordPress skills, < 200 members, clean data exports available, time to invest (30-50 hours), can afford some trial-and-error Professional help if: Limited technical skills, 500+ members, messy data, complex subscriptions, can’t afford downtime/churn, your time is worth more than the service cost
Common Migration Challenges and Solutions
Challenge 1: No Data Export Available
Solution:
- Contact platform support and request data export
- Check if platform has API (hire developer to extract via API)
- Manual data entry for small lists (< 50 members)
- Use web scraping tools (last resort, check terms of service)
Challenge 2: Can’t Transfer Active Subscriptions
Solution:
- Use “grandfather” strategy (keep old platform for legacy subscriptions)
- Offer incentive for members to re-subscribe on new platform
- Accept some churn as cost of migration
Challenge 3: Course Progress Data Not Available
Solution:
- Accept that progress will reset (communicate this to members)
- Offer to manually mark courses complete for members who request it
- Use migration as fresh start for engagement
Challenge 4: Community Features Don’t Transfer
Solution:
- Add WordPress community plugin (BuddyBoss, PeepSo)
- Use external platform (Circle, Mighty Networks, Discord)
- Export important discussions manually (screenshots or PDFs)
- Accept some community history loss
Challenge 5: Members Report Access Issues After Migration
Solution:
- Check if WordPress user exists
- Verify CRM contact has correct tags
- Verify Subscriber ID is stored in WordPress user meta
- Test CRM connection (AccessAlly → Settings)
- Manually fix individual member issues as reported
Migration Timeline and Effort
Estimated time breakdown (DIY):
| Phase | Time Estimate |
|---|---|
| Discovery & Planning | 4-8 hours |
| Infrastructure Setup (WordPress, CRM, AccessAlly) | 3-5 hours |
| Content Migration | 10-20 hours (depends on course count) |
| Member Data Preparation and Import | 5-8 hours |
| Testing | 4-6 hours |
| Launch and Monitoring | 2-4 hours |
| TOTAL | 28-51 hours |
Variables that increase time:
- Large member count (500+ members)
- Many courses (10+ courses)
- Complex membership tiers (5+ levels)
- Poor data exports (requires manual cleanup)
- Custom features that need recreation
- Active subscriptions requiring complex handling
Success Checklist
- ☐ All critical questions answered (Step 1)
- ☐ Data export completed and verified
- ☐ CRM chosen and configured
- ☐ Data mapping spreadsheet complete
- ☐ Subscription strategy decided
- ☐ WordPress hosting set up
- ☐ AccessAlly installed and connected to CRM
- ☐ Payment gateway configured and tested
- ☐ Tag taxonomy created in CRM
- ☐ All course modules created
- ☐ All lesson content migrated
- ☐ Videos re-hosted and embedded
- ☐ Member import CSV prepared
- ☐ Test import successful on staging
- ☐ Full member import completed
- ☐ Order forms created and tested
- ☐ Comprehensive testing completed
- ☐ Member communication sent
- ☐ Site launched
- ☐ Post-migration verification complete
Need Help?
Professional Migration Services:
- AccessAlly Migration Services: Contact AccessAlly
- Timeline: 2-4 weeks for professional migration
- Cost: $2,000-$8,000 depending on complexity
DIY Support:
- Review Migration Support Policy
- For migration questions: Contact AccessAlly support
- Note: DIY migrations receive limited support – professional help recommended for complex migrations
Related Guides:
- Pre-Migration Checklist
- Post-Migration Verification
- Data Mapping Reference
- Migration Wizard Plugin Download
- AccessAlly Modules Overview