Importing Contacts Into Kajabi: Clean the CSV Before You Upload
To import a list into Kajabi safely, export or gather the contacts, remove anyone who never agreed to marketing email, dedupe, verify every address, and upload only the valid rows in files of up to 20,000 rows. Kajabi's own blog puts its hard bounce limit at 5% and its complaint limit at 0.2%, so the first campaign to a raw list is the riskiest send you will make.
Facts below are from Kajabi's help centre and blog, read on 2 November 2026. Kajabi changes its screens from time to time, so check the linked page if a button has moved.
Kajabi's rules in one table
| Rule | What Kajabi says | Source |
|---|---|---|
| Rows per import | Up to 20,000 rows per file | Import contacts |
| Daily import limit | Up to 40,000 contacts a day | Same page |
| File size and columns | 30MB per file, 50 header fields | Same page |
| Hard bounce limit | "Kajabi's limit for hard bounces is 5%" | Kajabi blog: email suspended |
| Complaint limit | "0.2% (one per 500 emails sent)" | Same post |
| Unsubscribe limit | Email suspended when a mailing has a 5% unsubscribe rate | Same post |
| Purchased lists | Prohibited by the Anti-Spam Policy | Grow and maintain engaged lists |
The same blog post says a well-vetted list "should never exceed 2% hard bounces". Treat 2% as the line you plan around, and 5% as the line where sending stops.
How Kajabi handles bad addresses already
Kajabi does some of the clean-up itself, which is worth knowing before you add your own step:
- At import, "Kajabi checks every email address as it imports, and rejects any address that can't be delivered to or that would damage your sender reputation." The confirmation email links to a file of rejected rows and reasons. The link expires after three days.
- After sending, Kajabi auto-unsubscribes an address that hard bounces at least twice within four days, and spam complainers (auto-unsubscribe). A hard-bounced address stays on the suppression list for six months after the last bounce (deliverability guide).
- Exclusion. Kajabi flags addresses as Undeliverable, High Risk or Inactive (no engagement with 25 or more marketing emails), and flags role and disposable addresses. Those contacts show Excluded in the Email Marketing Status column (validation and exclusion).
So why verify first? Because Kajabi's checks report after the fact, and the bounce limit is measured on what you send. A verified file tells you before the import which rows are dead, which are catch-all (the server accepts everything, so no tool can confirm the mailbox) and which could not be checked yet. You choose what goes in, rather than finding out from a rejection file or a suspension email.
Step 1: Export your current Kajabi contacts
If you are re-cleaning a list that already lives in Kajabi, export it first (export contacts):
- Go to Contacts.
- Filter or pick a segment if you only want part of the list.
- Select the contacts, or click Select All.
- Open Bulk Actions and choose Export.
- Click Submit, then Submit again on the popup.
- Kajabi emails the file to the account address, with the subject "Contact export process completed". The link expires after three days. If the CSV opens as text in the browser, right-click the link and use Save link as.
Kajabi says the export is capped by your plan's contact limit. Contacts collected through a single form can also be exported from Marketing, then Forms (form exports).
If the list is coming from another platform, export it there. Our export guides cover Mailchimp, Kit and MailerLite, among others.
Step 2: Take out people you must not email
Before checking a single address, remove rows that should not be mailed whatever their status:
- Unsubscribed, hard bounced and spam-marked contacts. In Kajabi, filter on Email Marketing Status. Its options are Subscribed, Never subscribed, Unsubscribed, Manually unsubscribed, Opted out, Hard bounced and Marked spam (contacts filters). Keep those rows in a separate suppression file.
- Anyone without marketing consent. Customers who bought a course but never opted in to marketing can still get product emails. They do not belong in a marketing import.
- Duplicates. Run the email column through remove duplicate emails, which treats
Jane@Site.comandjane@site.comas one address.
When you merge files from several sources, the suppression list merger combines your do-not-mail files into one, and compare email lists removes those addresses from the import file.
Step 3: Verify the addresses
Upload the cleaned CSV on the verify page, or test a sample first with the CSV email verifier. Each address gets a live check against its mail server, and your other columns stay in the file. Sort the results like this:
| Result | Import to Kajabi? |
|---|---|
| Valid | Yes, with the marketing box ticked if they opted in |
| Catch-all | Yes, tagged separately and sent after the valid group |
| Unknown | Hold, re-check in a day or two |
| Invalid | No |
| Disposable | No; Kajabi excludes them anyway |
| Role address (info@, support@) | Only if a person really subscribed with it |
Catch-all addresses are the ones that most often turn into surprise bounces, because the mail server says yes to everything during the check and only rejects later. Should you email catch-all addresses explains how to send to them in smaller batches.
Step 4: Format the file the way Kajabi wants
Kajabi has a few format rules of its own (import contacts):
- Email is the only required column.
- One Name column. Kajabi wants the full name in one field, so combine first and last name columns before upload.
- Country as a two-letter capital code, such as
USorGB. - Save as CSV UTF-8 so accented names survive.
- No more than 50 columns. Drop anything you will not use.
- Split at 20,000 rows. The email list splitter cuts a large file into chunks.
Add one more column of your own: a tag such as verified-2026-11 for valid rows and catch-all-2026-11 for catch-all rows. You can add tags during import too, but a column makes it easy to check later which contacts came from this clean-up.
The CSV import formatter renames and drops columns if your spreadsheet struggles with a large file.
Step 5: Re-import only the good rows
- In Kajabi, go to Contacts, then All Contacts, then +Add contacts, then Import CSV.
- Upload the valid-rows file (or paste from it), then Continue to Import Actions.
- Map each column to a Kajabi field, create a field for new columns, or skip the ones you do not need.
- Under import actions, add your tags. Tick Subscribe to email marketing only for contacts who agreed to marketing email. Kajabi's own wording is "Only check this box for contacts who explicitly agreed to receive marketing emails from you."
- Leave offers alone unless you mean to grant one. Imported contacts get no automatic email unless you grant an offer.
A matching email updates the existing contact instead of creating a duplicate, so re-importing a cleaned version of your own list does not double it. Open the confirmation email and check the rejected-rows file. If you verified first, it should be short.
Repeat with the catch-all file as a separate import with its own tag.
Step 6: Send in order
- Send the first campaign only to the valid, recently engaged contacts.
- Check hard bounces and complaints in the campaign stats.
- Then send to the other valid contacts, then to the catch-all tag in smaller groups.
If someone has not opened in months, a short re-permission email before regular sends lowers complaints. The re-engagement campaign guide has a structure, and Kajabi's own guidance suggests unsubscribing contacts who stay unresponsive after 180 days (engaged lists).
Checklist
- Unsubscribed, hard bounced and spam-marked contacts kept out
- Only contacts who opted in to marketing
- Duplicates removed
- Every address verified; invalid and disposable rows deleted
- One Name column, two-letter country codes, CSV UTF-8
- Files of 20,000 rows or fewer, 50 columns or fewer
- Valid and catch-all rows imported with separate tags
- Rejected-rows file checked after each import
Verify before you upload
Upload your export on the verify page. You get 100 free email checks when you sign in with Google, no card, which is enough to see how a sample of the list holds up before you import the rest. For bigger lists, monthly plans are on the pricing page.
Common questions
How many contacts can I import into Kajabi at once?
Kajabi's help centre says each import file can have up to 20,000 rows and 30MB, with at most 50 header fields, and that you can import up to 40,000 contacts a day. Import is not available during a trial. Split larger lists into several files.
What bounce rate gets a Kajabi account suspended?
Kajabi's own blog says its limit for hard bounces is 5% and its limit for spam complaints is 0.2%, one per 500 emails sent. It also says a well-vetted list should never go over 2% hard bounces. Crossing those limits can suspend your email sending, usually temporarily.
Does Kajabi verify emails when I import them?
Partly. Kajabi says it checks every address as it imports and rejects any it cannot deliver to or that would damage your sender reputation. The rejected rows are listed in a file linked from the confirmation email. It also flags undeliverable, high-risk, role and disposable addresses as Excluded. Verifying before import gives you the same decisions up front, plus catch-all and unknown labels Kajabi does not show.
Can I import a purchased list into Kajabi?
No. Kajabi's help centre says the use of purchased email lists is prohibited by its Anti-Spam Policy, and its import screen says to tick the marketing box only for contacts who explicitly agreed to receive marketing email from you.
How do I remove hard bounced contacts in Kajabi?
Open Contacts, add a filter on Email Marketing Status and choose Hard bounced, or use the Hard Bounced segment, which lets you bulk-delete those contacts. Kajabi keeps a hard-bounced address on its suppression list for six months after the last bounce.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.