Kajabi to GoHighLevel Migration: What to Move, Rebuild, and Keep

We may earn a commission through links on this page. Disclosure

Short answer: A Kajabi to GoHighLevel migration is a set of separate moves, not one course-import button. HighLevel documents an importer for Kajabi course content, but it only brings in published lessons and does not bring assignments, quizzes, or assessments. Contacts, offers, payment plans, subscriptions, automations, pages, domains, member access, and customer support need their own inventory and verification. Keep Kajabi available until the new path can handle the records and exceptions that matter to your business.

The safest first question is not ‘how fast can the import run?’ It is ‘which system is responsible for each customer state during the change?’ A course can appear under a new Products area while an old payment still bills, a learner still expects an old access rule, or a checkout page still points to Kajabi. A migration is complete only when those boundaries are deliberate and a person can explain what happens when the normal path fails.

HighLevel’s own migration guide recommends defining goals, backing up data, moving contacts through a CSV, recreating offers and automations, rebuilding website and funnel pages, validating data, and considering a parallel transition. That sequence is more useful than a promise of automatic continuity because it exposes the work that the course importer does not cover.

If you are considering a move, create the transfer, keep, and rebuild inventory first. Then use the importer only for the content it officially covers.

Explore HighLevel for a controlled migration

Migration starts with an inventory, not a button

Make a copy of the current Kajabi operating picture before changing live access. List the products, modules, lessons, quizzes, offers, prices, payment types, subscription status, contact fields, tags or segments, email sequences, automations, forms, pages, domains, integrations, reports, refunds, and support promises that people actually rely on. Give each item one of three decisions: transfer, keep in Kajabi for now, or rebuild in HighLevel.

That classification prevents a common mistake: treating content as if it were the whole customer experience. A video and a lesson title may move, but the offer that granted access, the payment that is still due, the automation that sends a reminder, and the support process that handles a cancellation may remain elsewhere. The inventory should name the owner, the destination, the evidence required, and the fallback if the item cannot be moved yet.

Asset or state Transfer path to evaluate Keep or rebuild decision Do not assume
Course videos, images, and text Use the documented Kajabi course importer after backing up the source and confirming credentials and domain. Rebuild or manually review any content that is not included, then compare the outline and media before learner access changes. That every lesson is eligible or that an imported course equals a ready customer experience.
Published versus draft lessons Publish only the content intended for import and record the source outline before starting. Keep draft material in Kajabi until it has a destination, owner, and review path. That hidden or unpublished material will arrive in the new product.
Assignments, quizzes, and assessments Create a manual recreation list with question text, answers, completion rules, and ownership. Keep the source live until the replacement has been reviewed and a learner path is clear. That the importer transfers these elements automatically.
Contacts and custom fields Export the Kajabi CSV, check dates and UTF-8 encoding, clean the file, recreate fields, map columns, and validate records in HighLevel. Retain a protected source export and document fields that remain in the old system. That a contact import also transfers purchase history, consent context, access, or customer support state.
Offers, prices, and payment plans List each product, price, payment type, and access rule, then recreate the offer and connect it to the new product and payment process. Keep active billing in the current provider until the replacement is authorized and reconciled. That course content import moves an offer, a subscription, a refund, or a future charge.
Email sequences and automations Document triggers, tags, messages, conditions, and access actions, then build and test new HighLevel workflows. Keep the source automation paused or active according to a written cutover plan, with one owner for duplicate sends. That similar labels represent the same trigger or that two live systems can send safely without coordination.
Pages, forms, funnels, and domains Recreate the public pages and forms in HighLevel, then configure domains and DNS only after the replacement is ready. Keep the current public path live until links, forms, email, analytics, and ownership are checked. That a page copy includes DNS, sender authentication, analytics, redirects, or an existing support promise.
Refunds, cancellations, and learner support Write the human procedure and verify the new payment, access, and contact records for each exception. Keep the prior transaction history and provider account available for the period needed to handle residual obligations. That a new contact or opportunity proves the customer has received or lost access.

The inventory is also a stop list. If a row has no owner, no destination, or no verification method, it is not ready for cutover. This is especially important for subscriptions. Kajabi’s payment documentation ties subscriptions and payment plans to Offers and a payment provider, and describes refunds, receipts, pauses, cancellations, and access behavior. A content importer cannot be used as evidence that those financial and access states will follow the learner.

If the migration also involves replacing a broad CRM, the existing GoHighLevel vs HubSpot guide can help identify which records and workflows are truly being consolidated. Keep that platform-choice question separate from the mechanics of moving Kajabi data.

What the official Kajabi importer covers

HighLevel’s Kajabi importer requires a learner profile on the source platform, the email and password used for that profile, and the learner domain. An authorized administrator must control that process. Do not place credentials in a shared handoff document or customer-facing note. The importer logs in through the supplied learner credentials and begins the course import.

The documented content scope is specific: videos, images, and text for courses and lessons. Only published lessons are brought over. Assignments, quizzes, and assessments are not included. Imported courses appear under HighLevel’s Products section. Recent importer improvements are described as handling Show More sections and nested categories more reliably, but that is still not a promise that every customer-facing setting or related record has moved.

Use the importer as a bounded content operation. Before it starts, record the Kajabi course outline, the published state of each lesson, the media names, the order, the intended access group or offer, the drip rule, and any lesson-level automation. After it finishes, compare the result to the record. Read several lessons, inspect media, check links, and confirm the new product has the intended visibility before inviting a learner.

HighLevel’s importer documentation also describes authentication and domain errors, a refresh action for status, and a cancellation behavior in which a new import starts from the beginning. That is another reason to schedule the work with a source backup and an owner who can observe the run. Treat the progress indicator as a status update, then check the content yourself.

If the course importer matches only the published content you have inventoried, use it as one controlled workstream and keep billing, access, and support validation separate.

Review HighLevel course-import scope

Build the transfer, keep, and rebuild plan

A good migration plan gives every row a verb and a gate. Transfer means the documented method can create a destination record. Keep means the source remains the working system for a defined period. Rebuild means a person must configure a new object and compare it with the source. Archive means the record is preserved for reference but is not allowed to trigger current customer communication. These are different actions, and they should not be hidden under the single word migrate.

For contacts, HighLevel’s guide describes exporting the Kajabi list to CSV, checking date formats, using UTF-8, cleaning line breaks and unnecessary special characters, recreating custom fields, uploading the file, and mapping fields. Preserve the original export before cleaning it. Make a mapping sheet that names the source column, destination field, transformation, and owner. Then inspect a sample of records that represent a lead, a customer, an active subscriber, a canceled customer, and a person with an unusual name or address.

After importing contacts, also verify access. A record may still need a tag, a course entitlement, an offer relationship, a payment state, a support note, and an approved communication status. If those attributes are not in the import path you are using, add them to the rebuild or manual-review queue instead of silently treating an empty field as ‘not applicable’.

For offers, start with the product and access promise. Record one-time, subscription, or payment-plan terms, currency, trials, setup fees, payment provider, receipt behavior, refund process, cancellation date options, and access revocation. Then recreate the destination offer and connect it to the intended product. HighLevel’s migration guide describes creating an offer, connecting it to a product, and rebuilding workflows for course access and email. That is a destination build, not evidence that existing buyers have been converted.

For automations, create a trigger map. A Kajabi lesson-completed trigger, offer purchase, tag change, form submission, email sequence, or event action may not have the same name or timing in HighLevel. Write the business event in plain language, then identify the destination trigger and action. Include a suppression or stop rule. Review every message that could be duplicated during a parallel period.

For pages and domains, copy the customer-facing intent rather than just the visible words. List the URL, page purpose, form, thank-you destination, checkout or offer link, analytics dependency, sender domain, DNS record, redirect, and owner. HighLevel’s guide describes recreating pages and funnels, adding domain records, verifying the domain, and linking it to a website or funnel. Treat those as separate tasks. A page can look correct while a form, domain, or sender path is still wrong.

If the migration includes email platform decisions, the existing GoHighLevel vs ActiveCampaign guide can clarify whether you are moving a sales workflow, a lifecycle email system, or both. An email template import covers the template; list the triggers and actions separately.

A labelled cutover path for a hypothetical coaching business

MIGRATION VISUAL

A seven-step cutover for an invented course business

Harborlight Coaching is an invented example with one published course, one active payment plan, and a small support team. It shows one possible staged cutover.

Illustrative transfer map

  1. Freeze the inventory

    Harborlight records products, published lessons, offers, contacts, payment states, automations, forms, domains, and active support cases. It names one owner for each row.

  2. Protect the source

    The team saves a Kajabi export and course backup, identifies the payment provider, and keeps a copy of the current pages and customer-facing links before editing anything.

  3. Import eligible course content

    An authorized operator uses the documented importer for published lessons, videos, images, and text. Assignments, quizzes, and assessments remain on the manual recreation list.

  4. Rebuild the customer path

    The team creates destination products, offers, payment settings, workflows, forms, pages, domains, and access rules. Each item is checked against the inventory instead of marked complete by name alone.

  5. Run controlled records

    A clearly labelled test contact and authorized purchase or access path are traced through payment, contact, opportunity, message, product, and support records. The team writes down every manual step.

  6. Operate in parallel

    Harborlight keeps the Kajabi path available while it checks current learners, residual billing, refunds, cancellations, and support questions. It prevents two live automations from sending the same message.

  7. Cut over by evidence

    Only after content, access, payment handling, public pages, and support ownership are accepted does the team reduce Kajabi reliance. The old account remains available for the agreed residual period.

Evidence required before phase-out
  • Course outline and eligible published lessons match the destination product.
  • Excluded assessments and quizzes have a named rebuild owner or remain in the source.
  • Contact fields, offers, payment states, and access records have been reconciled for representative cases.
  • Forms, domains, messages, workflows, refunds, cancellations, and support escalation have a controlled path.

Pause condition: if a customer state has no responsible system or named person, keep the source available.

Use this as a planning aid: the importer covers course content, not a full account migration.

Billing and access need their own cutover

Kajabi’s current payment documentation describes subscriptions and payment plans as Offer-based settings selected with a payment provider. It documents trials, setup fees, refunds, receipts, pausing, cancellation, and access behavior. It also notes regional availability for Kajabi Payments. Those details create a financial and customer-access workstream that cannot be reduced to a course file.

For each active buyer, record the next expected charge, provider, payment type, remaining payments or renewal logic, product access, refund route, cancellation date, and support owner. Decide whether the existing provider continues billing through a transition period or whether a separate migration path is authorized. A new Offer does not by itself justify a second subscription. Keep the original payment until the new financial and access state is understood and the business has approved the customer communication.

The same caution applies to refunds and failed payments. A customer can have a valid contact record and still need a refund in the original provider. A canceled payment can affect access in the old system, while a new product might remain open until a person updates it. Write the procedure before the first live change, and record which person can override the automatic state.

HighLevel’s current subscription pricing page lists CRM, workflows, calendars, payments, courses, and communities as core features, but also says usage-based charges apply. Its billing guide describes an Agency Wallet for phone, email, AI, and premium workflow use. Treat those as the destination platform budget. Keep payment processing, migration labor, support, and any Kajabi overlap visible as separate lines.

Validate the public path and internal records

Run a page-by-page check before redirecting a domain. Start with the homepage, sales page, programme detail, checkout or offer page, login, contact form, thank-you page, help page, and any link in a current learner email. Verify the destination URL, form fields, confirmation, sender, calendar or support route, analytics property, and mobile reading experience. A visual match is not enough if the button points to a retired checkout or the form creates a record nobody owns.

Run a record check with representative scenarios. A new lead should be distinguishable from an existing learner. An active payment-plan customer should have a clear next charge and access owner. A canceled customer should not receive a new grant accidentally. A refunded customer should have a documented access result. A customer with a missing or changed email should be sent to human review. These are acceptance cases, not claims that this article has executed a migration.

Keep a cutover log with the item, old location, new location, owner, verification date, evidence link, and rollback action. The log can be private. It should not be hidden inside a workflow because people need to use it when an exception arrives outside the normal automation.

If the migration also changes how a team handles opportunities, the existing GoHighLevel vs Pipedrive guide is useful for separating pipeline ownership from course-access work. A pipeline is one record of a business process, not a replacement for the payment provider or learner account.

Cost the overlap, not just the destination plan

HighLevel’s public page currently displays Starter at $97 per month or $970 per year, Unlimited at $297 per month or $2,970 per year, and Agency Pro at $497 per month or $4,970 per year. Starter shows three sub-accounts, while Unlimited and Pro show unlimited sub-accounts with different agency capabilities. The billing guide says usage-based services draw from an Agency Wallet, with phone and email charges, AI, and premium workflow usage among the possible costs.

Kajabi’s public monthly view currently displays Basic at $179, Growth at $249, and Pro at $499, with annual-billing equivalents shown as $143, $199, and $399. The same page lists product and contact capacity, websites, communities, and admin users, and says processing fees apply and vary by country and payment provider. During a migration, the relevant cost is not simply the lower subscription. It includes overlap, exports, cleanup, rebuild time, payment-provider work, domain work, customer support, testing, and the cost of keeping the old system available while residual obligations finish.

Budget line What to write down Evidence before approval Common false shortcut
HighLevel subscription Selected tier, sub-account need, users, plan duration, and who pays. Current public plan display and the actual intended account structure. Choosing Unlimited because ‘unlimited’ sounds like no implementation limit.
Usage and add-ons Phone, email, AI, premium workflows, domains, support, and any enabled add-ons. Agency Wallet rules, current usage expectations, and provider-specific rates. Calling a monthly plan an all-in communications or AI budget.
Kajabi overlap Remaining subscription, payment provider, support period, and source retention period. Approved phase-out date and residual customer obligations. Canceling immediately after a course import finishes.
Migration labor Inventory, CSV cleanup, field mapping, product rebuild, workflow rebuild, pages, DNS, testing, and training. Named owners and a checklist with acceptance evidence. Treating the importer duration as the migration duration.
Customer communication Messages for access, billing, support, domain, and changes in the customer path. Approved wording, audience, sender, timing, and exception route. Sending a generic announcement before payment and access states are clear.

Budget for overlap and labor as well as the destination plan. The destination may simplify one operating layer while adding another, so the budget should make that tradeoff visible and leave unknown rows open.

Who should pause the migration?

Pause when the source has active subscriptions and no agreed payment owner. Pause when published and draft content have not been separated. Pause when a course relies on quizzes, assessments, or assignments with no recreation owner. Pause when a custom domain or sender domain has no DNS owner. Pause when two systems can both send a welcome, purchase, reminder, or access email. Pause when the team cannot see whether a refund or cancellation changes the new access state.

A pause is not failure. It is a decision to keep the old path in charge while the missing work is assigned. HighLevel’s migration guidance itself recommends parallel operation and gradual phase-out. Use that time to reconcile the difficult records, not to create a second set of automations with no named owner.

If the new system is being evaluated as a CRM for the post-migration team, the existing GoHighLevel vs Close guide offers a focused look at conversations, opportunities, and sales ownership. Keep that question separate from whether the course library and customer access are ready to move.

Final acceptance checklist

Before reducing Kajabi reliance, ask one owner to sign off each of these statements in a private migration log:

  1. The destination product outline matches the intended published Kajabi lessons, media, order, and access promise.
  2. Assignments, quizzes, and assessments are recreated, intentionally kept, or removed with a documented customer-facing decision.
  3. The contact export is preserved, fields are mapped, representative records are reviewed, and unknown purchase or access states are not treated as empty data.
  4. Offers, prices, subscriptions, payment plans, providers, refunds, cancellations, and access rules have named owners.
  5. Automations, email sequences, tags, triggers, conditions, and stop rules have been rebuilt or intentionally retained in the source.
  6. Pages, forms, checkout or offer links, domains, DNS, sender settings, redirects, and analytics have a controlled destination.
  7. A controlled lead, buyer, active subscriber, canceled buyer, refunded buyer, and support request have a documented path.
  8. The team knows when to keep Kajabi available, how to handle residual customers, and what would trigger rollback or a pause.

Only after those answers are written should the owner choose a cutover date. The date is an operational decision, not a feature of the importer. A small migration with clear evidence is easier to correct than a large migration that marks every row complete because the new course exists.

If every asset has a transfer, keep, or rebuild decision and every exception has an owner, use the HighLevel migration path as a controlled project rather than a promise of automatic continuity.

Review HighLevel for your migration plan

Verdict: move content only when the whole customer state has an owner

Kajabi to GoHighLevel migration can be practical for a coaching business that wants HighLevel to own more of its CRM, follow-up, workflows, pages, and course operations. The official importer helps with a defined slice of that work: published Kajabi lessons and their videos, images, and text. The rest is an inventory and rebuild project. Contacts require export and field mapping. Offers and automations need destination design. Domains and pages need a controlled cutover. Billing, refunds, subscriptions, and access need their own provider-aware procedure.

Keep Kajabi available while the new records are compared and the customer exceptions are understood. Rebuild what the importer excludes. Record the responsible system for each state. Then move one course or one offer through an authorized, evidence-backed pilot before expanding the scope. That is slower than treating a content import as a full migration, but it gives the business a path it can explain to a learner and repair when the normal path breaks.

If your team can preserve the source, assign the billing and access work, and validate one complete customer path, evaluate HighLevel as the destination for that defined migration scope.

See HighLevel migration options

Official sources

  • HighLevel Kajabi course importer scope and limits
  • HighLevel Kajabi migration guide for contacts, offers, workflows, pages, domains, validation, and transition
  • HighLevel pricing, plan scope, features, and usage notice
  • HighLevel billing, wallet usage, phone, email, AI, and add-ons
  • Kajabi pricing and capacity
  • Kajabi product types, course structure, delivery settings, and automations
  • Kajabi Payments subscriptions, payment plans, refunds, cancellation, access, and geographic availability