お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
本記事では、Zoho CRMの『カスタム関数』機能について解説し、ユーザーがZoho CRM組織内のさまざまな場所でこれらのスクリプトを活用するための詳細なガイドを提供します。
カスタム関数
Zoho CRMのカスタム関数は、ユーザーが定義したスクリプトであり、特定の業務プロセスを自動化し、初期設定や標準機能を超えたZoho CRMの機能拡張を実現します。たとえばデータの作成・更新、カスタム通知の送信、他アプリケーションとの連携などに対応します。これらの関数は、ワークフールール、Blueprints、スケジューラー、ボタンなどの処理によって実行されます。カスタム関数を活用することで、CRMを独自の組織ニーズに合わせて最適化し、業務効率を向上させることができます。
例:
1. リードから受信メールを受信した際に、ワークフールールを設定し、カスタム関数を利用してイベント(動的な情報付き)を自動作成します。
2. 高額な商談が作成された際に、タスクを自動で作成できます。
3. 商談が特定のステージ(例:商談成立)に到達した時点で、すべての添付ドキュメントを自動で送信します。
4. Zoho CRMでリードが作成または更新された際に、外部システムへデータを送信します。
Zoho CRMでカスタム関数を展開する
カスタム関数の作成とさまざまなCRM機能への展開を一元管理できるセクション
Zoho CRMには、ユーザーがカスタム関数を作成し、複数のCRM機能で活用できる統合セクションがあります。
下記のカテゴリーで関数を作成できます:Button
- 自動化
- スケジュール
- 関連リスト
- スタンドアロン
- シグナル
- 入力規則
操作手順:Zoho CRMの設定(⚙️)> Developer Hub > Functions > My Functions > 新規Function を開きます。
Function 名前-> スクリプトの用途に応じて名前を入力してください。
Display-> 関数を識別するための名前を、関連付け/関数リスト表示時に入力してください。
説明-> スクリプトの用途に関する概要を入力してください。
カテゴリー-> 関数を関連付ける必要があるCRM機能(上記参照)を選択してください。

概要 Recordings: Zoho CRM全体でカスタム関数を作成する手順
「Developer Hub >> Functions」からカスタム関数を作成するには-> スクリーンキャスト
各種CRM自動化機能からカスタム関数を作成し、項目マッピングを引数として指定する方法:
機能が任意のタブに存在する項目に基づく情報の取得を必要とし、その項目をスクリプトの引数として直接追加したい場合は、必須CRM自動化機能(例:ワークフロー操作、Blueprint操作など)から直接関数を作成し、特定のタブから項目を引数として関連付けることを推奨します。
TIPS: カスタム関数のコード最適化方法
Zoho CRMのカスタム関数を扱う際、コードを最適化して記述することは、スムーズな実行と潜在的なエラーの防止に不可欠です。これによりパフォーマンスや保守性も向上し、不要なAPI通話を減らし、最適なロジックによる構造的なコードが実現します。
以下は、コードを効果的に最適化するためのベストプラクティスおよびヒントです。
-
不要なループを避ける:
-> スクリプト内でループ(for each{} など)を使用する場合、ループに入る前にデータをフィルターするようにしてください。また、'For Loop'内にIF条件を追加して、ループ内でデータをフィルターすることも可能です。さらに、ループの代わりにスクリプト内で可能な限り組み込みのList/Mapメソッドを利用することを推奨します。
-
API通話の最小化
-> ユーザーがDelugeスクリプト内でZoho API(例:getRecords、insert、更新するなど)を利用すると、認証済みユーザーのアカウントから情報を取得するためにサーバーへ通話が発生し、API貸方を消費します。API通話の過剰利用(またはループ内での繰り返しAPI通話)は、許容範囲を超える可能性があります。
-> Bulk CRM APIsを使用すると、一件ずつAPI通話を行う代わりに、一括処理(例:一括読み込み・一括書き込み)が可能です。
-
変数の使用と本番環境でのログ出力
-> スクリプト作成時に、ユーザーは各変数へinfo() ログを追加して、Zoho CRM IDE内のコンソールセクションで出力を確認し、機能が正しく動作しているかをチェックできます。コードのテストが完了した後は、削除またはコメントアウトして、出力ログや未使用の変数を整理することを推奨します。これにより、スクリプトが見やすくなり、今後のデバッグも容易になります。つまり、デバッグ目的の場合のみ条件付きロギングを使用してください。
-> 定義する意味のある変数名を必ず使用してください。変数名は格納するデータや用途を明確に反映させると、スクリプトの可読性が向上し、デバッグや共同作業も大幅にしやすくなります。
例:
// ❌ 推奨されません
- x = input.取得する('Account_Name');
- ar = Zoho.crm.getRecordbyID('連絡先', contactID);
// ✅ 推奨
- accountName = input.取得する('Account_Name');
- 連絡先 = Zoho.crm.getRecordbyID('連絡先', contactID);
-
Try-Catch ブロックの使用
-> try-catch ブロックを活用し、例外を適切に処理しましょう。ただし、頻繁に折れ線グラフ全体をtryで囲まないよう注意してください。発生したエラーの内容が正確に特定できるよう、必須のエラーメッセージをログに記録してください。コードの折れ線グラフに関する問題追跡に役立ちます。構文やサンプルコードについては、以下のヘルプリンクを参照してください。
-
文字列と日付の処理を最適化する
-> Deluge の組み込み受注データを[パッケージ]データに変換する際は、カスタムロジックの代わりに toDate()、toString()、dateDiff()、toText() などのメソッドを活用してください。詳細はDeluge 組み込みメソッドをご参照ください。
-
ifNull() を使用してエラーを防止
>
Deluge 関数で 取得する()メソッドを使う際、エラー(「取得する値が null です」など)が出て実行が停止しないよう、ifNull()条件支払明細を活用することを推奨します。関数を自動化(例:ワークフロー ルール)に関連付けている場合、同様のエラーが発生すると該当データの関数実行が停止します。詳細な ifNull 支払明細についてはヘルプリンクをご覧ください。
-
Function ログ - 完了または失敗
-> カスタム関数には「失敗」セクションがあり、自動化機能(例:ワークフールール、Blueprintなど)にデプロイした後に発生する可能性のあるエラーを特定できます。このセクションには、関数名、項目(つまりデータ)、失敗理由、正確な失敗時刻とともにすべての関数が一覧表示されます。統合された失敗セクションにより、ユーザーはコード内の正確な問題を特定し、必要な調整を行うことができます。
ナビゲート:Zoho CRM の設定(⚙️)>> Developer Hub >> Functions >> 失敗
-> カスタム関数が自動化機能に関連付けられている場合、ユーザーは特定の作成した関数に対してすべての実行結果の完了ログも確認できます( My Functions >> 3点リーダー >> ログで確認可能)。この機能は、ワークフールール経由でCRMデータに関数が実行されたものの、意図した処理や更新がデータに反映されなかった場合にも役立ちます。そのような場合、ユーザーはZoho CRM内の関数ログから出力(infoログ)や実行時のエラーを確認できます。
支払明細の実行や実行時間の制限に関連する問題を回避するため、必ずOptimised コードを使用してください。詳細についてはDelugeの制限事項をご参照ください。
カスタム関数の実行中に発生する可能性のあるヘルプリンクをご覧いただき、Common Deluge エラーメッセージについてご確認ください。