packages/twenty-docs/user-guide/data-migration/capabilities/field-mapping.mdx
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
When you upload a file, Twenty analyzes your columns and attempts to match them to existing fields.
Twenty tries to match columns based on:
<Note>Quick tip: Export a few rows from the object you want to import. The exported file will have the exact column names Twenty expects, making automatic mapping seamless during import.</Note>
For each column, you can:
<Note>Fields must exist before import. The import creates records, not fields. Create custom fields under Settings → Data Model before importing.</Note>
All field types available in the Data Model are supported for import.
You can also import id values to either assign a specific ID to new records or update existing ones.
<Note>Some fields have special syntax. We recommend downloading the sample file before preparing your import to see the expected syntax for each field type.</Note>
Address is a nested field with multiple columns. Some can be left empty.
Use the following format:
["value1","value2"]
Use TRUE or FALSE (uppercase) - not true or false
Currency is a nested field with two columns that both must be filled:
1234.56)USD, EUR)Supported formats:
YYYY-MM-DD (recommended)MM/DD/YYYYDD/MM/YYYYhttps://domain.com to avoid creating duplicates, as this is the format used for Companies created by the mailbox and calendar synchronizationsDomain Label and Domain URL can be filled: best practice is to fill domain.com in the label and https://domain.com in the urlSpecifying an id during import is optional. Twenty auto-generates one if not provided.
Use cases for mapping an id column:
<Note>If you provide an id, it must be in UUID format (e.g., c776ee49-f608-4a77-8cc8-6fe96ae1e43f).</Note>
Use valid JSON format:
{"key":"value","key2":"value2"}
Similar to Domain fields:
https://example.com[{"url":"https://twenty.com","label":"Twenty"}]
Use the API names (not the display labels) in the following format:
["VALUE1","VALUE2"]
See here where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under Settings → Data Model before importing.</Note>
<Warning> **Import overwrites, it does not add.**If a record already has VALUE2 and VALUE3 selected, and you import ["VALUE1"], the record will only have VALUE1 after import. The previous selections are replaced, not merged.
</Warning>
1234.56Phone is a nested field with multiple columns that must be filled
4159095555)US)+1)Use the API name format: RATING_1, RATING_2, RATING_3, RATING_4, RATING_5
Please see our dedicated article: Import Relations Between Objects
Use the API name of the option (not the display label):
VALUE1
See here where to find the API names. <Note>New select options will not be created automatically by the import. They must be added under Settings → Data Model before importing.</Note>
For Select, Multi-Select, and Array fields with predefined options, you must use the API names, not the display labels.