こんにちは。Arganoの長澤です。

今回はZoho CRMのカスタム関数&ワークフロールールの活用事例を紹介します。

Webフォームを利用して顧客情報の自動更新を実現する方法

ややピンポイントな事例ではありますが、日本語での情報があまりないようですので、Zoho CRMのカスタム関数やワークフロールールについて知りたい方、自動化を進めたい方の一助になれば幸いです。CRMを検討している方、Zohoが気になっている方の参考にもなれば幸いです。

Zoho CRMのWebフォームは、CRM内の項目と紐づけてデータを取得できる便利なものですが、既存データの上書きができません。そのまま使用すると新規データとしてのみCRMに取り込まれます。

しかしながら今回の事例同様、既に取得している顧客データの上書きがしたい、というケースも多いかと思います。

解決策

解決策は次の通りです。

  • Webフォームを作成する
  • 取得した情報を既存データに上書きするカスタム関数を作成する
  • カスタム関数を発動するワークフロールールを作成する

順に解説します。

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が作成された際、メールアドレスが空でなかった場合に、作成した関数が発動する、というワークフローです。

これで新たに取得した情報を既存の顧客データに手動入力する、という手間から解放されました。

おめでとうございます。

結果

以上