Files
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 2s
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
14 KiB
Plaintext
Raw Permalink 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: 任意の CRM から Twenty へデータを移行するためのステップバイステップガイド。
---
## 概要
このガイドでは、任意の CRM から Twenty へデータを移行する手順を説明します。 このプロセスには、データの監査、Twenty ワークスペースの準備、現在のシステムからのエクスポート、および Twenty へのインポートが含まれます。
<Note>移行後、ビュー、ワークフロー、権限は手動で再作成する必要があります。 この構成作業のための時間を確保してください。</Note>
## ステップ 1: 現在のデータを監査する
移行は新たなスタートの好機です。 不要なデータは持ち込まないでください。
**保持するもの:**
* アクティブな連絡先と会社
* 進行中の商談やディール
* 重要なメモとアクティビティ
* 実際に使用しているカスタムフィールド
**除外するもの:**
* 古い連絡先(2年以上アクティビティがないもの)
* 重複レコード
* テストデータ
* 未使用のカスタムフィールド
## ステップ 2: データモデルをマッピングする
現在の CRM と Twenty の間のマッピングドキュメントを作成します:
| お使いの CRM | Twenty |
| ---------- | ------------------ |
| アカウント / 組織 | **会社** |
| 連絡先 / 人 | **連絡先** |
| ディール / 商談 | **商談** |
| アクティビティ | **タスク** または **メモ** |
| カスタムオブジェクト | **カスタムオブジェクト** |
**各フィールドごとに、次を記録します:**
* ソースフィールド名
* 移行先の Twenty フィールド
* 必要な形式変換(例:日付、電話番号など)
<Note>インポート中はこのマッピングドキュメントを手元に置いてください—列のマッピング時に参照します。</Note>
## ステップ 3: Twenty ワークスペースを設定する
データをインポートする前に、Twenty ワークスペースを準備します:
### カスタムオブジェクトとフィールドを作成
1. **設定 → データモデル** に移動
2. 必要なカスタムオブジェクトを作成する
3. 標準オブジェクトおよびカスタムオブジェクトにカスタムフィールドを追加する
4. フィールドの設定(一意、必須、選択肢など)を構成する
<Warning>
**インポート前にフィールドが存在している必要があります。**
CSV インポートはレコードを作成します。フィールドは作成しません。 インポート前に **設定 → データモデル** でカスタムフィールドをすべて作成してください。
</Warning>
### チームを招待
<Warning>
**重要: データをインポートする前にユーザーを招待してください。**
データにユーザー参照(アカウント所有者、担当者など)が含まれる場合、それらのユーザーはインポート前に Twenty 上に存在している必要があります。 そうでない場合、それらのリレーションはマッピングできません。
</Warning>
1. **設定 → メンバー** に移動
2. すべてのチームメンバーを招待する
3. **全員が招待を受諾するのを待つ**
4. メンバー一覧にすべてのユーザーが表示されていることを確認する
## ステップ 4: 現在の CRM からエクスポートする
現在の CRM からデータをエクスポートします:
1. 通常は設定、データ管理、管理の下にある **エクスポート** 機能を探します
2. 可能であれば **CSV 形式** でエクスポートする
3. 各オブジェクトタイプを個別にエクスポートする(会社、連絡先、商談など)
4. 移行したいすべてのフィールドを含める
**次のオブジェクトをエクスポートします(この順序で):**
1. 会社 / アカウント / 組織
2. 連絡先 / 人
3. ディール / 商談
4. メモとアクティビティ
5. カスタムオブジェクト
## ステップ 5: データをクリーンアップして整形する
エクスポートした各 CSV を表計算アプリで開き、Twenty 用に準備します。
### 重複を削除
1. 一意のフィールドで並べ替える(連絡先はメール、会社はドメイン)
2. 重複行を削除または統合する
3. Twenty にすでに重複が存在しないことを確認する
### フィールドの形式を正しく整える
| フィールドタイプ | 必須の形式 |
| ----------- | ------------------------------- |
| **ドメイン** | `https://domain.com` |
| **メール** | `name@domain.com`(一意である必要があります) |
| **日付** | `YYYY-MM-DD` |
| **電話** | 3 列: 番号、国コード、Calling Code |
| **ブール型** | `TRUE` または `FALSE`(大文字) |
| **選択フィールド** | 表示ラベルではなく API 名を使用する |
<Warning>
**ドメインの形式は重要です。**
`https://domain.com` を使用してください(`domain.com` や `www.domain.com` ではありません)。 これは Twenty の形式に一致し、メール/カレンダー同期を接続した際の重複を防ぎます。
</Warning>
すべてのフィールドタイプに関する完全な書式要件は、[CSV ファイルを準備する方法](/l/ja/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/ja/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) を参照してください。
### ユーザー参照を更新
データにユーザーの割り当て(所有者、担当者)が含まれる場合:
1. **ユーザーのメールアドレス** の列を追加する(古いシステムの ID だけでは不可)
2. ユーザーが Twenty のワークスペースに参加した際に使用したものと同じメールアドレスを使用してください。
完全な書式ガイドは、[CSV ファイルを準備する方法](/l/ja/user-guide/data-migration/how-tos/prepare-your-csv-files) を参照してください。
## ステップ 6: Twenty にインポートする
<Warning>
**インポート順は重要です!**
必ずこの順序でインポートします:
1. 最初に **会社**(依存関係なし)
2. 次に **連絡先**(会社にリンク)
3. 3 番目に **商談**(会社/連絡先にリンク)
4. **メモとタスク**(レコードにリンク)
5. **カスタムオブジェクト**(依存関係に従って)
参照する前に、親レコードが存在している必要があります。
</Warning>
### 各オブジェクトをインポート
各 CSV ファイルについて、順番に実行します:
1. Twenty の対象オブジェクトに移動します
2. **⋮ → Import records** をクリックします
3. CSV ファイルをアップロードします
4. 列をフィールドにマッピングします:
* ユーザーのメールアドレス列を適切なリレーションフィールドにマッピングします
* リレーション列(`companyDomain` など)をリレーションフィールドにマッピングします
5. UI でエラーを確認して修正します
6. インポートを確定します
7. 次のファイルに進む前に、いくつかのレコードを確認します
**詳細ガイド:**
* [会社をインポートする方法](/l/ja/user-guide/data-migration/how-tos/import-companies-via-csv)
* [連絡先をインポートする方法](/l/ja/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [リレーションをインポートする方法](/l/ja/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## ステップ 7: 大規模な移行(5 万件以上のレコード)
大規模な移行の場合:
| 件数 | 推奨アプローチ |
| -------- | ----------------- |
| 1 万件未満 | 単一の CSV インポート |
| 1 万〜5 万件 | 複数の CSV ファイルに分割する |
| 5 万件以上 | API を使用する |
**API でのインポートについて:**
* 大規模データセットでは高速で信頼性が高い
* バッチ処理に対応(1 回の呼び出しで最大 60 レコード)
* 詳細は [API でデータをインポートする方法](/l/ja/user-guide/data-migration/how-tos/import-data-via-api) を参照
## ステップ 8: 移行後のセットアップ
データのインポート後、ワークスペースの設定を完了します:
### ビューを再作成
* フィルター、並べ替え、列の構成を含む保存済みビューを設定します
* 必要なカンバンビューやカレンダービューを作成します
### ワークフローを再作成
* **設定 → ワークフロー** で自動化を再構築します
* 最も重要なワークフローから開始する
* 運用に入れる前に各ワークフローをテストします
### 役割と権限の設定
* **設定 → メンバー → 役割** で役割を設定します
* ユーザーに適切な役割を割り当てます
### メールとカレンダーの連携
* 各ユーザーは **設定 → アカウント** で自分のアカウントを接続します
* Twenty がメールを連絡先レコードと同期し始めます
* [メールとカレンダー](/l/ja/user-guide/calendar-emails/overview) を参照
### チームのトレーニング
* 新しいインターフェースを一緒に確認する
* チーム固有のプロセスを文書化する
## 一般的な問題と解決策
| 問題 | 原因 | 解決策 |
| ------------------ | ---------------- | -------------------------------------------- |
| **重複エラー** | メール/ドメインがすでに存在する | ファイルから重複を削除するか、一意の識別子を含めて既存のレコードを更新する |
| **リレーションが見つかりません** | 親レコードが存在しない | 親オブジェクトを先にインポートする(連絡先の前に会社) |
| **不足しているフィールド** | カスタムフィールドが存在しない | インポート前に **設定 → データモデル** でフィールドを作成する |
| **選択フィールドのエラー** | 表示ラベルを使用している | API 名を使用する(設定で詳細モードを有効にして確認) |
| **ユーザーのリレーションが空** | ユーザーが招待を受諾していない | データをインポートする前に、すべてのユーザーが招待を受諾していることを確認してください。 |
詳細なトラブルシューティング手順は、[インポートエラーを解決する方法](/l/ja/user-guide/data-migration/how-tos/fix-import-errors) を参照してください。
## ポスト移行チェックリスト
### データの整合性
<Check>すべてのレコードがインポートされた(ソースシステムの件数と比較)</Check>
<Check>リレーションが正常に機能している(連絡先が会社にリンク)</Check>
<Check>ユーザーの割り当てが正しくマッピングされている(所有者、担当者)</Check>
<Check>カスタムフィールドが入力されている</Check>
<Check>想定外の重複がない</Check>
### 構成
<Check>ビューを再作成済み</Check>
<Check>ワークフローを再作成しテスト済み</Check>
<Check>役割と権限を設定済み</Check>
<Check>メール/カレンダー同期を接続済み</Check>
### チームの準備状況
<Check>新しいシステムについてチームをトレーニング済み</Check>
<Check>旧 CRM のアクセス計画を決定(参照用に保持する? いつ無効化するか?)</Check>
## FAQ
<AccordionGroup>
<Accordion title="ワークフローを自動的に移行できますか?">
現時点ではできません。 ワークフローは Twenty で手動で再作成する必要があります。
</Accordion>
<Accordion title="ファイル添付はどうなりますか?">
CSV のエクスポートにはファイル添付は含まれません。 手動で再アップロードするか、API で移行するか、サポートが必要な場合は弊社チームにご連絡ください。
</Accordion>
<Accordion title="移行中に両方のシステムを稼働させておけますか?">
はい、移行が完了したことを確認するまでは、旧 CRM を稼働させておくことを推奨します。 ただし、両方の環境で新しいデータを作成しないよう注意してください。
</Accordion>
<Accordion title="移行には通常どれくらい時間がかかりますか?">
データの量と複雑さによります。 小規模な移行(1 万件未満)は数時間で完了します。 大規模な移行は、データのクリーンアップやテストを含め、数日かかる場合があります。
</Accordion>
</AccordionGroup>
## ヘルプが必要ですか?
<Tip>
移行についてサポートが必要ですか? [認定済みの Twenty パートナーを探す](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm)ことで、データ、パイプライン、ユーザーの移行を最初から最後まで任せられます。
</Tip>