HOW IT WORKS

From Teachable export to live SSO-gated platform in four stages

No spreadsheets. No copy-paste. The platform connects directly to your Teachable school, reconstructs every course structure, re-hosts every asset, and makes the result available the moment your learners sign in with their existing identity provider.

STAGE 01 — CONNECT & DISCOVER

Point it at your Teachable school. It maps everything.

An admin enters the Teachable school URL and credentials in the import wizard. The platform authenticates, establishes a persistent scraping session, and crawls the course catalog — returning every course title, slug, and publication status as a selectable list. Credentials are AES-256 encrypted at rest and never appear in logs or API responses.

  • Secure credential entry with AES-256 encryption

  • Full course catalog discovery in one pass

  • Admin selects which courses to import before anything downloads

Import jobs dashboard showing active and past Teachable import jobs

  1. STEP 01 — AUTHENTICATE

    Session established with Teachable

    The import worker submits admin credentials to Teachable's login form, captures the authenticated cookie session, and holds it open for the full crawl. Rate limiting is enforced automatically to avoid triggering CAPTCHA or IP blocks.

  2. STEP 02 — EXTRACT

    Course structure and content pulled in full

    For each selected course the scraper walks the curriculum editor, recording every section title, lesson title, lesson type, and ordering. It then fetches each lesson page to extract HTML body text, embedded video iframes, image tags, and attachment download links.

  3. STEP 03 — MIGRATE ASSETS

    Every image and file re-hosted under your org

    The pipeline downloads each image and document from Teachable's CDN and re-uploads them to Vercel Blob under your organization's path prefix. Identical files are deduplicated by content hash. All CDN references in lesson content are rewritten to point to the new signed URLs.

  4. STEP 04 — MATERIALIZE

    Imported content becomes live platform content

    HTML extracted from Teachable is converted to the platform's TipTap/ProseMirror JSON format — preserving headings, paragraphs, bold/italic, lists, and code blocks. The final step writes courses, sections, lessons, and attachments to production tables through the same schema used by the manual course builder.

0.1s→ POST /sign_in credentials supplied
0.4s✓ Session cookie captured
0.6s Rate limiter armed — 1 req/s max concurrency
1.2s→ Crawling curriculum: 4 sections, 31 lessons
2.8s→ Extracting lesson HTML, video iframes, attachments
4.1s✓ Structure skeleton complete — ready for asset pass
4.3s→ Downloading 47 assets from Teachable CDN
5.9s Dedup check: 6 assets skipped (already exist)
7.2s✓ 41 assets re-hosted — all URLs rewritten
7.4s→ Converting HTML → TipTap JSON for 31 lessons
8.6s→ Writing to production: courses, sections, lessons
9.1s✓ Import complete — courses live and enrollable

STAGE 02 — MONITOR PROGRESS

Watch the import in real time. No refresh required.

The import monitor shows the current pipeline stage, assets migrated, errors encountered, and an estimated completion indicator — all live. If an asset fails to download or a lesson parse errors out, the job continues; failed items are logged with full error detail and the import completes with a partial success status so you can fix and retry without starting over.

  • Live pipeline stage and asset count display

  • Per-lesson error log — no silent failures

  • Partial success: one bad attachment never aborts the whole course

  • Full import history with status and source URL

Background jobs dashboard showing import pipeline progress

STAGE 03 — CONFIGURE SSO

Your learners keep the credentials they already have.

An admin configures the organization's identity provider — OIDC or SAML 2.0 — through the SSO settings UI. Each tenant stores its own entity IDs, metadata URLs, certificate fingerprints, and attribute mappings independently. Sessions expire in line with the IdP token lifetime; stale sessions are forced to re-authenticate rather than left open indefinitely.

  • OIDC and SAML 2.0 — Okta, Azure AD, ADFS and compatible providers

  • Per-tenant configuration — each org's IdP is fully isolated

  • Connection test button verifies config before saving

  • Session lifetime tied to IdP token — no indefinite access

Admin dashboard showing organization settings and SSO configuration

STAGE 04 — LEARNERS TAKE OVER

SSO in. Course catalog visible. Progress tracked from lesson one.

Learners authenticate via your SSO link and land on the course catalog — a branded grid showing every published course with their enrollment and progress status. Every lesson completion is recorded with a timestamp. Progress bars update in real time. When the final lesson is marked complete, a course completion record is written and visible on the learner's dashboard.

  • Branded catalog — logo and primary colour configured per tenant

  • Lesson completion with timestamp; progress percentage recalculated live

  • Prev/next navigation marks current lesson complete on advance

  • Attachment downloads tracked — admins see what resources learners access

  • CSV export of learner progress for offline HR reporting

Learner course catalog showing enrolled courses with progress bars
[ ADMIN LAYER ]

Behind the scenes: what admins see after go-live

Member directory

Every SSO-authenticated user listed by name, email, last login, and course enrollment count. Verify who has access at a glance.

Per-course progress report

Completion percentage, lessons finished, and enrollment date for every learner in a course. Spot who's stuck before they drop off.

CSV export

Download learner name, email, enrollment date, completion percentage, and completed lesson list as a flat file — ready for your HR system.

IMPORT-JOBCourse catalog discovery completed — 12 courses found0.4s
ASSET-WORKER31 of 47 assets re-hosted to org/acme/* prefix4.2s
SSO-SESSIONSAML assertion validated for user@acme.com — session created0.1s
PROGRESS-APILesson completion recorded — enrollment 79% complete0.2s
DEDUP-CHECK6 assets matched existing content hash — skipped upload1.1s
AUDIT-LOGAdmin published course Onboarding Foundations — enrolled 34 members0.3s
RATE-LIMITERTeachable scrape throttled — 1 req/s enforced, no CAPTCHA triggered2.0s
[ FAQ / HOW IT WORKS ]

Common questions about the migration and delivery process

Ready to see your Teachable content in a platform your team actually owns?

Join the waitlist and be among the first organizations to migrate without lifting a spreadsheet.

Questions? Email us at sf-core-org-support-csi-teachable-replacement-app@saas-factory.ai