メインコンテンツへスキップ

概要

本ガイドでは、オブジェクト間のリレーションをインポートする手順を説明します(例:連絡先を会社にリンク、または商談を連絡先にリンク)。
インポート可能なもの: 単一のオブジェクトタイプを指す 1 対多のリレーションのみ。 複数のオブジェクトタイプを指すリレーション(例:メモが連絡先と会社の双方にリンク)は、現時点ではインポートに対応していません。

リレーションの理解

「1 対多」リレーションとは?

1 対多のリレーションでは:
  • 1 つの会社には多数の連絡先(従業員)がいる
  • 1 つの会社には多数の商談がある
  • 1 つの連絡先には多数のタスクがある
「1」の側はです。 「多」の側はです。

Twenty における一般的なリレーション

リレーション「1」の側(親)「多」の側(子)
会社 → 連絡先会社人物
会社 → 商談会社商談
連絡先 → タスク人物タスク
連絡先 → メモ人物ノート

ステップ 1: 「1」と「多」の側を特定する

インポート前に、どのオブジェクトが親で、どれが子かを判断します。 自問: 「1 つの [オブジェクト A] は多数の [オブジェクト B] を持つか?」
  • 1 つの会社 → 多数の連絡先 ✓(会社が親)
  • 1 人 → 多数の会社 ✗(誤りです—1 人は 1 社に所属)

ステップ 2: まず親レコードをインポートする

参照する前に、親(「1」の側)が Twenty に存在している必要があります。 インポート順:
  1. 会社を最初に(依存関係なし)
  2. 連絡先を次に(会社にリンク)
  3. 商談を 3 番目に(会社や連絡先にリンク)
  4. タスク/メモ(上記のいずれかにリンク)
親レコードが存在しない場合、インポートは失敗します。会社参照を含む連絡先をインポートする前に、必ず会社がインポート済みであることを確認してください。

ステップ 3: 親の一意識別子を控える

親レコードは一意の識別子で参照する必要があります。 利用可能な選択肢:
親オブジェクト利用可能な一意識別子
会社id(UUID)、domain(推奨)、または任意のカスタム一意フィールド
連絡先id(UUID)、email、または任意のカスタム一意フィールド
ワークスペースメンバーid(UUID)、email(名前ではありません)
カスタムオブジェクトid(UUID)、または一意としてマークされた任意のフィールド
推奨: 会社には domain、連絡先には email を使用してください。 これらは人間が読みやすく、スプレッドシートで簡単に確認できます。

識別子の見つけ方

id が必要な場合:
  1. 親レコードを Twenty からエクスポートする
  2. エクスポートには id 列が含まれます
  3. これらの ID を子レコードのファイルで使用する

ステップ 4: リレーションフィールドが存在することを確認する

インポート前に、オブジェクト間のリレーションフィールドが存在することを確認します。 確認・作成方法:
  1. 設定 → データモデル に移動する
  2. 子オブジェクト(例:連絡先)を選択する
  3. 親(例:会社)を指すリレーションフィールドを探す
  4. 存在しない場合は作成する:
    • + Add field をクリック
    • Relation タイプを選択
    • 親オブジェクトを選択

ステップ 5: CSV ファイルを準備する

子側の CSV に、親を一意の識別子で参照する列を追加します。

例:連絡先を会社にリンクする

連絡先の CSV:
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
companyDomain 列は会社のドメインを参照します。

形式要件

識別子形式
ドメインURL 形式https://acme.com
メール標準的なメールアドレスjohn@acme.com
IDUUIDc776ee49-f608-4a77-8cc8-6fe96ae1e43f
ドメインの形式が重要です!https://domain.com を使用してください(domain.com だけではありません)。 これは Twenty が会社のドメインを保存する方法に一致し、照合エラーを防ぎます。

重要なルール

  1. 完全一致が必要 — 値は親レコードと完全に一致している必要があります
  2. 一意の識別子は 1 つだけマッピングcompanyIdcompanyDomain の両方を含めないでください
  3. 大文字小文字を区別Acme.comacme.com

ステップ 6: リレーションをアップロードしてマッピングする

  1. 子オブジェクト(例:連絡先)に移動
  2. Import records をクリック
  3. CSV ファイルをアップロード
  4. フィールドマッピングのステップで:
    • リレーション列(例:companyDomain)を見つける
    • それを会社のリレーションフィールドにマッピングする
  5. 残りのマッピングを完了する
  6. エラーを確認して確定する
Twenty が各子レコードを一致する親に自動でリンクします。

ステップ 7: インポートを確認する

インポート後:
  1. いくつかの子レコード(例:連絡先)を開く
  2. リレーションフィールドに正しい親(例:会社)が表示されていることを確認する
  3. 親レコードを開き、関連レコードのセクションを確認する

避けるべき一般的なミス

ミス問題解決策
インポート順の誤り会社より先に連絡先をインポートしている常に親を先に、次に子をインポートする
ドメイン形式の誤りhttps://acme.com ではなく acme.com を使用しているhttps:// を含む完全な URL 形式を使用する
複数の一意フィールドcompanyIdcompanyDomain の両方をマッピングしている一意の識別子は 1 つだけマッピングする
リレーションフィールドがないデータモデルにリレーションフィールドが存在しないインポート前に 設定 → データモデル で作成する
存在しないレコード親レコードが Twenty に存在しない先に親レコードをインポートするか、タイプミスを確認する
大文字小文字の不一致ファイルでは Acme.com、Twenty では acme.com大文字小文字が完全に一致していることを確認する

ワークスペースメンバーへのリンク

ワークスペースメンバー(あなたのチーム)にリンクする場合:
  • 名前ではなくメールアドレスを使用する
  • 例:owner@yourcompany.com、“John Smith” ではなく
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com

FAQ

次の 2 つの選択肢があります:
  1. Twenty の id を使用する(親レコードをエクスポートして ID を取得)
  2. データモデルにカスタムの一意フィールドを作成し、以前のシステムの外部 ID を保存する
はい! 子レコードの一意の識別子(例:連絡先なら email)と新しいリレーションの値を含めてください。 インポートによってリレーションが更新されます。
多対多のリレーションは、現時点ではインポートに対応していません。 これは 2026 年上期に対応予定です。
複数のオブジェクトタイプを指すリレーションは、現時点ではインポート/エクスポートに対応していません。 これはロードマップにあります。
その行に対してエラーが表示されます。 次のいずれかを行うことができます。
  • 先に親レコードをインポートしてから再インポートする
  • 参照値を修正する
  • インポート対象からその行を削除する
よくある原因:
  • 形式の誤り(ドメインには https://domain.com を使用)
  • 大文字小文字の不一致(綴りを正確に確認)
  • 親が存在しない(先に親をインポート)
  • 複数の識別子をマッピングしている(1 つだけを使用)
注意: 論理削除されたレコードも一意性の判定に含まれます。「not found」エラーが出るのにレコードが存在するように見える場合は、Command Menu → See deleted records を確認してください。 親が論理削除されている可能性があります。

トラブルシューティング

お困りですか? 次を確認してください: