Files
upstream-twenty/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

290 lines
9.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 从其他CRM迁移
description: 分步指南:将您的数据从任何客户关系管理系统迁移到 Twenty。
---
## 概览
本指南将引导您将数据从任何客户关系管理系统迁移到 Twenty。 该过程包括审核您的数据、准备您的 Twenty 工作区、从当前系统导出,并导入到 Twenty。
<Note>视图、工作流和权限必须在迁移后手动重新创建。 为这些配置工作预留时间。</Note>
## 步骤 1:审核您现有的数据
迁移是一个重新开始的机会。 不要把冗余内容带过来。
**应保留的内容:**
* 活跃的联系人和公司
* 进行中的机会和交易
* 重要的备注和活动
* 实际使用的自定义字段
**应舍弃的内容:**
* 过时的联系人(超过 2 年无任何活动)
* 重复记录
* 测试数据
* 未使用的自定义字段
## 步骤 2:映射您的数据模型
在您当前的客户关系管理系统与 Twenty 之间创建一份映射文档:
| 您的客户关系管理系统 | Twenty |
| ---------- | --------------- |
| 账户 / 组织 | **公司** |
| 联系人 / 人员 | **人员** |
| 交易 / 机会 | **商业机会** |
| 活动 | **任务** 或 **注意** |
| 自定义对象 | **自定义对象** |
**对于每个字段,文档:**
* 源字段名称
* 目标20领域
* 任何需要的格式转换 (日期, 电话号码等)
<Note>在导入过程中保持此映射文档的便捷性—您将在映射列时引用。</Note>
## 第 3 步:设置您的20个工作区
在导入数据之前,准备您的20个工作区:
### 创建自定义对象和字段
1. 转到**设置 -> 数据模型**
2. 创建您需要的任何自定义对象
3. 将自定义字段添加到标准和自定义对象
4. 配置字段设置 (独特,需要选择选项等)
<Warning>
**字段必须在导入前存在。**
CSV 导入创建记录,而不是字段。 在导入前在 设置 -> 数据模型中创建所有自定义字段。
</Warning>
### 邀请您的团队
<Warning>
**邀请用户BERE导入数据。**
如果您的数据包含用户引用(帐户所有者、受让人等),那么这些用户必须在20个时间内才能导入。 否则,就无法确定这些关系。
</Warning>
1. 转到 **设置 → 成员**
2. 邀请所有团队成员
3. **等待所有人接受**他们的邀请
4. 验证所有用户出现在您的会员列表
## 第 4 步:从您当前的 CRM 导出
从您当前的 CRM 导出数据:
1. 寻找一个 **导出** 函数 (通常在设置、 数据管理或管理下)
2. 尽可能导出为 **CSV 格式**
3. 单独导出每个对象类型 (公司、联系人、交易等)
4. 包括你想要迁移的所有字段
**导出这些对象(按此顺序作为参考):**
1. 公司/帐户 / 组织
2. 联系人 / 人员
3. 交易/机会
4. 说明和活动
5. 自定义对象
## 第 5 步:清理和格式化您的数据
在电子表格应用程序中打开每个导出的 CSV 并为20做准备。
### 删除重复项
1. 按唯一字段排序 (个人电子邮件,公司域)
2. 删除或合并重复的行
3. 验证不存在重复的 20 个已经存在
### 正确格式字段
| 字段类型 | 所需格式 |
| ----------- | -------------------------- |
| **域** | `https://domain.com` |
| **电子邮件** | `name@domain.com` (必须是唯一的) |
| **日期** | `YYY-MM-DD` |
| **电话** | 三列:数字,国家代码,呼叫代码 |
| **Boolean** | `TRUE` 或 `FALSE` (大写) |
| **选择字段** | 使用 API 名称,不显示标签 |
<Warning>
**域格式是关键。**
使用 `https://domain.com` (不是 `domain.com` 或 `www.domain.com` )。 这匹配20个格式,并且在您连接电子邮件/日历同步时防止重复。
</Warning>
查看[如何准备您的 CSV 文件](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files) 以获取所有字段类型的完整格式要求。
### 添加关系列
要连接记录(例如人与公司),添加一列与母公司唯一标识符。
**示例:有公司链接的人CSV**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
查看[如何导入关系](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) 获取链接记录的详细说明。
### 更新用户引用
如果您的数据包含用户指派(Owner,指派):
1. 在 **用户的电子邮件** 中添加一列(不仅仅是旧系统中的他们的 ID)
2. 使用用户用来加入你的20个工作区的相同电子邮件地址
参见 [如何准备 CSV 文件](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files) 以获取完整的格式指南。
## 步骤6:导入到 20
<Warning>
**导入订单事项!**
总是按此顺序导入:
1. **Companies** 优先(无依赖)
2. **People** 秒(链接到公司)
3. **Opportunities** 第三个(链接到公司/人民)
4. **便笺和任务** (链接到记录)
5. **自定义对象** 跟随他们的依赖关系
在您可以引用之前必须存在父记录。
</Warning>
### 导入每个对象
对于每个CSV文件,先后顺序:
1. 在 20 中导航到对象
2. 单击**视图-> 导入记录**
3. 上传CSV文件
4. 映射列到字段:
* 映射用户电子邮件列到适当的关系字段
* 映射关系列(例如`companyDomain`) 到关联字段
5. 审核并修复界面中的任何错误
6. 确认导入
7. 在继续到下一个文件之前验证几个记录
**详细指南:**
* [如何导入公司](/l/zh/user-guide/data-migration/how-tos/import-companies-via-csv)
* [如何导入联系人](/l/zh/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [如何导入关系](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## 步骤7:大型迁移(50 000+个记录)
对于大型迁移:
| 音量 | 建议的办法 |
| ---------------- | ---------- |
| 不足1万份记录 | 单独导入 CSV |
| 10,000-50,000份记录 | 拆分成多个CSV文件 |
| 50,000多条记录 | 使用 API |
**用于API导入:**
* 更快、更可靠的大型数据集
* 支持批量操作 (每次呼叫最多60个记录)
* 查看[如何通过 API 导入数据](/l/zh/user-guide/data-migration/how-tos/import-data-via-api)
## 步骤8:迁移后设置
导入数据后,完成您的工作区配置:
### 重新创建视图
* 使用过滤器、排序和列配置设置已保存的视图
* 创建您需要的 kanban 或日历视图
### 重新创建工作流
* 在 **设置 -> Workflow** 中重建您的automatic
* 以最关键的工作流开始
* 在依赖之前测试每一个
### 配置角色和权限
* 在 **设置 → 成员 → 角色** 中设置角色
* 分配用户到适当的角色
### 连接电子邮件和日历
* 每个用户在 **设置 -> 帐户** 中连接自己的帐户
* 20个将开始同步电子邮件到联系记录
* 查看[电子邮件和日历](/l/zh/user-guide/calendar-emails/overview)
### 训练你的团队
* 通过新接口一起移动
* 记录任何特定团队的进程
## 常见问题及解决方案
| 问题 | 原因 | 解答 |
| ---------- | --------- | --------------------------- |
| **复制错误** | 电子邮件/域已存在 | 从文件中删除重复,或者包含唯一的标识符来更新现有记录 |
| **找不到关系** | 父记录不存在 | 首先导入父对象 (People之前的公司) |
| **缺少字段** | 自定义字段不存在 | 在导入前在设置 -> 数据模型中创建字段 |
| **选择字段错误** | 使用显示标签 | 使用 API 名称 (在设置中启用高级模式来查找他们) |
| **用户关系为空** | 用户未接受邀请 | 确保所有用户在导入前接受邀请 |
请参阅[如何修复导入错误](/l/zh/user-guide/data-migration/how-tos/fix-import-errors)详细故障排除步骤。
## 迁移后检查表
### 数据的完整性
<Check>所有记录均已导入(与源系统的数量进行比较)</Check>
<Check>关联工作正常(人员已关联到公司)</Check>
<Check>用户分配映射正确(Owner、Assignee)</Check>
<Check>自定义字段已填充</Check>
<Check>没有意外的重复项</Check>
### 配置
<Check>视图已重新创建</Check>
<Check>工作流已重新创建并通过测试</Check>
<Check>角色和权限已配置</Check>
<Check>邮件/日历同步已连接</Check>
### 团队准备情况
<Check>团队在新系统</Check>
<Check>老的 CRM 访问计划已决定 (保留以供参考吗? 何时禁用?)</Check>
## 常见问题
<AccordionGroup>
<Accordion title="我可以自动迁移工作流吗?">
不是当前的。 工作流必须在 20 中手动重新创建。
</Accordion>
<Accordion title="文件附件是什么?">
文件附件不包含在 CSV 导出中。 您需要手动重新上传他们,通过API迁移,或联系我们的团队寻求帮助。
</Accordion>
<Accordion title="我能在迁移期间保持两个系统运行吗?">
是的,我们建议保持您旧的 CRM 运行,直到您验证迁移完成。 请注意不要在这两个地方建立新的数据。
</Accordion>
<Accordion title="移徙通常需要多长时间?">
取决于数据量和复杂性。 可在几个小时内进行小规模移徙(不到10 000项记录)。 大规模迁移可能需要几天时间,包括数据清理和测试。
</Accordion>
</AccordionGroup>
## 需要帮助?
<Tip>
想在迁移过程中获得帮助吗? [查找认证的20个合作伙伴](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) 以移动您的数据、管道和用户端到结束。
</Tip>