Panoramica
This guide walks you through importing relations between objects—for example, linking People to Companies, or Opportunities to People.What can be imported: Only one-to-many relations pointing to a single object type. Relations pointing to multiple object types (like Notes linking to People AND Companies) are not yet supported for import.
Understanding Relations
What is a “One-to-Many” Relation?
In a one-to-many relation:- One Company has many People (employees)
- One Company has many Opportunities
- One Person has many Tasks
Common Relations in Twenty
| Relazione | ”One” Side (Parent) | “Many” Side (Child) |
|---|---|---|
| Companies → People | Azienda | Persone |
| Companies → Opportunities | Azienda | Opportunità |
| People → Tasks | Persona | Attività |
| People → Notes | Persona | Note |
Step 1: Identify the “One” and “Many” Sides
Before importing, determine which object is the parent and which is the child. Ask yourself: “Does ONE [Object A] have MANY [Object B]?”- One Company → Many People ✓ (Company is parent)
- One Person → Many Companies ✗ (This is wrong—a person belongs to one company)
Step 2: Import the Parent Records First
The parent (“one” side) must exist in Twenty before you can reference it. Import order:- Companies first (no dependencies)
- People second (link to Companies)
- Opportunities third (link to Companies and/or People)
- Tasks/Notes (link to any of the above)
Step 3: Note the Parent’s Unique Identifier
You need to reference the parent record using a unique identifier. Available options:| Parent Object | Available Unique Identifiers |
|---|---|
| Aziende | id (UUID), domain (recommended), or any custom unique field |
| People | id (UUID), email, or any custom unique field |
| Membri dello spazio di lavoro | id (UUID), email (not name) |
| Oggetti personalizzati | id (UUID), or any field marked as unique |
Recommended: Use
domain for Companies and email for People. These are human-readable and easy to verify in your spreadsheet.Finding the Identifier
If you need theid:
- Export the parent records from Twenty
- The export includes the
idcolumn - Use these IDs in your child records file
Step 4: Verify the Relation Field Exists
Before importing, ensure the relation field exists between your objects. To check or create:- Go to Settings → Data Model
- Select your child object (e.g., People)
- Look for a relation field pointing to the parent (e.g., Company)
- If it doesn’t exist, create it:
- Click + Add field
- Select Relation type
- Choose the parent object
Step 5: Prepare Your CSV File
Add a column to your child CSV that references the parent using its unique identifier.Example: People Linking to Companies
Your People CSV:companyDomain column references the Company’s domain.
Format Requirements
| Identificatore | Formato | Esempio |
|---|---|---|
| Dominio | URL format | https://acme.com |
| Standard email | [email protected] | |
| ID | UUID | c776ee49-f608-4a77-8cc8-6fe96ae1e43f |
Important Rules
- Exact match required — the value must exactly match the parent record
- Map only ONE unique identifier — don’t include both
companyIdANDcompanyDomain - Case sensitive —
Acme.com≠acme.com
Step 6: Upload and Map the Relation
- Navigate to the child object (e.g., People)
- Click ⋮ → Import records
- Upload your CSV file
- In the field mapping step:
- Find your relation column (e.g.,
companyDomain) - Map it to the Company relation field
- Find your relation column (e.g.,
- Complete the remaining mapping
- Review errors and confirm
Step 7: Verify the Import
After importing:- Open a few child records (e.g., People)
- Verify the relation field shows the correct parent (e.g., Company)
- Open a parent record and check the related records section
Common Mistakes to Avoid
| Mistake | Problem | Solution |
|---|---|---|
| Wrong import order | Importing People before Companies | Always import parents first, then children |
| Wrong domain format | Using acme.com instead of https://acme.com | Use full URL format with https:// |
| Multiple unique fields | Mapping both companyId AND companyDomain | Map only ONE unique identifier |
| Missing relation field | The relation field doesn’t exist in the data model | Create it in Settings → Data Model before importing |
| Non-existent records | The parent record doesn’t exist in Twenty | Import parent records first, or check for typos |
| Case mismatch | Acme.com in file but acme.com in Twenty | Ensure exact case matching |
Linking to Workspace Members
When linking to Workspace Members (your team):- Use their email address, not their name
- Example:
[email protected], not “John Smith”
FAQ
What if my parent record doesn't have a domain or email?
What if my parent record doesn't have a domain or email?
You have two options:
- Use the Twenty
id(export parent records to get their IDs) - Create a custom unique field in your data model to store an external ID from your previous system
Can I update relations on existing records?
Can I update relations on existing records?
Sì! Include the child record’s unique identifier (e.g.,
email for People) and the new relation value. The import will update the relation.Can I import Many-to-Many relationships?
Can I import Many-to-Many relationships?
Many-to-Many relations are not yet supported for import. This is planned for H1 2026.
Can I link to multiple object types (like Notes to People AND Companies)?
Can I link to multiple object types (like Notes to People AND Companies)?
Relations pointing to multiple object types are not yet supported for import/export. This is on our roadmap.
What happens if a parent record doesn't exist?
What happens if a parent record doesn't exist?
The import will show an error for that row. Puoi:
- Import the parent record first, then re-import
- Fix the reference value
- Remove the row from import
Why is my relation not linking correctly?
Why is my relation not linking correctly?
Common causes:
- Wrong format (use
https://domain.comfor domains) - Case mismatch (check exact spelling)
- Parent doesn’t exist (import parents first)
- Mapping multiple identifiers (use only one)