1. Home
  2. Migrations
  3. Complete Guide: Migrating from Teachable to AccessAlly

Complete Guide: Migrating from Teachable to AccessAlly

ARTICLE CONTENT:

Complete Guide: Migrating from Teachable to AccessAlly

🔴 HIGH COMPLEXITY MIGRATION – READ CAREFULLY
📊 Migration Complexity: HIGH (Platform Change)
⏱️ Estimated Time: 35-55 hours (professional help recommended)
🛠️ Technical Level: Advanced – Requires WordPress + AccessAlly expertise
💰 Cost Impact: Variable – depends on CRM choice and current Teachable plan

Why This Migration Is Complex

Migrating from Teachable to AccessAlly is NOT like switching CRMs. This is a complete platform migration involving:

  • Platform Change: Moving from all-in-one SaaS (Teachable) to WordPress-based solution (AccessAlly)
  • Infrastructure Setup: Setting up WordPress hosting, domain, SSL, email deliverability
  • CRM Selection: Choosing and configuring a separate CRM (ActiveCampaign, Ontraport, Keap, Kit, etc.)
  • Content Recreation: Manually rebuilding all courses, lessons, and content in WordPress
  • Member Data Migration: Moving student accounts, purchases, access levels, and progress
  • Email Setup: Configuring transactional and marketing email systems
  • Payment Gateway: Setting up Stripe/PayPal integration separately
  • Sales Page Rebuild: Recreating all sales and marketing pages in WordPress
⚠️ Recommendation: Hire Professional Help
Unless you have WordPress development experience and AccessAlly expertise, we strongly recommend hiring professional migration assistance. This is not a beginner-friendly DIY project. Budget 35-55 hours minimum for DIY or expect $2,500-$7,000 for professional migration services.

Why Migrate from Teachable to AccessAlly?

Common reasons for migrating despite the complexity:

  • Cost Savings: Teachable costs $39-$249/month + 5-10% transaction fees. AccessAlly + hosting + CRM can cost $50-$150/month with NO transaction fees
  • Eliminate Transaction Fees: Teachable’s 5-10% transaction fee adds up fast. AccessAlly has zero transaction fees
  • Ownership & Control: Own your WordPress site and data vs. being locked into Teachable’s platform
  • Flexibility: WordPress offers unlimited customization options vs. Teachable’s templates
  • Advanced Features: AccessAlly offers more sophisticated membership/course logic than Teachable
  • Integration Options: WordPress has 60,000+ plugins for any functionality you need
  • Better Marketing Tools: AccessAlly integrates with powerful CRMs for advanced marketing automation
  • Exit Strategy: Reduce dependency on a single SaaS vendor

What You’ll Lose (Teachable Features Not in AccessAlly)

Be realistic about what you’re giving up:

  • All-in-One Simplicity: Teachable handles hosting, security, backups, updates automatically
  • Built-in Course Player: Teachable’s course player works perfectly out of the box – AccessAlly requires configuration
  • Course Compliance: Teachable automatically handles SCORM compliance (if needed for corporate training)
  • Student Messaging: Teachable’s built-in student communication features (you’ll need separate plugin)
  • Course Certificates: Automatic certificate generation (AccessAlly requires plugin)
  • Built-in Quizzes: Teachable’s quiz engine (use LearnDash Quiz or similar)
  • 24/7 Platform Support: Teachable’s support team vs. managing your own WordPress site
  • Teachable Analytics: Built-in comprehensive analytics (you’ll piece together with plugins)
  • Automatic Course Backups: Teachable backs up everything – you’ll manage WordPress backups

What You’ll Need Before Starting

✅ Required Services & Accounts

  1. WordPress Hosting:
    • Managed WordPress host recommended: WP Engine, Kinsta, Flywheel, Cloudways
    • Minimum specs: 2GB RAM, SSD storage, PHP 8.0+, MySQL 5.7+
    • Budget: $30-$100/month depending on traffic
  2. Domain Name:
    • Transfer from Teachable or register new domain
    • SSL certificate (usually included with hosting)
  3. AccessAlly License:
    • Professional or higher plan (supports full course features)
    • Price: Starting at $83/month annually
  4. CRM Selection: Choose ONE of the following:
    • ActiveCampaign: $29-$149/month – Best for advanced automation
    • Ontraport: $79-$297/month – All-in-one CRM + automation
    • Keap (Infusionsoft): $159-$229/month – Full CRM/sales features
    • Kit (ConvertKit): $25-$259/month – Simple, creator-focused
    • Drip: $39-$1,899/month – E-commerce focused
    • AccessAlly Managed: $97-$497/month – Easiest setup (AccessAlly handles it)
  5. Payment Gateway:
    • Stripe account (recommended) OR PayPal Business
    • Cannot transfer existing subscriptions from Teachable’s payment system – see subscription migration section
  6. Email Sending Service: Choose ONE of the following:
    • SendGrid: Transactional emails (free up to 100/day)
    • Mailgun: Transactional emails (pay-as-you-go)
    • Amazon SES: Very cheap, requires technical setup
    • OR use CRM for all emails (if your CRM supports transactional emails)

📋 Technical Requirements

  • WordPress admin skills (creating pages, installing plugins, basic troubleshooting)
  • Basic HTML/CSS knowledge (for styling content after migration)
  • Spreadsheet skills (for CSV data transformation)
  • Understanding of DNS (for domain switching)
  • Familiarity with FTP or hosting control panel
🚨 STOP HERE IF:
If you don’t have the technical skills listed above, DO NOT ATTEMPT THIS MIGRATION ALONE. Contact AccessAlly for professional migration services or hire a WordPress developer with AccessAlly experience. DIY migration without proper skills will result in broken access, lost content, and frustrated students.

📋 Complete the Pre-Migration Checklist

Before proceeding, work through the complete Pre-Migration Checklist. Key items include:

  • Teachable data export (students, courses, content, analytics)
  • Audit of current student count, courses, and revenue
  • Data mapping spreadsheet (Teachable courses → AccessAlly structure)
  • WordPress hosting setup and testing
  • Staging environment for migration testing
  • Downtime plan and student communication strategy
  • Backup plan in case migration fails

Phase 1: Planning & Infrastructure Setup (8-12 hours)

Step 1: Choose Your CRM

Unlike Teachable (all-in-one), AccessAlly requires a separate CRM for student management and email marketing. This is a critical decision that affects your entire migration.

CRM Selection Guide:

CRM Best For Pros Cons Price
AccessAlly Managed Simplest transition, non-technical users Zero CRM setup, AccessAlly handles it Less flexibility, higher cost at scale $97-$497/mo
ActiveCampaign Advanced automation, segmentation Powerful automations, affordable Complex interface, learning curve $29-$149/mo
Ontraport All-in-one CRM + marketing CRM features, membership sites Expensive, overkill for some $79-$297/mo
Kit (ConvertKit) Creators, simple email marketing Easy to use, creator-focused Limited custom fields, no CRM $25-$259/mo
Keap Sales teams, CRM + automation Full CRM, pipeline management Expensive, complex setup $159-$229/mo

Recommendation for Teachable users:

  • If you value simplicity: AccessAlly Managed Contacts (easiest transition)
  • If you want power + affordability: ActiveCampaign (most popular choice)
  • If you need full CRM: Ontraport or Keap
  • If you’re a solo creator: Kit (simplest email marketing)

Step 2: Set Up WordPress Hosting & Install AccessAlly

  1. Sign up for managed WordPress hosting (WP Engine, Kinsta, or similar)
  2. Install WordPress (usually one-click installer in hosting control panel)
  3. Install essential plugins:
    • AccessAlly (your license)
    • SSL certificate (usually included with hosting)
    • Backup plugin (UpdraftPlus, BackupBuddy, etc.)
    • Security plugin (Wordfence, Sucuri, etc.)
  4. Choose a WordPress theme:
    • Use AccessAlly-compatible theme (Astra, GeneratePress, Kadence recommended)
    • Or use page builder (Elementor, Beaver Builder, Divi)
  5. Configure basic WordPress settings:
    • Set permalinks to “Post name” (Settings → Permalinks)
    • Disable comments (if not needed)
    • Set timezone correctly
  6. Test site performance and security before proceeding
💡 Pro Tip: Set up a staging site for testing the migration before going live. Most managed hosts include free staging sites. Test EVERYTHING on staging before touching your live Teachable site.

Step 3: Set Up Your CRM and Connect to AccessAlly

  1. Create CRM account (based on Step 1 choice)
  2. Complete basic CRM setup:
    • Configure sender email and domain authentication
    • Set up email deliverability (SPF, DKIM, DMARC records)
    • Test email sending
  3. Connect CRM to AccessAlly:
    • Go to AccessAlly → Settings → General
    • Select your CRM
    • Enter API credentials (varies by CRM)
    • Test connection
  4. Verify connection works by creating a test contact

CRM setup resources:

Step 4: Configure Payment Gateway (Stripe or PayPal)

  1. Create or connect Stripe/PayPal account
  2. In AccessAlly, go to Settings → Payment Integration
  3. Choose payment processor (Stripe recommended)
  4. Enter API credentials:
    • Stripe: API Keys from Stripe Dashboard → Developers → API Keys
    • PayPal: API credentials from PayPal Developer Dashboard
  5. Configure webhook URLs (AccessAlly provides these)
  6. Test mode first: Use test API keys to verify setup works
  7. Complete test purchase to verify end-to-end payment flow
  8. Switch to live mode when testing passes
🚨 CRITICAL: Subscription Migration
Teachable’s payment system is proprietary. You CANNOT automatically transfer active subscriptions from Teachable to Stripe/PayPal. You have two options:

  1. Grandfather existing subscriptions: Let current subscribers stay on Teachable payments until they cancel, move new sales to AccessAlly
  2. Request student re-subscription: Offer free months or incentive for students to cancel Teachable subscription and re-subscribe through AccessAlly (risky – expect churn)

See Step 13 for detailed subscription migration strategies.

Step 5: Export All Data from Teachable

Teachable provides limited export capabilities. You’ll need to export data from multiple places.

Student Data Export:

  1. Go to Teachable → Users → Students
  2. Click Export (top right)
  3. Download CSV
  4. This includes: Email, Name, Enrollment Date, Courses Enrolled, Progress
  5. Note: Teachable limits export to 5,000 students at a time – export in batches if needed

Course Sales/Enrollment Export:

  1. Go to Teachable → Sales → Reports
  2. Export “Orders” report
  3. Includes: Student email, Course purchased, Date, Price, Payment status
  4. This helps map which students have access to which courses

Content Export (CRITICAL – Manual Process):

  1. Course Content: Teachable does NOT export course content – you’ll manually copy/recreate
    • Screenshot course structure (sections and lectures)
    • Copy text content to Google Docs or Word for each lecture
    • Download all course videos:
      • Go to Library → Videos
      • Download each video file
      • Note: Download quality may be lower than original upload
    • Download course PDFs and attachments from each lecture
  2. Sales Pages:
    • Screenshot each sales page layout
    • Copy sales copy to document
    • Download sales page images
  3. Email Campaigns:
    • Teachable has limited email features – document any automated emails
    • Copy welcome email templates
🚨 CRITICAL: Content Export Limitation
Teachable does NOT provide bulk content export. You MUST manually copy each lecture’s text, download videos, and download attachments. For a course with 50 lectures, this alone can take 10-15 hours. Budget extra time for content extraction.

Analytics/Reports Export:

  1. Go to Teachable → Analytics
  2. Export key reports for reference:
    • Revenue reports
    • Student enrollment trends
    • Course completion rates
    • Email performance (if using Teachable emails)
  3. Save PDFs or screenshots of reports for historical reference

Step 6: Map Teachable Courses to AccessAlly Structure

Teachable’s course structure is different from AccessAlly. You need to map how Teachable courses translate to AccessAlly products and access rules.

Create a mapping spreadsheet using the Data Mapping Reference Guide.

Teachable Structure AccessAlly Equivalent Access Rules CRM Tags Needed
Teachable Course AccessAlly Module (course structure) Tag-based access “Course: [Name]”
Teachable Section AccessAlly Module Section (grouping) Same as course tag Inherited from course
Teachable Lecture WordPress Post in Module Inherited from module Same as course
Teachable Pricing Plan AccessAlly Order Form + Product Price + tag assignment Tag assigned on purchase
Teachable Coaching Bundle Multiple products/tags Multiple tags assigned All included course tags

AccessAlly product structure concepts:

  • Modules: AccessAlly’s course structure (like Teachable courses)
  • Posts: Individual course lessons (like Teachable lectures)
  • Access Rules: Tag-based (purchase assigns tag, tag grants access)
  • Release Schedules: Time-based content unlocking (drip content)
  • Completion Tracking: Track student progress through courses

Step 7: Plan Content Recreation Strategy

You’ll manually recreate all courses and pages in WordPress. Plan your approach:

Option 1: Recreate Everything from Scratch (Cleanest)

  • Start with blank WordPress site
  • Recreate each course using AccessAlly modules
  • Rebuild pages with your WordPress theme/page builder
  • Pros: Clean, optimized, no Teachable artifacts
  • Cons: Most time-intensive (25-35 hours for content alone)

Option 2: Hybrid Approach (Recommended)

  • Recreate critical pages from scratch (homepage, sales pages)
  • Copy/paste course content (text, images) into WordPress posts
  • Reformat using WordPress editor
  • Pros: Faster than full recreation (18-25 hours)
  • Cons: Some formatting cleanup needed

Option 3: Minimal Viable Migration (Fastest)

  • Copy/paste all content as-is
  • Minimal formatting cleanup
  • Improve design iteratively after launch
  • Pros: Fastest (12-18 hours)
  • Cons: Site may look rough initially
💡 Pro Tip: Use Option 2 (Hybrid). Recreate your student-facing pages from scratch for best first impression, but copy/paste course content to save time. You can always improve course formatting later while students use the site.

Step 8: Create Tag Taxonomy in Your CRM

Plan your tag structure before importing students. AccessAlly uses tags to control access.

Recommended tag categories:

  1. Product Tags: Assigned on purchase, grant access
    • Example: “Course: Course Name”, “Bundle: Bundle Name”
  2. Status Tags: Track student lifecycle
    • Example: “Status: Active”, “Status: Cancelled”, “Status: Refunded”
  3. Progress Tags: Track course progress (optional)
    • Example: “Progress: Module 1 Complete”, “Progress: Course Complete”
  4. Segmentation Tags: Marketing segments
    • Example: “Segment: Beginner”, “Interest: Marketing”

Create tags in your CRM before importing students. This ensures tags exist when you assign them during migration.


Phase 2: Content Migration & Setup (18-28 hours)

Step 9: Recreate Course Structure in AccessAlly

Build your course structure using AccessAlly modules before importing students.

  1. Create an AccessAlly Module for each Teachable course:
    • Go to AccessAlly → Modules → Add New
    • Name it matching your Teachable course
    • Set access rule: “Has tag: Course: [Course Name]”
  2. Create WordPress posts for each lecture:
    • Copy content from Teachable lecture
    • Paste into WordPress post editor
    • Reformat using Gutenberg blocks or page builder
    • Upload and embed videos (host on Vimeo, Wistia, or YouTube)
    • Add lesson to AccessAlly Module
  3. Configure lesson progression:
    • Set completion buttons (AccessAlly “Mark Complete” feature)
    • Configure drip schedule if applicable (release dates or intervals)
    • Set prerequisites (Lesson 2 requires Lesson 1 complete, etc.)
  4. Create module navigation:
    • Use AccessAlly’s module navigation block
    • Show progress bar
    • Previous/Next lesson buttons
  5. Test course flow:
    • Create test student with course tag
    • Navigate through lessons
    • Test completion tracking

Video hosting options:

  • Vimeo Pro/Plus: $12-$75/month – privacy controls, no ads
  • Wistia: $19-$99/month – marketing features, detailed analytics
  • YouTube (Unlisted): Free – but no privacy, shows YT branding
  • Self-host: Not recommended – huge bandwidth costs
🚨 VIDEO MIGRATION: Teachable videos must be re-uploaded to your new video host. Download all videos from Teachable Library, then upload to Vimeo/Wistia. This takes significant time and bandwidth. Budget extra time for large video libraries. Note: Downloaded videos from Teachable may be lower quality than original uploads.

Step 10: Recreate Sales Pages and Website Structure

  1. Homepage: Recreate using your WordPress theme or page builder
  2. Sales pages: Rebuild course sales pages
    • Copy sales copy from Teachable
    • Recreate design in WordPress
    • Add AccessAlly order forms (see Step 11)
  3. About/Contact pages: Standard WordPress pages
  4. Student dashboard: Create landing page for logged-in students
    • Show available courses
    • Link to module pages
    • Use AccessAlly’s member dashboard widgets
  5. Navigation menus:
    • Create WordPress menus (Appearance → Menus)
    • Different menus for logged-in vs. logged-out users

Step 11: Create Order Forms for Products

AccessAlly uses custom order forms that integrate with your payment gateway and CRM.

  1. Go to AccessAlly → Order Forms → Add New
  2. Configure product details:
    • Product name and description
    • Price and billing frequency (one-time, subscription, payment plan)
    • Payment gateway (Stripe or PayPal)
  3. Set post-purchase actions:
    • Assign tag: “Course: [Course Name]” (this grants access)
    • Create WordPress user: If not already a student
    • Send welcome email: Configure in CRM automation
    • Redirect: Thank you page or course dashboard
  4. Customize form fields:
    • Email (required)
    • Name (required)
    • Payment details
    • Optional: Phone, address, custom fields
  5. Style form to match your site design
  6. Embed form on sales page using shortcode
  7. Test purchase flow end-to-end:
    • Complete test purchase
    • Verify payment processes
    • Verify tag assigned in CRM
    • Verify WordPress user created
    • Verify access to course

Map each Teachable pricing plan to an AccessAlly order form.

Step 12: Set Up Email Deliverability

Unlike Teachable (built-in email), you must configure email sending separately.

Two types of emails to configure:

  1. Transactional Emails: Purchase receipts, password resets, system notifications
    • Option 1: Use SendGrid/Mailgun/Amazon SES + WP Mail SMTP plugin
    • Option 2: Use your CRM if it supports transactional emails
  2. Marketing Emails: Newsletters, campaigns, sequences
    • Sent from your CRM (ActiveCampaign, Kit, Ontraport, etc.)

Configure WordPress transactional emails:

  1. Install WP Mail SMTP plugin
  2. Connect to SendGrid, Mailgun, or Amazon SES
  3. Configure SMTP settings (provided by email service)
  4. Test email sending (plugin has test feature)
  5. Verify password reset and purchase receipt emails work

Configure CRM marketing emails:

  1. Set up domain authentication in CRM (SPF, DKIM, DMARC records)
  2. Verify sender email
  3. Test broadcast email send
  4. Check spam score and deliverability
🚨 CRITICAL: Email Deliverability
Poor email setup = emails go to spam = students can’t access purchases. Test email deliverability thoroughly before launch. Use tools like Mail-Tester.com to check spam score. Ensure SPF, DKIM, and DMARC records are properly configured.

Phase 3: Student Data Migration (6-10 hours)

Step 13: Handle Active Subscriptions

This is the most complex part of Teachable → AccessAlly migration. Teachable uses proprietary payment processing, so active subscriptions cannot automatically transfer.

Strategy 1: Grandfather Existing Subscriptions (Recommended)

  1. Keep Teachable active temporarily (consider downgrading plan)
  2. Existing subscribers stay on Teachable payment system
  3. Grant them access in AccessAlly site using their tags
  4. Configure Zapier/Make to sync:
    • When enrollment created in Teachable → add tag in CRM
    • When enrollment cancelled in Teachable → remove tag in CRM
  5. New purchases happen on AccessAlly site (Stripe/PayPal)
  6. Over time, existing subscribers naturally churn/cancel
  7. Eventually all students on AccessAlly payment system
  8. Cancel Teachable when last legacy subscriber cancels

Pros: No student disruption, no churn risk, clean student experience

Cons: Maintain Teachable + AccessAlly simultaneously (6-18 months), ongoing sync complexity

Strategy 2: Request Student Re-Subscription (High Risk)

  1. Email all active subscribers announcing migration
  2. Offer incentive to re-subscribe (e.g., “Cancel Teachable, get 2 free months on new site”)
  3. Provide clear instructions:
    • Cancel Teachable subscription
    • Sign up on new site (use unique URL with coupon)
  4. Risk: 20-40% may not complete re-subscription (churn loss)
  5. Mitigation: Generous incentive, excellent communication, personal outreach

Pros: Clean break from Teachable, simplified system

Cons: High churn risk, student frustration, revenue loss

💡 Recommendation: Use Strategy 1 (Grandfather) for lists > 50 active subscribers. Use Strategy 2 (Re-subscription) only if you have high student engagement and can afford churn. For small schools (< 20 active subscribers), Strategy 2 may be acceptable with strong incentives.

Step 14: Prepare Student Import CSV

Transform your Teachable student export into AccessAlly import format.

Required columns for AccessAlly import:

  • email – Email address (required)
  • first_name – First name
  • last_name – Last name
  • tags – Comma-separated list of CRM tag names
  • Any custom fields you created in CRM

CSV transformation steps:

  1. Open Teachable student export in Excel or Google Sheets
  2. Cross-reference with Orders export to map course enrollments
  3. Map Teachable courses to AccessAlly tags:
    • If student enrolled in “Course Name” → add “Course: Course Name” to tags column
    • If student has active subscription → add “Status: Active” to tags column
    • If student cancelled → add “Status: Cancelled” to tags column
  4. Create tag conversion formulas:
    // Example: If "Course" column contains "Course Name", append "Course: Course Name" to tags
    =IF(ISNUMBER(SEARCH("Course Name", D2)), "Course: Course Name, ", "") & E2
    
  5. Consolidate tags into single comma-separated column
  6. Remove sensitive data (Teachable subscription IDs, payment info)
  7. Validate email addresses (remove invalid/test emails)
  8. Save as new CSV: “teachable-to-accessally-import.csv”

Step 15: Import Students via Migration Wizard

  1. On staging site first, go to AccessAlly → Migration Wizard
  2. If you don’t see Migration Wizard, download and activate the plugin (instructions)
  3. Click “Import from CSV”
  4. Upload your prepared CSV file
  5. Map CSV columns:
    • email → Email
    • first_name → First Name
    • last_name → Last Name
    • tags → Tags (comma-separated)
  6. Choose import options:
    • Create users in WordPress: Check (creates WP accounts)
    • Create users in CRM: Check (creates CRM contacts)
    • Add tags: Check (applies product/access tags)
    • Send confirmation email: UNCHECK (students already opted in)
  7. Start import
  8. Monitor progress: ~100-200 students per minute
  9. Review import log for any errors

What happens during import:

  • WordPress user account created for each student
  • Contact created in CRM with email, name, tags
  • CRM Subscriber ID stored in WordPress user meta (critical for linking)
  • Tags applied in CRM (grants access to courses)

Step 16: Verify Student Access

Test that imported students can access their purchased content.

  1. Pick 5-10 test students from different course enrollments
  2. For each student:
    • Verify WordPress user exists
    • Verify CRM contact exists with correct tags
    • Verify Subscriber ID stored in WP user meta
    • Test login (use password reset to set password)
    • Verify they can access their courses
    • Verify they CANNOT access courses they didn’t purchase
  3. Fix any access issues before proceeding
🚨 CRITICAL: Test Access Rules
The #1 issue with platform migrations is incorrect access rules. Students get frustrated when they can’t access content they paid for. Test access thoroughly with real student accounts before launching.

Step 17: Rebuild Automations in CRM

Teachable has limited email automation. Recreate what exists and improve in your new CRM.

Common automations to create:

Automation Type CRM Implementation
Welcome sequence CRM sequence/automation triggered by course tag
Post-purchase emails Tag trigger automation
Course completion emails Tag-based automation (AccessAlly adds completion tag)
Cart abandonment CRM automation + AccessAlly abandoned cart tracking
Re-engagement campaigns CRM broadcast or automation based on engagement tags

Steps to create automations:

  1. Document each Teachable email (if any automated emails exist)
  2. Identify triggers: What starts the automation? (enrollment, completion, etc.)
  3. Identify actions: What happens? (send email, assign tag, wait, etc.)
  4. Create in CRM using your CRM’s automation builder
  5. Test each automation:
    • Trigger the automation with a test contact
    • Verify emails send
    • Verify tags apply
    • Verify timing is correct

Phase 4: Testing & Go-Live (5-7 hours)

Step 18: Comprehensive Testing on Staging

Test EVERYTHING before touching live Teachable site:

✅ Student Access Testing
  • Test login for 5-10 students (different course enrollments)
  • Verify correct course access for each enrollment
  • Verify restricted content blocks non-students
  • Test password reset flow
  • Test student dashboard navigation
✅ Purchase Flow Testing
  • Complete test purchase for each course
  • Verify payment processes (Stripe/PayPal)
  • Verify WordPress user created
  • Verify CRM contact created with tag
  • Verify access granted immediately
  • Verify purchase receipt email sent
  • Verify welcome automation triggers
✅ Course Functionality Testing
  • Navigate through course lessons
  • Test video playback
  • Test downloadable resources
  • Test lesson completion tracking
  • Test drip content release (if applicable)
  • Test prerequisites (can’t skip ahead)
✅ Email Testing
  • Test transactional emails (purchase receipt, password reset)
  • Test welcome sequence triggers
  • Test broadcast email sending
  • Check spam score (Mail-Tester.com)
  • Verify unsubscribe links work
✅ 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 cancellation
  • Test failed payment handling
✅ Performance & Security Testing
  • Test site speed (GTmetrix, Google PageSpeed)
  • Test mobile responsiveness
  • Test SSL certificate (site loads over HTTPS)
  • Test security (no admin username “admin”, strong passwords)
  • Test backup system (restore from backup)
💡 Pro Tip: Have a team member or friend test the student experience from scratch. Fresh eyes catch issues you’ll miss. Pay special attention to first-time user experience – logging in, finding courses, navigating lessons.

Step 19: Plan DNS and Domain Cutover

Switching from Teachable domain to WordPress hosting requires DNS changes.

Option 1: Use Same Domain (Recommended)

  1. Your domain currently points to Teachable
  2. Change DNS A record to point to WordPress hosting IP
  3. DNS propagation takes 1-48 hours (usually < 6 hours)
  4. During propagation, some users see old Teachable site, some see new WordPress site
  5. Coordinate go-live during low-traffic window

Option 2: Use New Domain (Safest but SEO Hit)

  1. Launch AccessAlly site on new domain (e.g., learn.yourdomain.com)
  2. Keep Teachable site running during transition
  3. Add redirects from old Teachable pages to new site
  4. Eventually point main domain to WordPress
  5. Pros: No downtime during transition
  6. Cons: SEO impact, student confusion about URL change

DNS cutover steps (Option 1 – same domain):

  1. Get WordPress site IP address from hosting provider
  2. Access domain registrar DNS settings
  3. Change A record:
    • Old: Points to Teachable IP
    • New: Points to WordPress hosting IP
  4. Lower TTL to 300 seconds (5 minutes) 24 hours before switch
  5. Make DNS change during scheduled downtime window
  6. Monitor DNS propagation: Use whatsmydns.net to check
  7. Once propagated, test site on live domain

Step 20: Go Live

Launch day checklist:

  1. 24-48 hours before:
    • Email students announcing migration and downtime window
    • Provide timeline and what to expect
    • Offer support contact in case of issues
  2. Day of launch:
    • Put Teachable site in maintenance mode (or make announcement banner)
    • Final Teachable data export (capture any students added since last export)
    • Import any new students to AccessAlly
    • Make DNS change (point domain to WordPress)
    • Monitor DNS propagation
    • Once propagated, test live site thoroughly
    • Announce launch to students (site is live)
  3. First 2 hours after launch:
    • Monitor support emails/tickets closely
    • Watch for login issues, access problems, payment errors
    • Have team ready to respond to student questions
    • Fix critical issues immediately

Step 21: Post-Migration Verification

Work through the complete Post-Migration Verification Checklist. Key items for Teachable → AccessAlly:

✅ Student Data Integrity (First 24 Hours)
  • Verify total student count matches Teachable
  • Spot-check 20 random students for correct access
  • Verify Subscriber IDs properly stored in WordPress
  • Check for duplicate accounts (merge if found)
  • Verify student progress/completion data (note: won’t transfer from Teachable)
✅ Access & Permissions (First 48 Hours)
  • Test login for multiple student types
  • Verify access to all purchased content
  • Verify restricted content blocks non-students
  • Test course navigation and lesson progression
  • Verify drip content releases on schedule
✅ Purchase & Payment Flow (First Week)
  • Monitor new purchases closely
  • Verify payment processing (check Stripe/PayPal dashboard)
  • Verify student creation on purchase
  • Verify access granted immediately
  • Verify purchase receipt emails send
  • Test subscription renewal (wait for first renewal)
  • 🚨 CRITICAL: Test failed payment handling
✅ Email Deliverability (First Week)
  • Monitor email deliverability rates
  • Check spam complaints (should be < 0.1%)
  • Verify transactional emails (receipts, password resets)
  • Verify marketing emails (broadcasts, sequences)
  • Test email across multiple providers (Gmail, Outlook, Yahoo)
✅ Automations & Sequences (First 2 Weeks)
  • Verify welcome sequences trigger for new students
  • Verify post-purchase automations fire correctly
  • Verify course completion automations work
  • Monitor automation errors in CRM
  • Fix any automation issues immediately

Step 22: Monitor & Support (First 30 Days)

Day 1-7: High Alert Mode

  • Monitor support tickets/emails constantly
  • Respond to student issues within 2 hours
  • Watch for patterns (same issue reported multiple times?)
  • Fix critical bugs immediately
  • Document workarounds for non-critical issues

Day 8-14: Stabilization

  • Reduce monitoring to 2-3 times per day
  • Start addressing non-critical issues
  • Gather student feedback on new site
  • Make minor improvements based on feedback

Day 15-30: Optimization

  • Analyze student engagement (are they using the site?)
  • Optimize slow-loading pages
  • Improve course content formatting
  • Refine automations based on data
  • Plan content/feature improvements

After 30 days:

  • If no major issues, consider canceling Teachable (if using grandfathered subscriptions, keep for now)
  • Export final Teachable data for records
  • Celebrate successful migration!

Troubleshooting Common Issues

Issue 1: Students Can’t Log In

Symptoms: Students report “Invalid username or password” errors

Causes:

  • WordPress user not created during migration
  • Email address doesn’t match (typo in import CSV)
  • Password not set (first-time WordPress login requires password reset)
  • User account exists but is disabled

Solution:

  1. Search for user in WordPress → Users
  2. If user doesn’t exist: Re-import that student via Migration Wizard
  3. If user exists: Send password reset email (Users → hover over user → Send Password Reset)
  4. If still failing: Check email address matches exactly (case-sensitive)
  5. Verify user role is set (should be “Subscriber” or custom role)

Issue 2: Students Can’t Access Purchased Content

Symptoms: Logged-in student sees “You don’t have permission” on course pages

Causes:

  • Access tag not assigned in CRM
  • Subscriber ID not linked correctly
  • Access rule misconfigured in AccessAlly
  • Tag name mismatch (typo or wrong tag)

Solution:

  1. Check CRM: Does student have correct course tag?
  2. Check WordPress user meta: Is Subscriber ID stored correctly?
  3. Check AccessAlly module settings: Is access rule correct?
  4. Test: Manually add tag to student in CRM, see if access grants
  5. If access grants with manual tag, issue is with tag assignment during purchase/import
  6. If access still doesn’t grant, issue is with Subscriber ID linking

Issue 3: Purchase Completes But Access Not Granted

Symptoms: Student completes purchase, payment processes, but can’t access course

Causes:

  • Order form not configured to assign tag
  • Tag name in order form doesn’t match access rule
  • CRM connection broken
  • WordPress user created but tag not synced to CRM

Solution:

  1. Check order form settings (AccessAlly → Order Forms → edit form)
  2. Verify “Assign Tag” action is configured correctly
  3. Verify tag name matches exactly (case-sensitive)
  4. Test CRM connection (AccessAlly → Settings → Test Connection)
  5. Check recent purchase in CRM – did contact get created with tag?
  6. If not, re-configure order form and test purchase again

Issue 4: Videos Not Playing

Symptoms: Video embed shows error or black screen

Causes:

  • Video not uploaded to video host (Vimeo, Wistia)
  • Video set to private without proper embed settings
  • Incorrect embed code
  • Video host account expired or over quota

Solution:

  1. Verify video exists in video host account
  2. Check video privacy settings (should allow embed on your domain)
  3. Re-copy embed code from video host
  4. Test embed code on simple HTML page
  5. If still failing, try different video host or different embed method

Issue 5: Emails Going to Spam

Symptoms: Students report not receiving purchase receipts or welcome emails

Causes:

  • Email authentication not configured (SPF, DKIM, DMARC)
  • Sending from unverified domain
  • Email content triggers spam filters
  • Poor sender reputation (new domain/IP)

Solution:

  1. Verify email authentication records in DNS (use MXToolbox to check)
  2. Verify sender domain in CRM and email service
  3. Test email with Mail-Tester.com (aim for 9/10 or 10/10 score)
  4. Remove spam trigger words from email content
  5. Ensure all emails have unsubscribe link
  6. Warm up sender reputation (send to engaged list first, gradually increase volume)

Issue 6: Subscription Renewal Fails to Extend Access

Symptoms: Student’s subscription renews in Stripe/PayPal, but access expires in AccessAlly

Causes:

  • Webhook not configured in Stripe/PayPal
  • Webhook URL incorrect
  • Webhook firing but AccessAlly not processing
  • Subscription ID not linked to WordPress user

Solution:

  1. Check Stripe/PayPal webhook settings
  2. Verify webhook URL matches AccessAlly-provided URL (AccessAlly → Settings → Payment Integration)
  3. Check webhook logs in Stripe/PayPal (recent events)
  4. Test webhook by triggering subscription event
  5. Check AccessAlly logs for webhook processing errors
  6. Verify subscription ID stored in WordPress user meta
  7. If webhook failing, contact AccessAlly support with error logs

Migration Timeline & Downtime

Total Time Estimate: 35-55 hours (professional help: 2-3 weeks)

Phase Time (DIY) Time (Professional) Downtime?
CRM Selection & Setup 3-4 hours 1-2 hours ❌ No
WordPress Hosting & AccessAlly Setup 2-3 hours 1 hour ❌ No
Payment Gateway Configuration 2-3 hours 1 hour ❌ No
Teachable Data Export & Mapping 3-5 hours 2-3 hours ❌ No
Course Content Recreation 12-22 hours 8-15 hours ❌ No (build on staging)
Video Migration & Hosting 4-8 hours 3-5 hours ❌ No
Sales Pages & Website Rebuild 4-7 hours 3-5 hours ❌ No
Order Forms & Payment Setup 2-3 hours 1-2 hours ❌ No
Email Deliverability Setup 2-3 hours 1 hour ❌ No
Student Data Import 2-4 hours 1-2 hours ❌ No (staging)
Automation Setup 2-4 hours 1-2 hours ❌ No
Testing (Staging) 3-5 hours 2-3 hours ❌ No
DNS Cutover & Go-Live 2-3 hours 2-3 hours ✅ Yes (DNS propagation: 1-6 hours)
Post-Launch Verification 2-3 hours 2-3 hours ❌ No

Recommended Downtime Window: 4-6 hours during DNS propagation (choose weekend or low-traffic period)

💡 Professional Help Recommendation: If you lack WordPress expertise, expect DIY times to increase 50-100%. A professional AccessAlly developer can complete this migration in 2-3 weeks with minimal stress. Contact AccessAlly for professional migration services.

Teachable vs AccessAlly: What You’re Giving Up and Gaining

What You Lose (Teachable Advantages)

  • All-in-One Platform: Teachable handles hosting, security, backups, updates automatically
  • Zero Technical Maintenance: No WordPress updates, plugin conflicts, or server management
  • Built-in Course Player: Teachable’s course player works perfectly without configuration
  • Teachable Support: Support team available vs. managing your own WordPress site
  • Automatic Compliance: Teachable manages PCI, security compliance
  • Built-in Analytics: Comprehensive analytics dashboard
  • Student Certificates: Automatic certificate generation
  • Quiz Engine: Built-in quiz and assessment features
  • Course Backups: Automatic daily backups of all content
  • No CRM Learning Curve: Single platform to learn vs. WordPress + AccessAlly + CRM

What You Gain (AccessAlly Advantages)

  • Eliminate Transaction Fees: Teachable charges 5-10% per sale – AccessAlly has ZERO transaction fees
  • Cost Savings: $100-$200/month savings (Teachable $39-$249/mo + fees vs AccessAlly + hosting + CRM $50-$150/mo)
  • Ownership & Control: You own your WordPress site, data, and content
  • Unlimited Students: Teachable limits students by plan tier – AccessAlly doesn’t
  • Unlimited Customization: WordPress + 60,000 plugins = any feature you can imagine
  • Better SEO Control: WordPress SEO plugins are more powerful than Teachable SEO
  • Advanced Course Logic: AccessAlly’s access rules and prerequisites are more sophisticated
  • CRM Power: Choose a powerful CRM (ActiveCampaign, Ontraport) vs. Teachable’s basic email
  • Theme Freedom: Any WordPress theme vs. Teachable’s template limitations
  • Exit Strategy: Not locked into a single vendor platform
  • Community/Developer Support: Massive WordPress community for help and resources

Should You Migrate? Decision Framework

Stay with Teachable if:

  • You value all-in-one simplicity over cost savings
  • You lack technical skills and don’t want to hire help
  • Transaction fees don’t significantly impact your revenue
  • You don’t want to manage WordPress hosting, updates, security
  • Your school is thriving and you don’t want to risk migration issues
  • You’re under 100 active students (migration complexity may not be worth it)

Migrate to AccessAlly if:

  • Transaction fees are eating into your profit margins (5-10% adds up!)
  • Cost savings of $100-$200/month matter to your bottom line
  • You want ownership and control of your platform
  • You’ve hit Teachable’s student or course limits
  • You have WordPress skills OR budget to hire professional help
  • You need more advanced course logic and access rules
  • You want powerful CRM automation vs. Teachable’s basic email
  • You need custom features that Teachable doesn’t offer

Alternative: Consider other platforms:

  • Thinkific: Similar to Teachable but lower transaction fees
  • Kajabi: More expensive but more features than Teachable
  • LearnDash/LifterLMS: WordPress course plugins (cheaper than AccessAlly but less powerful)

Frequently Asked Questions

Q: Can I keep Teachable and AccessAlly running simultaneously during transition?

A: Yes, this is actually the recommended approach for subscription migration (Strategy 1 in Step 13). Keep Teachable active for existing subscriptions while new purchases happen on AccessAlly. Use Zapier/Make to sync enrollment status between platforms. Gradually phase out Teachable as legacy subscriptions cancel naturally.

Q: What happens to student progress/completion data from Teachable?

A: Teachable does not export course progress data. Student completion tracking will start fresh in AccessAlly. Communicate this to students during migration announcement. You can manually mark courses as complete for returning students if needed, but there’s no automated way to transfer progress.

Q: Can I transfer Teachable’s affiliate program to AccessAlly?

A: Teachable’s affiliate data doesn’t export automatically. You’ll need to:

  1. Set up affiliate program in AccessAlly or use plugin like AffiliateWP
  2. Manually export affiliate list from Teachable
  3. Re-create affiliate accounts in new system
  4. Notify affiliates of new tracking links
  5. Grandfather any owed commissions from Teachable

Q: How do I handle Teachable’s certificate features?

A: Teachable’s automatic certificates won’t transfer. Options:

  • AccessAlly Certificates: AccessAlly has built-in certificate features (configure in module settings)
  • LearnDash Certificates: If using LearnDash for quizzes, use their certificate system
  • Third-party plugins: WordPress has many certificate plugins

You’ll need to recreate certificate templates – Teachable templates don’t export.

Q: What about Teachable’s built-in quiz features?

A: AccessAlly has basic quiz features, but for advanced assessments use:

  • LearnDash Quiz Addon: Advanced quizzes with AccessAlly integration
  • Gravity Forms + Quiz Add-On: Custom quizzes with grading
  • H5P: Interactive content plugin including quizzes

You’ll need to manually recreate quizzes – Teachable quizzes don’t export.

Q: Can I migrate just one course first to test AccessAlly?

A: Yes, but not seamlessly. You’d need to:

  1. Set up full WordPress + AccessAlly + CRM stack (can’t skip this)
  2. Migrate one course content to AccessAlly
  3. Import only students who enrolled in that course
  4. Run both platforms simultaneously (Teachable for other courses, AccessAlly for test course)
  5. Use subdomain for AccessAlly test (e.g., learn.yourdomain.com)

This approach is complex and only makes sense for large course libraries (5+ courses). For most schools, full migration is simpler.

Q: How do I handle Teachable’s custom domain?

A: If you’re using a custom domain with Teachable:

  1. You can transfer the same domain to WordPress hosting
  2. Change DNS A record to point to WordPress instead of Teachable
  3. This maintains your SEO and branding
  4. See Step 19 for detailed DNS cutover instructions

If using Teachable subdomain (yourschool.teachable.com), you’ll need to register your own domain for WordPress.

Q: What if I use Teachable’s email marketing features heavily?

A: Teachable’s email is basic compared to dedicated CRMs. Process:

  1. Export/screenshot all email templates from Teachable
  2. Recreate templates in your CRM (ActiveCampaign, Kit, etc.)
  3. Your CRM will have better email features than Teachable
  4. Set up automations/sequences in CRM
  5. Test deliverability (CRMs often have better deliverability than Teachable)

Q: Can I keep using Teachable’s payment processing?

A: No, you cannot use Teachable Payments with WordPress/AccessAlly. You must set up your own Stripe or PayPal account. The advantage: you eliminate Teachable’s 5-10% transaction fees. See Step 4 for payment gateway setup and Step 13 for subscription migration strategies.


Need Help?

Professional Migration Services:

  • AccessAlly Migration Services: Full-service migration from Teachable to AccessAlly – Contact AccessAlly
  • Expected cost: $2,500-$7,000 depending on complexity (number of courses, students, custom features)
  • Timeline: 2-3 weeks for professional migration
  • What’s included: Complete setup, content migration, student import, testing, go-live support

DIY Migration Support:

Related Guides:

⚠️ FINAL WARNING:
Teachable to AccessAlly migration is NOT a beginner project. This is a full platform change requiring WordPress development skills, AccessAlly expertise, and significant time investment. Unless you have the required technical skills, hire professional help. The cost of professional migration ($2,500-$7,000) is significantly less than the revenue loss from a failed DIY migration.
🎯 Migration Success Checklist:

  • ✅ WordPress hosting set up and tested
  • ✅ AccessAlly installed and CRM connected
  • ✅ Payment gateway configured and tested
  • ✅ All courses recreated in AccessAlly modules
  • ✅ Videos uploaded to video host and embedded
  • ✅ Sales pages and website rebuilt
  • ✅ Order forms created and tested
  • ✅ Email deliverability configured (SPF, DKIM, DMARC)
  • ✅ All students imported with correct access
  • ✅ Subscription strategy implemented (grandfathered or re-subscription)
  • ✅ Automations created in CRM
  • ✅ Comprehensive testing on staging site
  • ✅ DNS cutover planned and executed
  • ✅ Post-migration verification complete
  • ✅ Students successfully using new site
Updated on January 16, 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.