Skip to main content
Minori Miyachi
Gainsight Employee ⭐️
Gainsight Employee ⭐️
Oct 28, 2026 9:07 AM UTC

リレーションシップ/カンパニー情報を毎週スナップショットとして履歴保存する方法

「カンパニーやリレーションシップの項目を CSM が日々更新しているけれど、分析のために過去の値も履歴として残しておきたい…」というケース、ありませんか?

この記事では、ルールエンジン(Rules Engine)で毎週リレーションシップの値をカスタムオブジェクトに書き出し、履歴として蓄積する方法を解説します。

例としてリレーションシップごとの「解約ヨミフェーズ」を取り上げますが、どのオブジェクト、フィールド項目でも同じ考え方で応用できます。

 

📌 目次


 

1. ユースケース

CSM が更新している値の変化や推移を分析したい、というケースです。

たとえば、リレーションシップに「解約ヨミフェーズ」と「解約金額」の項目があり、CSM が随時更新しているとします。この項目は更新するたびに上書きされるため、「先月はフェーズ A・100万円だったのが、今月はフェーズ B・80万円に変わった」といった変化は、そのままでは追えません。

そこで、毎週決まったタイミングで値をカスタムオブジェクトに1行ずつ追加(履歴として保持)しておき、その履歴をレポートやダッシュボードで分析に使う、という流れにします。

 


 

2. 履歴用のカスタムオブジェクトを作成する

まずは、スナップショットを溜めておく箱(カスタムオブジェクト)を作ります。

  1. 管理(Administration)> データ管理(Data Management)> オブジェクト(Objects)を開き、カスタムオブジェクトを新規作成します。
  2. オブジェクト名は、用途が分かるものにし、オブジェクトタイプは「高容量」にします。
    (※高容量と低容量の違いはこちらをご確認ください。)

     

  3. 下表のようにフィールドを追加します。

フィールドの設定例です。項目名は環境に合わせて読み替えてください。

フィールド名(例) データタイプ 役割
スナップショット日 日付(Date) いつ時点の値かを記録する
リレーションシップ ルックアップ(Lookup) リレーションシップオブジェクトへの紐づけ
解約ヨミフェーズ 元の項目に合わせる スナップショット時点のフェーズ
解約予定金額 元の項目に合わせる スナップショット時点のヨミ金額
担当者メモ 元の項目に合わせる スナップショット時点のメモ

 

また、リレーションシップへのルックアップを設定しておくと、後からレポートで顧客名や担当 CSM などの情報を引き出して分析しやすくなります。

 

※「削除時」ってなに?
Lookup先のレコードが削除されたとき、Lookupを持つ現在のオブジェクト側をどうするかを決める項目です。
​​​​​​
・Delete(削除):Lookupを持つこのオブジェクト側のレコードも同時に削除します
・Set Null(Nullにする):Lookupを持つオブジェクト側のレコードはそのままで、Lookup先をNullにします
・None(なし):Lookupを持つオブジェクト側のレコードも参照先もそのままにします。


カスタムオブジェクトをはじめて作成される方は、以下もご参考にしてください

 

 


 

3. 毎週実行するルールエンジンを作成する

次に、リレーションシップの値を取得してカスタムオブジェクトに書き込むルールを作ります。

3-1. ルールの作成とソースの設定

  1. 管理 > ルールエンジン(Rules Engine)で、新しいルールを作成します。

     

  2. ソースとしてリレーションシップオブジェクトを選び、Fetch タスクで次のフィールドを取得します。
    • リレーションシップの GSID
    • 解約ヨミフェーズ、解約金額(その他スナップショットしたい項目)

       

  3. 対象を絞りたい場合は、フィルター条件(例:ステータス=アクティブ等)を設定します。

 

3-3. カスタムオブジェクトへ書き込む

  1. アクション(Setup Action)で、カスタムオブジェクトへのロード(Load to Custom Object)を追加します。
  2. アクションタイプは、毎回新しい行を追加する挿入(Insert)を選びます。
  3. ルールの出力項目を、オブジェクトのフィールドにマッピングします。

     

  4. スナップショット日を付与します。ルールエンジンの「実行日」を日付値として付与し、スナップショット日として使います。これにより、どの週のデータかが行ごとに判別できます。
  5. Save Actionsを押して保存します。
    (左下にsuccessとメッセージが出れば保存されているので、右上の×で画面を閉じます。)


 

4. スケジュール設定とテスト実行

最後に、毎週自動で動くようにスケジュールを設定します。

  1. ルールのスケジュール設定で、実行頻度を「毎週」にし、曜日と時刻を指定します。
  2. 本番のスケジュールを有効にする前に、一度手動で実行して、カスタムオブジェクトに想定どおり行が追加されるか確認します。
  3.  

※実行されているか確認する方法
・画面右上のExecution Logsボタンを押す

・左側に実行履歴が表示されます。「success」と表示されていたら処理が完了しています。

 


 

5.レポートで確認する

 2.で作成したカスタムオブジェクトの名前をレポートで呼び出して、実際に履歴が書き込まれていることを確認してみましょう!

 

 

 

6.注意点

  • 履歴は、ルールを動かし始めた日から溜まります。過去分をさかのぼって復元することはできないため、早めに開始しておくのがおすすめです。
  • 同じ週に複数回実行すると、行が重複します。Insert は実行のたびに行を追加するため、テスト実行した行や、再実行した行は、分析時に二重カウントされないよう注意してください。(再実行する可能性がある場合は、「Upsert」にして、上書きできるようにすることもできます。)
  • スナップショットは「実行時点」の値です。週の途中で CSM が更新した値は、次回の実行で反映されます。
  • データタイプは元の項目に合わせましょう。ドロップダウンや通貨などの項目は、型が合わないとマッピングやロードでエラーになることがあります。
  • カンパニーの項目をスナップショットしたい場合は、ソースをカンパニーオブジェクトに変えて、同じ手順で設定できます。

 


 

以上で、リレーションシップ情報を毎週スナップショットとして保持する仕組みが完成です。🎉

溜まった履歴は、レポートやダッシュボードで「フェーズの変化」「金額の増減」を時系列で見るのに活用してみてください!

    1 reply

    aiken
    Helper ⭐️⭐️⭐️
    Oct 30, 2026 11:19 AM UTC

    ​@Minori Miyachi san.

    記録残すソリューションをありがとうございます😊

    ちょっといくつか質問したく。。

    1.解約金額等を更新したのは誰か?を一緒にカスタムオブジェクトに記録するのは難しいですよね、、、?更新が発生したことで起動するトリガー的なのが無いと、しんどいかな、、、

    2.起動するスケジュール感覚の間に、複数回更新が発生していると、途中の値は記録できないですよね。。これもやはり、トリガーが使えないと難しい印象です。。

    Translate