packages/twenty-docs/user-guide/data-migration/how-tos/import-contacts-via-csv.mdx
This guide walks you through importing your contacts (People) into Twenty. Import Companies first if you want to link People to Companies.
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it. </Warning>
| Field | Required? | Format | Notes |
|---|---|---|---|
| Recommended | [email protected] | Must be unique | |
| First Name | Recommended | Text | |
| Last Name | Recommended | Text | |
| Company | Optional | Domain or ID | Links to existing Company |
| Phone | Optional | Multiple columns | See below |
| Job Title | Optional | Text | |
| Custom fields | Optional | Varies | Must exist in Data Model |
[email protected]Phone is a nested field requiring multiple columns:
| Column | Example |
|---|---|
| Phones / Primary Phone Number | 4159095555 |
| Phones / Primary Phone Country Code | US |
| Phones / Primary Phone Calling Code | +1 |
Add a column with the Company's unique identifier:
| Column Name | Format | Example |
|---|---|---|
companyDomain | URL format | https://acme.com |
companyId | UUID | c776ee49-f608-4a77-8cc8-6fe96ae1e43f |
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
John,Smith,[email protected],CEO,https://acme.com,4159095555,US
Jane,Doe,[email protected],CTO,https://widgets.co,2125551234,US
Option 1: From the People View
Option 2: Using Command Menu
Cmd + K (Mac) or Ctrl + K (Windows)Twenty automatically tries to match your columns to fields. Review and adjust:
| Column Type | Map To | Notes |
|---|---|---|
| Company reference | Company relation field | Use domain OR id, not both |
| Primary email address | ||
| Additional emails | Emails / Additional Emails | Array format |
| Phone | Separate columns | Number, Country Code, Calling Code |
When mapping the company column:
companyDomain)Don't map both companyId AND companyDomain. Choose one—preferably domain since it's human-readable.
</Warning>
If you have Select or Multi-Select fields (like Lead Source):
Before completing the import, Twenty validates your data:
| Error | Cause | Solution |
|---|---|---|
| Duplicate email | Email already exists in Twenty or file | Remove duplicate or update existing record |
| Invalid email format | Email format incorrect | Fix to [email protected] |
| Relation not found | Company doesn't exist | Import Companies first or fix the reference |
| Missing required field | Required field is empty | Fill in the value or remove the row |
Your contacts are now in Twenty! Next steps:
To update contacts instead of creating new ones:
email or id column in your fileSee How to Update Existing Records for details.
Having issues? Check: