Importing Contacts from CSV
If you have an existing contact list in a spreadsheet or another CRM, you can import it into SwiftlyCRM using a CSV file.
Preparing Your CSV
Your CSV file must have a header row. The importer maps column names to CRM fields:
| CSV Column | CRM Field | Required? |
|---|---|---|
first_name | First Name | Yes |
last_name | Last Name | Yes |
email | Recommended | |
phone | Phone | No |
company | Account Name | No |
job_title | Job Title | No |
city | City | No |
country | Country | No |
notes | Notes | No |
Tips for a clean import
Remove merged cells and formatting from your spreadsheet before exporting. Use UTF-8 encoding (most spreadsheet apps do this by default). Dates should be in YYYY-MM-DD format. Maximum file size: 10 MB (approximately 50,000 contacts).
Running the Import
- Go to Contacts in the sidebar
- Click Import (top right)
- Click Choose File and select your CSV
- The importer previews the first 5 rows — verify the column mapping looks correct
- If any columns weren't auto-mapped, use the dropdowns to assign them manually
- Choose how to handle duplicates (see below)
- Click Import
The import runs in the background. You'll receive an in-app notification and email when it completes.
Handling Duplicates
The importer detects duplicates by matching on email address. You have three options:
| Option | Behaviour |
|---|---|
| Skip duplicates | Existing contacts are left unchanged; duplicate rows are skipped |
| Update existing | If a match is found, existing fields are updated with the CSV data |
| Create anyway | All rows are imported regardless — may create duplicate records |
Tip
We recommend Skip duplicates for first-time imports and Update existing when refreshing data from an external source.
After the Import
Check Contacts → Import History to see:
- How many rows were imported, skipped, or failed
- Which rows failed and why (downloadable error report)
- A timestamp of when the import ran