概要
本ガイドでは、オブジェクト間のリレーションをインポートする手順を説明します(例:連絡先を会社にリンク、または商談を連絡先にリンク)。インポート可能なもの: 単一のオブジェクトタイプを指す 1 対多のリレーションのみ。 複数のオブジェクトタイプを指すリレーション(例:メモが連絡先と会社の双方にリンク)は、現時点ではインポートに対応していません。
リレーションの理解
「1 対多」リレーションとは?
1 対多のリレーションでは:- 1 つの会社には多数の連絡先(従業員)がいる
- 1 つの会社には多数の商談がある
- 1 つの連絡先には多数のタスクがある
Twenty における一般的なリレーション
| リレーション | 「1」の側(親) | 「多」の側(子) |
|---|---|---|
| 会社 → 連絡先 | 会社 | 人物 |
| 会社 → 商談 | 会社 | 商談 |
| 連絡先 → タスク | 人物 | タスク |
| 連絡先 → メモ | 人物 | ノート |
ステップ 1: 「1」と「多」の側を特定する
インポート前に、どのオブジェクトが親で、どれが子かを判断します。 自問: 「1 つの [オブジェクト A] は多数の [オブジェクト B] を持つか?」- 1 つの会社 → 多数の連絡先 ✓(会社が親)
- 1 人 → 多数の会社 ✗(誤りです—1 人は 1 社に所属)
ステップ 2: まず親レコードをインポートする
参照する前に、親(「1」の側)が Twenty に存在している必要があります。 インポート順:- 会社を最初に(依存関係なし)
- 連絡先を次に(会社にリンク)
- 商談を 3 番目に(会社や連絡先にリンク)
- タスク/メモ(上記のいずれかにリンク)
ステップ 3: 親の一意識別子を控える
親レコードは一意の識別子で参照する必要があります。 利用可能な選択肢:| 親オブジェクト | 利用可能な一意識別子 |
|---|---|
| 会社 | id(UUID)、domain(推奨)、または任意のカスタム一意フィールド |
| 連絡先 | id(UUID)、email、または任意のカスタム一意フィールド |
| ワークスペースメンバー | id(UUID)、email(名前ではありません) |
| カスタムオブジェクト | id(UUID)、または一意としてマークされた任意のフィールド |
推奨: 会社には
domain、連絡先には email を使用してください。 これらは人間が読みやすく、スプレッドシートで簡単に確認できます。識別子の見つけ方
id が必要な場合:
- 親レコードを Twenty からエクスポートする
- エクスポートには
id列が含まれます - これらの ID を子レコードのファイルで使用する
ステップ 4: リレーションフィールドが存在することを確認する
インポート前に、オブジェクト間のリレーションフィールドが存在することを確認します。 確認・作成方法:- 設定 → データモデル に移動する
- 子オブジェクト(例:連絡先)を選択する
- 親(例:会社)を指すリレーションフィールドを探す
- 存在しない場合は作成する:
- + Add field をクリック
- Relation タイプを選択
- 親オブジェクトを選択
ステップ 5: CSV ファイルを準備する
子側の CSV に、親を一意の識別子で参照する列を追加します。例:連絡先を会社にリンクする
連絡先の CSV:companyDomain 列は会社のドメインを参照します。
形式要件
| 識別子 | 形式 | 例 |
|---|---|---|
| ドメイン | URL 形式 | https://acme.com |
| メール | 標準的なメールアドレス | john@acme.com |
| ID | UUID | c776ee49-f608-4a77-8cc8-6fe96ae1e43f |
重要なルール
- 完全一致が必要 — 値は親レコードと完全に一致している必要があります
- 一意の識別子は 1 つだけマッピング —
companyIdとcompanyDomainの両方を含めないでください - 大文字小文字を区別 —
Acme.com≠acme.com
ステップ 6: リレーションをアップロードしてマッピングする
- 子オブジェクト(例:連絡先)に移動
- ⋮ → Import records をクリック
- CSV ファイルをアップロード
- フィールドマッピングのステップで:
- リレーション列(例:
companyDomain)を見つける - それを会社のリレーションフィールドにマッピングする
- リレーション列(例:
- 残りのマッピングを完了する
- エラーを確認して確定する
ステップ 7: インポートを確認する
インポート後:- いくつかの子レコード(例:連絡先)を開く
- リレーションフィールドに正しい親(例:会社)が表示されていることを確認する
- 親レコードを開き、関連レコードのセクションを確認する
避けるべき一般的なミス
| ミス | 問題 | 解決策 |
|---|---|---|
| インポート順の誤り | 会社より先に連絡先をインポートしている | 常に親を先に、次に子をインポートする |
| ドメイン形式の誤り | https://acme.com ではなく acme.com を使用している | https:// を含む完全な URL 形式を使用する |
| 複数の一意フィールド | companyId と companyDomain の両方をマッピングしている | 一意の識別子は 1 つだけマッピングする |
| リレーションフィールドがない | データモデルにリレーションフィールドが存在しない | インポート前に 設定 → データモデル で作成する |
| 存在しないレコード | 親レコードが Twenty に存在しない | 先に親レコードをインポートするか、タイプミスを確認する |
| 大文字小文字の不一致 | ファイルでは Acme.com、Twenty では acme.com | 大文字小文字が完全に一致していることを確認する |
ワークスペースメンバーへのリンク
ワークスペースメンバー(あなたのチーム)にリンクする場合:- 名前ではなくメールアドレスを使用する
- 例:
owner@yourcompany.com、“John Smith” ではなく
FAQ
親レコードにドメインやメールがない場合はどうすればよいですか?
親レコードにドメインやメールがない場合はどうすればよいですか?
次の 2 つの選択肢があります:
- Twenty の
idを使用する(親レコードをエクスポートして ID を取得) - データモデルにカスタムの一意フィールドを作成し、以前のシステムの外部 ID を保存する
既存レコードのリレーションを更新できますか?
既存レコードのリレーションを更新できますか?
はい! 子レコードの一意の識別子(例:連絡先なら
email)と新しいリレーションの値を含めてください。 インポートによってリレーションが更新されます。多対多のリレーションをインポートできますか?
多対多のリレーションをインポートできますか?
多対多のリレーションは、現時点ではインポートに対応していません。 これは 2026 年上期に対応予定です。
複数のオブジェクトタイプ(例:メモを連絡先と会社の双方)にリンクできますか?
複数のオブジェクトタイプ(例:メモを連絡先と会社の双方)にリンクできますか?
複数のオブジェクトタイプを指すリレーションは、現時点ではインポート/エクスポートに対応していません。 これはロードマップにあります。
親レコードが存在しない場合はどうなりますか?
親レコードが存在しない場合はどうなりますか?
その行に対してエラーが表示されます。 次のいずれかを行うことができます。
- 先に親レコードをインポートしてから再インポートする
- 参照値を修正する
- インポート対象からその行を削除する
リレーションが正しくリンクされないのはなぜですか?
リレーションが正しくリンクされないのはなぜですか?
よくある原因:
- 形式の誤り(ドメインには
https://domain.comを使用) - 大文字小文字の不一致(綴りを正確に確認)
- 親が存在しない(先に親をインポート)
- 複数の識別子をマッピングしている(1 つだけを使用)