こんにちは。Arganoの長澤です。
今回はZoho CRMのカスタム関数&ワークフロールールの活用事例を紹介します。
Webフォームを利用して顧客情報の自動更新を実現する方法
ややピンポイントな事例ではありますが、日本語での情報があまりないようですので、Zoho CRMのカスタム関数やワークフロールールについて知りたい方、自動化を進めたい方の一助になれば幸いです。CRMを検討している方、Zohoが気になっている方の参考にもなれば幸いです。
Zoho CRMのWebフォームは、CRM内の項目と紐づけてデータを取得できる便利なものですが、既存データの上書きができません。そのまま使用すると新規データとしてのみCRMに取り込まれます。
しかしながら今回の事例同様、既に取得している顧客データの上書きがしたい、というケースも多いかと思います。
解決策
解決策は次の通りです。
- Webフォームを作成する
- 取得した情報を既存データに上書きするカスタム関数を作成する
- カスタム関数を発動するワークフロールールを作成する
順に解説します。
Webフォームを作成する
例えばこのようなものです。取得したい情報を項目として設定します。
取得した情報を既存データに上書きするカスタム関数を作成する
CasesDetail = zoho.crm.getRecordById("Cases",CasesId);
CasesEmail = CasesDetail.get("Email");
ContactsDetail = zoho.crm.searchRecords("Contacts","(Email:equals:" + CasesEmail + ")");
Contacts = ContactsDetail.get(0);
updateMap = Map();
updateMap.put("favorite_city",ifnull(CasesDetail.get("favorite_city"),""));
updateMap.put("why_i_fell_in_love",ifnull(CasesDetail.get("why_i_fell_in_love"),""));
updateMap.put("the_day_i_fell_in_love",ifnull(CasesDetail.get("the_day_i_fell_in_love"),""));
update = zoho.crm.updateRecord("Contacts",Contacts.get("id"),updateMap,{"trigger":{"workflow"}});
このように記述します。
「Cases」はWebフォームから送信された情報が新規データとして取り込まれるタブ(モジュール)です。
「Contacts」は「顧客」タブを表します。
Webフォームから取得する各項目のAPI名は次の通りです。
- 好きな街: favorite_city
- 好きになった理由: why_i_fell_in_love
- 好きになった日: the_day_i_fell_in_love
今回はCases、Contactsの両タブにおける同名項目(今回で言えば好きな街、好きになった理由など)のAPI名を同名に設定していますが、タブごとにAPI名が異なる場合もありますので注意が必要です。
これにて、「Webフォームから取得した情報がCasesに入った際、メールアドレス(Email)が既存顧客と同じ場合、その顧客データの項目(取得した項目: 好きな街他)を更新する」関数の完成です。
カスタム関数を発動するワークフロールールを作成する
ワークフロールールはこのように設定します。一部英語的な表現でわかりづらいですが、Casesが作成された際、メールアドレスが空でなかった場合に、作成した関数が発動する、というワークフローです。
これで新たに取得した情報を既存の顧客データに手動入力する、という手間から解放されました。
おめでとうございます。
以上