--- title: 字段映射 description: 数据导入期间字段映射的工作原理。 --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; ## 字段映射的工作原理 当您上传文件时,Twenty 会分析您的列,并尝试将其与现有字段匹配。 ### 自动映射 Twenty 将根据以下内容尝试匹配列: * 列标题名称(精确或相似匹配) * 数据类型检测(日期、数字、电子邮件) * 常见字段模式 **快速提示:** 从您要导入的对象中导出几行数据。 导出的文件将包含 Twenty 期望的精确列名,从而在导入时实现无缝的自动映射。 ### 手动映射选项 对于每一列,您可以: * **映射到字段**:从下拉列表中选择匹配的 Twenty 字段 * **不进行映射**:完全跳过该列(不会导入数据) **字段必须在导入前已存在。** 导入会创建记录,而不是创建字段。 请在导入前于 **设置 → 数据模型** 中创建自定义字段。 ## 字段类型兼容性 数据模型中可用的所有字段类型都支持导入。 您也可以导入 `id` 值,以便为新记录指定特定 ID,或更新现有记录。 ## 数据格式要求 **某些字段有特殊语法。** 我们建议在准备导入之前下载示例文件,以查看每种字段类型的预期语法。 ### 地址字段 地址是一个嵌套字段,包含多个列。 其中一些可以留空。 * **Address / Address 1**:街道地址第 1 行 * **Address / Address 2**:街道地址第 2 行 * **Address / City**:城市名称 * **Address / State**:州或省 * **Address / Country**:国家名称 * **Address / Post Code**:邮政/ZIP 编码 ### 数组字段 使用以下格式: ``` ["value1","value2"] ``` ### 布尔字段 使用 `TRUE` 或 `FALSE`(大写),不要使用 `true` 或 `false` ### 货币字段 货币是一个**嵌套字段**,需要两列,且**两列都必须填写**: * **Amount / Amount**:数值(例如,`1234.56`) * **Amount / Currency**:货币代码(例如,`USD`、`EUR`) ### 日期字段 支持的格式: * `YYYY-MM-DD`(推荐) * `MM/DD/YYYY` * `DD/MM/YYYY` * ISO 8601 格式 ### 域名字段 * 建议使用 `https://domain.com` 格式以避免创建重复,因为通过邮箱和日历同步创建的公司会使用该格式 * 可以填写 `Domain Label` 和 `Domain URL`:最佳做法是在标签中填写 `domain.com`,在 url 中填写 `https://domain.com` * 在 Companies 对象内,域名必须唯一 * **待导入文件中的域名必须唯一** ### 电子邮件字段 * 必须为有效的电子邮件格式 * 在 People 对象内,电子邮件必须唯一 * **待导入文件中的电子邮件必须唯一** * 对于附加邮箱:主邮箱请使用 **Emails / Primary Email**,附加邮箱请使用 **Emails / Additional Emails**,并采用以下格式: ``` ["jane@twenty.com","jane.doe@twenty.com"] ``` ### ID 字段 在导入过程中指定 `id` 是可选的。 如未提供,Twenty 将自动生成 ID。 映射 `id` 列的用例: * **设置特定 ID**:为新创建的记录选择 UUID * **更新现有记录**:与现有记录进行匹配以更新它们,而不是创建重复项。 在这种情况下,建议不要映射其他唯一字段:仅映射一个唯一字段可确保导入更顺畅。 如果您提供 `id`,其必须为 UUID 格式(例如,`c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)。 ### JSON 字段 使用有效的 JSON 格式: ``` {"key":"value","key2":"value2"} ``` ### 链接字段 与域名字段类似: * 同时填写标签和 URL 两列:**Links / Link URL** 和 **Links / Link Label** * 使用完整的 URL 格式:`https://example.com` * 对于次要链接,请使用 **Links / Secondary Links** 列,并采用以下格式: ``` [{"url":"https://twenty.com","label":"Twenty"}] ``` ### 多选字段 使用**API 名称**(而非显示标签),格式如下: ``` ["VALUE1","VALUE2"] ``` 请参见[此处](#finding-api-names-for-select-fields)了解如何查找 API 名称。 新的选择项不会通过导入自动创建。 请在导入前于 **设置 → 数据模型** 中添加它们。 **导入会覆盖,不会追加。** 如果一条记录已选择了 `VALUE2` 和 `VALUE3`,而您导入了 `["VALUE1"]`,则导入后该记录将只保留 `VALUE1`。 之前的选择会被替换,而不是合并。 ### 数字字段 * 仅限数字 * 小数使用点号:`1234.56` * 不使用千位分隔符 ### 电话字段 电话是一个包含多列的嵌套字段,且**必须填写** * **Phones / Primary Phone Number**:电话号码(例如,`4159095555`) * **Phones / Primary Phone Country Code**:国家代码(例如,`US`) * **Phones / Primary Phone Calling Code**:拨号代码(例如,`+1`) ### 评分字段 使用 API 名称格式:`RATING_1`、`RATING_2`、`RATING_3`、`RATING_4`、`RATING_5` ### 关系字段 请参阅我们的专门文章:[在对象之间导入关联](/l/zh/user-guide/data-migration/capabilities/import-relations) ### 选择字段 使用选项的**API 名称**(而不是显示标签): ``` VALUE1 ``` 请参见[此处](#finding-api-names-for-select-fields)了解如何查找 API 名称。 新的选择项不会通过导入自动创建。 请在导入前于 **设置 → 数据模型** 中添加它们。 ### 文本字段 * 无需特殊格式 * 首尾空格会被移除 ## 查找 API 名称 对于具有预定义选项的 Select、Multi-Select 和 Array 字段,必须使用 **API 名称**,而不是显示标签。 ### 如何查找 API 名称 1. 进入 **设置 → 数据模型** 2. 选择对象和字段 3. 启用 **高级模式**(在设置页面右下角切换) 4. 查看每个选项的 API 名称