Migrating users from one platform to another sounds like a nightmare. In practice, it's one of the things we do best at audienced — because we do it almost every week with creators switching from Kajabi, Teachable, Thinkific, Google Drive workarounds and DIY WordPress stacks.
In this guide I'll walk you through the full mass import process: how to prepare the CSV, what it must contain, how to map columns, what to do with activation emails, and how not to lose existing subscriptions.
If you have more than 50 existing users, CSV import is the only reasonable route. For us it's routine. For you it's a transition that can move an audience you've built over years in 30 minutes.
When you need a mass import
Typical scenarios we see:
- Switching from Kajabi or Teachable to audienced. You have 500+ users who need to stay active.
- Switching from WordPress + MemberPress/LearnDash to audienced. You have users and active subscriptions.
- Switching from Google Drive / manual payments to audienced. You have a buyer list in a spreadsheet.
- A new platform next to an existing one. Combining a list from newsletter tools (MailerLite, Mailchimp).
- Communities from Facebook groups. You have a list of members you need to move into a structured community.
In all these cases you don't want to add users one by one — that's days of manual work and guaranteed mistakes.
What the CSV must contain
A minimal CSV for import has three columns:
email,first_name,last_name
ana.novak@gmail.com,Ana,Novak
jerneja@example.com,Jerneja,Kosi
An advanced CSV with course access, community access and preset settings:
email,first_name,last_name,course_ids,community_ids,send_activation_email,tags
ana.novak@gmail.com,Ana,Novak,"1,3",2,true,"vip,premium"
jerneja@example.com,Jerneja,Kosi,2,2,false,"standard"
Fields supported by audienced CSV import:
email(required, unique)first_namelast_namephonecountrylanguage(sl, en, hr, sr, de, cs)course_ids— list of course IDs to enroll the user in (comma-separated)community_ids— list of community IDscommunity_plan_id— if the buyer already has a plan, e.g. a monthly membershiptags— tags for segmentationsend_activation_email— true/falseimport_source— origin (e.g. "kajabi-migration")
Step 1: prepare the CSV
The best approach is to export from the old platform and combine the data in Google Sheets or Excel.
From Kajabi
Contacts→Export. You get a CSV with email, first_name, last_name, tags.- Drop columns audienced doesn't need.
- Add a
course_idscolumn (see next step).
From Teachable
Users→Export(CSV).- The export also includes course enrollments as a separate CSV. Merge the two by email.
From MailerLite / Mailchimp
Subscribers→Export.- Add a
course_idscolumn if you want to enroll users into a course immediately (e.g. a freebie).
From Google Sheets / Excel
Open the existing list and align the columns with the format above. If "First name last name" is a single column, split it into first_name and last_name.
Tip: before importing, scan for duplicate emails. audienced rejects duplicates, but find the reason first (maybe the same person has two different emails in Kajabi).
Step 2: find course and community IDs
If you want to enroll users into courses on import, you need the IDs.
In audienced click Courses → pick a course → the URL looks like:
create.audienced.io/admin/courses/47/edit
47 is the course ID. Same for communities and community plans.
Note down the IDs to put into the CSV.
Step 3: import in audienced
In the admin panel click Users → Import CSV.
- Drag the CSV or click to upload.
- audienced shows a preview of the first 10 rows and a list of recognised columns.
- Column mapping: for each CSV column pick which audienced field it maps to. If the column is named correctly (
email,first_name), mapping is automatic. - Choose extra options:
- Send activation emails (yes/no). - Skip existing users (yes/no). - Enroll all imported users into this community (optional).
- Click Import.
The import runs in the background (queue job). When it finishes you get an email summary: how many succeeded, were skipped, failed.
Step 4: activation emails
On import you have three options for activation.
A) Send all activation emails right away
User gets an email with a password setup link. Clicks, sets, is in.
When: if you're importing up to ~500 users and want to give them immediate access.
B) Don't send, create users as "Imported"
Users exist but don't know. Later when you manually send a broadcast ("We've moved platforms, activate your account here"), you get a much better open rate.
When: if you're importing more than 1,000 users and want a controlled comms plan.
C) Staged sending (drip activation)
Send activation emails in batches of 100 per day to protect sender reputation.
When: if you have more than 5,000 users or your audience is especially spam-sensitive.
Step 5: verify the import
Once the import is complete:
- Go to Users → check the total count.
- Open a random user → confirm course_ids are correct.
- Open Course statistics → check enrollments match expectations.
- Check Queue for any failed activation email sends.
If something is off, you can run a Rollback within 24 hours of import (option in the import screen).
What about active subscriptions
This is the tricky bit. Active Stripe subscriptions cannot be transferred directly from another platform, because they're tied to that platform's Stripe customer IDs.
Possible approaches:
- Phased transition: new buyers on audienced, existing subscribers finish their months on the previous platform.
- Manual re-creation: in audienced create a community plan, import the users, send them an email with a re-subscribe link. Loss is typically 5–15% (those who don't resub didn't really want to pay anymore).
- Parallel run: keep both platforms for two months, migrate gradually.
For classic one-off purchases (courses, e-books) importing users into audienced means they get immediate access without re-paying.
Frequently asked questions
How many users can I import in one go?
The technical limit is 50,000 rows per import. Beyond that, split into smaller files. Practically 5,000–10,000 rows per file is the most stable.
What if data for a user is wrong?
audienced returns a detailed report of failed rows. Typical errors: missing email, invalid email format, non-existent course_id, duplicates. You fix the CSV and import only the failed rows.
Does audienced send a welcome email on import?
Only if you chose that during import. By default no welcome email is sent — intentional, so 5,000 users don't all get a message at once.
What happens with existing emails (duplicates)?
During import you can choose Skip existing or Update existing. We recommend skip to avoid overwriting manual changes.
Can I import course progress (which lessons someone has completed)?
Not in a single CSV at the moment. There's a separate progress import tool we enable for larger migrations (500+ users). Reach out to support and we'll help.
Do imported users get full platform features immediately?
Yes. Imported users are equivalent to users who signed up through checkout. They have profiles, can enroll, comment in the community, earn points. The only difference: the "time since signup" clock starts from the import date, not their original purchase date.
How many days before launch should I import?
We recommend 3–7 days before launch to have time to check, test and fix. Bigger base = more testing time.
Closing thoughts
Mass import is the step creators fear most when considering a platform switch. In reality it's one of the most automated operations in audienced, and with proper preparation 5,000 users move in 30 minutes.
If you haven't migrated yet because it felt too technical, that excuse is gone. Drop us a line, we prepare the CSV with you and run a test import on your base before the real one.