packages/twenty-docs/user-guide/data-migration/capabilities/import-relations.mdx
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
<Note>Currently supported for import: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
Twenty supports standard relations where one record links to many others:
Some relations can connect to different types of objects. This works in two ways:
Pattern 1: Many records linking to one record each from different object types
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Pattern 2: One record receiving links from many records of different object types
A Project can receive links from multiple records across different object types:
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
<Warning> **Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.This is on our roadmap. </Warning>
Many to Many relations are not yet available. For example, you cannot currently create a relation where:
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Reminder: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Example:
Before importing the "many" side, the "one" side records must already exist in Twenty.
id (Twenty's UUID)domain for Companies, or an external ID from your previous system)<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
Add a column in your "many" side CSV file that references the "one" side record.
Example: For a People CSV file linking to Companies:
firstName,lastName,email,companyDomain
John,Smith,[email protected],https://acme.com
Jane,Doe,[email protected],https://widgets.co
Important:
https://acme.com), not the Domain LabelBefore uploading your file, make sure the relation field exists between your objects.
If it doesn't exist:
companyDomain)| Object | Unique Fields Available |
|---|---|
| Companies | id, domain, any custom unique field |
| People | id, email, any custom unique field |
| Workspace Members | id, email (not name) |
| Other standard and custom objects | id, any field marked as unique |
<Note>Linking to Workspace Members: When the relation points to Workspace Members (your team logging into Twenty), reference them by their email address, not their name.</Note>
<Note>We recommend using domain for Companies and email for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Reminder: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See Uniqueness Constraints for more details.</Note>
The parent record must exist before you can reference it. </Warning>