Zoho CRMのデータとは、標準コネクタで連携することが可能ですが、連携対象のオブジェクトが限られています。
連携対象以外のオブジェクト(例:商品)との連携はどのようにすれば良いでしょうか。
この記事では、Zoho CRMと、コネクタではなくAPIで連携する方法を以下の順番で解説します。
- Gainsightでデータを受け取るオブジェクトを作成・特定する
- Gainsightでデータを受け取るためのGainsight APIの設定をする
- Zohoのワークフロールールを設定する
-
Gainsightでデータを受け取るためのオブジェクトを作成・特定する
Zohoからデータを受け取るためのオブジェクトは、標準オブジェクト(カンパニー、リレーションシップ等)でも、カスタムオブジェクト、どちらでも可能です。
カスタムオブジェクトの場合は、High VolumeタイプだとAPIでの連携はできないので、新規に作る際はLow Volumeで作りましょう。作り方などは割愛します。必要に応じて以下の記事をご参照ください。
-
Gainsight APIの設定をする
ZohoからAPIをコールするための、GainsightのAPIの設定をします。
[管理] - [インテグレーション] - [コネクタ2.0] にて、[接続を作成] ボタンより、Gainsight APIを選択します。
現れる接続を編集の画面で、認証タイプを[ACCESS_KEY]を選び保存します。
-
Zohoのワークフローを作成する
Zohoのワークフローは、操作などをトリガーに各種処理を実行する仕組みです。
ここでは、特定のタブ(オブジェクト)のレコードを新規に作成したり編集した時にその情報をリアルタイムにGainsight APIをコールして連携するワークフローを作成します。
Zohoの[設定] - [自動化] - [ワークフロールール] よりワークフロールール画面を開きます。
以下の2つのワークフロールールを作ります。
①レコードが新規作成された時のワークフロー
②レコードが更新された時のワークフロー
①まずは新規作成。
[ルールを作成]ボタンより新規作成。
タブを選択し、ルール名を設定します。

タイミングは「データの操作」の「作成」を選択、条件も設定します。

すぐに実行する処理として、Web通知を選択します。
Web通知の画面で[Web通知を設定] ボタンから新たなWeb通知を作成。
以下のように設定します。
| 項目 | 値 |
|---|---|
| メソッド | POST |
| 通知先のURL | https://{YourDomain}.gainsightcloud.com/v1/data/objects/{ObjectName} |
| 認証の種類 | 一般 |
| タブのパラメーター | なし |
独自パラメータは以下の二つを設定します。
| パラメーター名 | パラメーターの値 |
|---|---|
| Content-Type | json |
| Accesskey | 上記2ステップで設定したGainsight APIで発行されているACCESS_KEYの値 |
本文は、種類:生データ、形式:JSONとし、中身は以下のようにします。
{
"records": [
{
"ZcrmID__gc": "${商品.商品ID}",
"name__gc": "${商品.商品の担当者ID}"
}
]
}真中の2行がZohoの項目とGainsightの項目をマッピングしている部分になります。
実体に合わせて項目のマッピング部分を変更・追加してください。左側がGainsightのフィールド名、右側がZohoの項目名です。
Zohoの項目名は#をタイプすると一覧から選ぶことができます。
更新をするデータの場合は、更新の際に使うユニークキーを必ず入れてください。
[保存して関連付ける]で保存します。
実際にレコードを作成して、Gainsightに同期されるか確認します。うまく設定ができていれば数秒で連携されます。
②次に更新のワークフローです。
更新のワークフローは、タイミングを更新に設定します。
Web通知は、作成の時とほとんど一緒ですが、以下の2点のみ異なります。
| 項目 | 値 |
|---|---|
| メソッド | PUT |
| 通知先のURL | https://{YourDomain}.gainsightcloud.com/v1/data/objects/{ObjectName}?keys={Identifier} |
以上で、Zoho側でレコードの作成・更新をするたびにGainsight APIへ直接書き込みが行われます。
1点Tipsとして、Zohoの契約プランのWeb通知の利用回数制限が気になる場合は、更新のワークフローに関しては「すぐに実行する処理」ではなく、「時間基準の処理」にして10分くらい時間を置いてからの実施にすると、項目単位のインライン編集のたびに何度もAPIを呼び出すのではなく、編集が終わった頃にまとめて1度コールする、という形にできそうですね。
