一般的な使用例
| ソース | コピー先 | コピーするフィールド |
|---|---|---|
| 会社 | 商談 | 業種、会社規模、ARR |
| 人物 | 商談 | メール、電話、役職 |
| 商談 | 会社 | 直近の商談金額、直近の受注日 |
基本的なフィールドのコピー
例: 連絡先のメールを商談にコピー
目標: 商談で連絡担当者を設定したとき、その人物のメールを商談にコピーして簡単に参照できるようにする。前提条件
ワークフローを作成する前に、設定 → データモデル → 商談 でコピー先フィールドを作成します:- 連絡先メール(タイプ: Email)
- 連絡先電話(タイプ: Phone)
セットアップ
- トリガー: レコードが更新(商談、連絡担当者フィールド)
- フィルター: 連絡担当者が空でないことを確認
-
レコード検索: リンクされた人物を見つける
- オブジェクト: People
- フィルター: ID が
{{trigger.object.pointOfContact.id}}に等しい
-
レコードを更新:
- オブジェクト: Opportunities
- レコード:
{{trigger.object.id}} - 連絡先メール:
{{searchRecords[0].email}} - 連絡先電話:
{{searchRecords[0].phone}}
複数フィールドのコピー
例: 関連するすべての商談に会社情報を同期
目標: 会社の詳細が変更されたら、関連するすべての商談を更新する。セットアップ
-
トリガー: レコードが更新(会社)
- フィールド: 業種、会社規模、年間売上高
-
レコード検索: この会社のすべての商談を見つける
- オブジェクト: Opportunities
- フィルター: 会社 ID が
{{trigger.object.id}}に等しい
- イテレーター: 各商談をループ処理する
-
レコードを更新 (イテレーター内):
- オブジェクト: Opportunities
- レコード:
{{iterator.currentItem.id}} - 会社の業種:
{{trigger.object.industry}} - 会社規模:
{{trigger.object.companySize}} - 会社のARR:
{{trigger.object.annualRevenue}}
レコード作成時のコピー
例: 会社データで商談を事前入力
目標: 会社にリンクされた商談を作成するとき、主要な会社情報を自動コピーする。前提条件
設定 → データモデル → 商談 でコピー先フィールドを作成します:- 会社の業種(タイプ: Text)
- 会社規模(タイプ: Number)
セットアップ
-
トリガー: レコードが作成(商談)
- フィルター: 会社が空でない
-
レコード検索: リンクされた会社の詳細を取得
- オブジェクト: Companies
- フィルター: ID が
{{trigger.object.company.id}}に等しい
-
レコードを更新:
- オブジェクト: Opportunities
- レコード:
{{trigger.object.id}} - 会社の業種:
{{searchRecords[0].industry}} - 会社規模:
{{searchRecords[0].employees}}
タスクとノートの制限: タスクとノートのリレーションは多対多としてハードコードされており、ワークフローのトリガーやアクションではまだ使用できません。 これらのリレーションにアクセスするには、代わりにAPIを使用してください。
双方向同期
例: 主担当者を同期した状態に保つ
目標: 会社の主担当者が変更されたら、その人物を更新する。 人物が主担当者になったときは、会社を更新する。ワークフロー 1: 会社 → 人物
- トリガー: レコードが更新(会社、主担当者フィールド)
- レコードを更新: 人物の “Is Primary Contact” を true に設定
- レコード検索: 以前の主担当者を見つける
- レコードを更新: 以前の連絡先の “Is Primary Contact” を false に設定
ワークフロー 2: 人物 → 会社
- トリガー: レコードが更新(人物、Is Primary Contact = true)
- レコードを更新: 会社の主担当者をこの人物に設定
無限ループを避けるため、双方向同期の取り扱いには注意してください。 更新前に値が実際に変更されたかを確認するフィルターを使用する。
コードによる複雑なマッピング
例: コピー時にデータを変換
目標: 人物から商談へ電話番号をコピーし、フォーマットする。ベストプラクティス
ループを回避する
- 互いにトリガーし合って終わらないワークフローを作成しない
- 特定のフィールド条件を使用する
- 値が実際に変更されたかを確認するチェックを追加する
欠損データの取り扱い
- コピー前に常にソースレコードの存在を確認する
- 任意フィールドには既定値を用意する
- ソースフィールドが空の場合はフィルターでスキップする
パフォーマンス
- 多数のレコードにコピーする場合はバッチ更新を使用する
- 大規模な同期処理にはスケジュールされたワークフローを使用する
- 複数レコードの更新にはイテレーターの使用を検討する