Importing contacts
Bring leads and clients into Kaliun from a CSV, another CRM, or an existing spreadsheet.
Most contractors come to Kaliun with an existing pile of contacts — in a spreadsheet, in an old CRM, in their phone, or in their email. Kaliun has a CSV importer that handles the common cases.
Prepare your CSV
Export your contacts from wherever they live today and make sure your CSV has at least these columns:
| Column | Required? | Notes |
|---|---|---|
email or first_name + last_name | One of these | Used to de-duplicate |
phone | No | Any format — Kaliun normalizes it |
company | No | Becomes a Company record linked to the Person |
address, city, state, zip | No | Split into separate columns |
source | No | e.g. "Website", "Referral", "Google Ads" |
tags | No | Comma-separated, e.g. "kitchen,hot-lead" |
status | No | LEAD, CLIENT, ARCHIVED (defaults to LEAD) |
notes | No | Creates a comment on the new contact |
You don't have to match these exact names. Kaliun's importer has a column mapping step where you can point each of your CSV columns at the right Kaliun field.
Run the import
Open the importer
Go to People → New → Import from CSV.
Upload your file
Drag and drop or click to select. Kaliun supports CSV, TSV, and Excel (.xlsx). Maximum 10,000 rows per import.
Map your columns
Kaliun auto-detects common column names (like Email Address → email)
and you can override any mapping. Columns you don't map get stored on
customData for later use.
Review the preview
See the first 5 rows as they'll import, with any validation warnings (invalid emails, missing required fields, etc.).
Choose duplicate handling
- Skip duplicates — leave existing records alone
- Update existing — merge new data into matches without overwriting (safest)
- Create duplicates — always create new, even if a match exists
Matching is by email when present, falling back to phone + name.
Run the import
Click Import. Kaliun processes the file in the background; you'll get an in-app notification when it finishes with a summary of created, updated, and skipped records.
Migrating from other CRMs
From HubSpot, Salesforce, Pipedrive, JobNimbus, etc. — export all contacts as CSV, then follow the steps above. Kaliun's field mapping handles vendor-specific column names automatically.
From Google Contacts / Outlook Contacts — use their built-in CSV export, then import.
From a phone / texting app — most apps let you share contacts as a vCard. Convert to CSV with any free online vCard-to-CSV tool first.
From Excel / Google Sheets — save as CSV and import directly.
What gets created
Each row in your CSV becomes:
- A Person record with the mapped fields
- A Company record if the
companycolumn is set (reused if one already exists) - An activity log entry showing "Imported from CSV" with the filename and timestamp
- A comment if the
notescolumn is set, attributed to the user who ran the import
Troubleshooting
"Invalid email format" on a row — Kaliun validates email syntax. Fix the CSV or remove the email column for that row (it'll still import with just a name).
Phone numbers look wrong after import — Kaliun normalizes phone
numbers to E.164 format (+15551234567). The original is kept in a
phone_raw customData field so nothing is lost.
Import stuck — Very large imports (5,000+ rows) can take several minutes. Check Settings → Import History for status. If it's truly stuck, contact support and include the import ID.