CRMヘルプ

カスタム関数のギャラリー

Delugeは、Zohoで利用できる独自のプログラミング言語です。様々な処理を自動化する関数を独自に作成・設定できます。保存してあるデータの値を関数の中で利用することも可能です。参考情報:Delugeスクリプトのガイド

対象者

  • ワークフローの管理権限を持つCRMユーザー
  • Delugeスクリプトの知識を持つユーザー

利用可能なプラン

必要な権限:ワークフローの管理権限を持つユーザーのみ、この機能を利用できます。

カスタム関数を設定する

Delugeスクリプトを利用してカスタム関数を設定する手順は次のとおりです:

  • カスタム関数を作成する。
  • カスタム関数をワークフローのルールに関連付ける。
  • カスタム関数の処理をテストする。

カスタム関数を作成する

  1. 設定アイコン) > 設定 > 自動化 > ワークフローによる自動化 > カスタム関数をクリックしてください。
  2. ワークフローのカスタム関数のページで、カスタム関数の設定をクリックしてください。
  3. カスタム関数の設定ページで、自分で作成する(Delugeスクリプトを使用して新しく作成)をクリックしてください。
    自分でカスタム関数を作成
  4. カスタマイズした関数のページで、次の手順にしたがってください:
    • 関数の名前と詳細を入力してください。
    • 関数に関連付けるタブを選択し、引数の編集(Edit Arguments)のリンクをクリックしてください。
      カスタム関数
    • 引数をCRMのタブの項目か、独自で設定する値(カスタム値)と関連付けてください。
      カスタム関数
    • 完了をクリックしてください。
  5. Delugeスクリプト作成ツールで、必要な関数を作成してください。スクリプトの処理内容を確認するには、スクリプトを保存して実行をクリックしてください。
    Delugeスクリプトを作成する
    エラーがない場合、スクリプトは、ワークフローのルールと関連付けできます。
  6. 保存をクリックしてください。

カスタム関数をワークフローのルールに関連付ける

    1. 設定 > 設定 > 自動化 > ワークフローによる自動化 > ルールをクリックしてください。
    2. ワークフローのルールページで、ルールの作成をクリックしてください。
    3. ルール作成タブで、ルールを設定してください。
    4. すぐに実行するアクションで、カスタム関数を選択してください。
    5. 実行するカスタム関数を選択してください。
    6. 保存をクリックしてください。

カスタム関数の処理をテストする

  1. ワークフローのルールの条件に応じて、CRMにテスト用データを追加してください。
  2. カスタム関数を利用してZoho CRMから取得したデータの内容を確認してください。
  3. エラーが発生したり、データの不一致が発生したりした場合は、Zoho CRMのカスタム関数の内容を修正してください。
  4. Zoho CRMから必要なデータを取得できるまで、このテストを続けてください。

重要なお知らせ

  • 1件のワークフローのルールには、6件のカスタム関数(すぐに実行する処理が1件と、5件の時間基準の処理が5件)まで関連付けられます。
  • カスタム関数を利用すると、Zoho CRMの項目のデータを外部のアプリケーションに最大10件まで送信できます。
  • カスタム関数を利用すると、他のアプリケーションのデータをZoho CRMに取得できます。
  • 外部アプリの制限に応じて、定期的にAPIの認証情報を更新する必要があります。
  • カスタム関数において、外部アプリの問題が原因で機能を停止しても、通知メールが送信されることはありません。
  • 実行中に何らかの障害が発生した場合、カスタム関数は最初の通知を送信し、Zoho CRMは15分後に2度目の通知を送信します。その後、システムは特定のワークフローに関する通知は送信しません。
  • 一日あたりの最大数を超えた場合、システムは外部アプリにカスタム関数の残数の情報は送信しませんが、管理者に障害を通知します。
  • Zoho CRMは、次の形式で日付日時項目のデータを外部アプリに送信します。
    • 日付: yyyy-MM-dd
    • 日時: yyyy-MM-dd hh:mm

Delugeスクリプト作成ツールの詳細

Delugeスクリプト作成ツールでは、ドラッグ&ドロップの操作で関数の内容を設定でき、CRM内でその関数を実行できます。Delugeスクリプトの構文や関数を覚える必要もなく、処理の内容を簡単に記述できます。次の項目が含まれます:

  • Deluge(デリュージ)のスクリプト
  • Delugeの処理
    • 条件
    • その他
    • デバッグ
    • リストの操作
    • マップの操作
    • Webデータ
    • XMLの操作
  • コードの実行

自分でカスタム関数を作成

Delugeの処理の一覧

Delugeの処理 用途
条件
その他
デバッグ
リストの操作
マップの操作
Webデータ
XMLの操作

利用例:商談のステータスが「受注」時に、受注総額の値を取引先に反映

概要

対象の取引先に関して、これまでに受注した商談の総額の合計を算出し、取引先の項目に反映します。複数回受注した際に、合計を手計算したりレポートを作成したりしなくてもすぐに合計値を確認できます。受注総額に応じて、顧客をA、B、Cなどのランクに分けることができます。

設定手順

void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField) 

  • voidは、戻り値として何も返さない場合に指定します
  • workflowspaceは名前空間をあらわしますが、フォルダーのように関数をグループ化するのに役立ちます
  • Rollup_the_Potential_Amount_to_Accountsは、関数名です
  • AccountIdは、CRMの取引先のIDに対応するパラメーターです
  • SumUpFieldは、ワークフローの実行時に合計値を保存するための項目の名前をあらわすパラメーターです

{    accountID1 = (input.AccountId).toString();

  • 取引先IDを文字列に変換します

resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);

  • Delugeスクリプトで用意されている関数を利用して、データを検索します。
  • 上の例では、指定した取引先IDに対応する商談のデータを検索しています。

total = 0.0;

  • 合計値の計算に利用する変数に初期値を設定しています。

for each rec in resp

  • 対象の商談について1件ずつ処理を実施します。

{       

stage = (rec.get("Stage")).toLowerCase();

  • 商談のステージの項目の値を取得します。

if (stage.contains("受注"))

  • 取得した商談のステージの値に「受注」が含まれるかを確認します。該当する場合、次の行の処理が実行され、そうでない場合、次の商談に進みます。

{           

total = (total  +  (rec.get("Amount")).toDecimal());

  • 商談の総額を合計用の値に加算します。

}    }   

updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });

}

  • 上記の関数では、CRMのデータを更新します。指定した取引先IDに対応する取引先データ内の、合計用の項目の値を更新しています。

すべてのスクリプト

void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
{
accountID1 = (input.AccountId).toString();
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
info resp;
total = 0.0;
for each rec in resp
{
stage = (rec.get("Stage")).toLowerCase();
if (stage.contains("受注"))
{
total = (total + (rec.get("Amount")).toDecimal());
}
}
updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });
}

利用例 その2:商談のステータスが「受注」時に、受注総額の値を取引先に反映

概要

対象の取引先に関して、これまでに受注した商談の総額の合計を算出し、取引先の項目に反映します。複数回受注した際に、合計を手計算したりレポートを作成したりしなくてもすぐに合計値を確認できます。受注総額に応じて、顧客をA、B、Cなどのランクに分けることができます。

設定手順

void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField) 

  • voidは、戻り値として何も返さない場合に指定します
  • workflowspaceは名前空間をあらわしますが、フォルダーのように関数をグループ化するのに役立ちます
  • Rollup_the_Potential_Amount_to_Accountsは、関数名です
  • AccountIdは、CRMの取引先のIDに対応するパラメーターです
  • SumUpFieldは、ワークフローの実行時に合計値を保存するための項目の名前をあらわすパラメーターです

{    accountID1 = (input.AccountId).toString();

  • 取引先IDを文字列に変換します

resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);

  • Delugeスクリプトで用意されている関数を利用して、データを検索します。
  • 上の例では、指定した取引先IDに対応する商談のデータを検索しています。

total = 0.0;

  • 合計値の計算に利用する変数に初期値を設定しています。

for each rec in resp

  • 対象の商談について1件ずつ処理を実施します。

{       

stage = (rec.get("Stage")).toLowerCase();

  • 商談のステージの項目の値を取得します。

if (stage.contains("受注"))

  • 取得した商談のステージの値に「受注」が含まれるかを確認します。該当する場合、次の行の処理が実行され、そうでない場合、次の商談に進みます。

{           

total = (total  +  (rec.get("Amount")).toDecimal());

  • 商談の総額を合計用の値に加算します。

void workflowspace.Mass_update_of_Child_Contacts(int accId) { accountId = input.accId.toString();
rec = zoho.crm.getRecordById(("Accounts"), input.accId);
resp = zoho.crm.getRelatedRecords("Contacts", ("Accounts"), accountId);
for each ele in resp { mp = map();
mp.put("Mailing Street", rec.get("Billing Street"));
mp.put("Mailing City", rec.get("Billing City"));
mp.put("Mailing State", rec.get("Billing State"));
mp.put("Mailing Zip", rec.get("Billing Code"));
mp.put("Mailing Country", rec.get("Billing Country"));
mp.put("Other Street", rec.get("Shipping Street"));
mp.put("Other City", rec.get("Shipping City"));
mp.put("Other State", rec.get("Shipping State"));
mp.put("Other Zip", rec.get("Shipping Code"));
mp.put("Other Country", rec.get("Shipping Country"));
contactId = ele.get("CONTACTID"); updateResp = zoho.crm.updateRecord("Contacts", contactId, mp);
}

カスタム関数を設定するには次の手順にしたがってください:

  1. Zoho CRMにサインインしてください。
  2. 設定 > 設定 > 自動化 > ワークフローによる自動化 > ルールをクリックしてください。
  3. タブの一覧から商談を選択してください。ワークフロールールの名前と詳細を入力してください。
    カスタム関数
  4. いつこのルールをいつ実行するか選択してください。データの操作に基づいて実行するように選択し、作成、または、編集を選択してください。
    カスタム関数
  5. 完了をクリックしてください。
  6. どのデータに対してルールを実行するか選択してください。条件に一致したデータを選択して、条件に「ステージ」「が次の値を含む」「受注」と設定してください。
    カスタム関数
  7. 完了をクリックしてください。
  8. カスタム関数すぐに実行する処理を選択してください。
    カスタム関数
  9. カスタム関数の設定のポップアップで、カスタマイズした関数をクリックしてください。
  10. 既存の関数ページで、Roll-up Potential Amount to Account関数の設定をクリックしてください。
  11. 関連するタブが商談であることを確認してください。
  12. 次のように引数の値を設定してください:
    • 取引先のID:項目一覧から「取引先のID」を選択してください。
    • SumUpField:取引先タブで商談総額の合計値を保存する項目の名前を設定してください。
    • 「独自の値を設定」リンクをクリックして、項目名を入力してください。
  13. 設定を保存してください。取引先タブで、すべての商談の総額の合計が自動で更新されるようになります。