Requirement 概要
Zoho CRM ユーザーは、ユーザーの特定の操作に基づいて異なる顧客に繰り返しメールを送信する作業を自動化・簡素化したいと考えています。これにより、毎回手動で「メールを送信する」ボタンをクリックする必要がなくなります。
使用ケース
商品別の会社では、営業チームが初回の打ち合わせ後、見込み顧客と定期的にメールでコミュニケーションを取っています。商談のステージ(Won、Lost、オンHold)に応じて、営業担当者は状況に合わせた内容で連絡を取る必要があります。
商談 Won→ オンボーディングの詳細を含む、感謝のメールを送信します。
商談 Lost→ 丁寧なフォローアップまたはフィードバック依頼のメールを送信します。
商談 オン-Hold→ 顧客との関係維持のためのナーチャリングメールを送信します。
営業担当者が迅速にコミュニケーションを行い、商談を効果的に完了させることが非常に重要です。そのため、会社では商談ステージやステータスに応じて自動的にメールを送信するプロセスを求めています。また、送信前にメールの頻度やタイミングを認証する必要があります。
-
Zoho CRM で実現するための方法
=> ユーザーはデータ編集トリガーに基づいてワークフローを直接使用し、通知メールを送信する操作を設定できます。ただし、この方法では送信前に顧客宛てのメールを認証することができません。また、動的なコンテンツも利用できません。
=> ユーザーはカスタム関数とメール送信操作、動的コンテンツをワークフロー内の操作として関連付けて利用できます。しかし、この場合もメールは自動的に送信されるため、送信前にユーザーが内容を確認することはできません。
=> Client Script には初期設定の ZDK メソッド『openMailer()』があり、これを使用して事前設定済みの構成でデータ内のメール作成画面を呼び出すことができます。
ヘルプ リンクを参照し、Client Script の
openMailer() メソッドについて詳細をご確認ください。
重要な理由:
- 時間の節約
- 一貫性の向上
- パーソナライズ対応
- エラーなし
- ユーザーと顧客 両方の体験を向上
- 営業の生産性向上
- 法人の内部プロセスを迅速化
権限・利用可能範囲
-> 管理 Extensibilityの権限を持つユーザーは、Client Scriptの設定および構成が可能です。
-> 管理 テスト環境の権限を持つユーザーは、テスト環境の管理および本使用ケースのテストが可能です。
設定
上記の使用ケースを分かりやすく理解するために、各項目のステータスに応じてクライアントスクリプトが実行され、事前に情報がセットされたMailerコンポーザーが開く流れを確認します。
それでは、「受注書」タブの詳細ページで、項目イベント(onBeforeUpdate()、つまりステータス)に対するClient Scriptを作成します。例えば、ユーザーが詳細ページで「ステータス」をいずれかの選択肢に更新すると、スクリプトが実行され、指定した構成でMailerコンポーザーが開きます。
この使用ケースのClient Scriptを設定するには、以下の手順に従ってください:
1)スクリプトの目的に基づき、名前や説明などの基本情報を入力してください。
2)カテゴリー 詳細セクションにて、以下を選択してください:
* カテゴリーはタブとして指定します。
* Pageは詳細として指定します。
* タブは受注書として指定します。
* 必須のLayoutを選択してください。
3) Event 詳細セクションにて、以下を選択してください:
* 種類は項目イベントとして指定します。
* ドロップダウンから必須項目を選択してください。
* EventはonBeforeUpdateとして指定します。
コード
- //ステータス項目の値を取得
- var ステータス = 値;
- //確認中 ステータス値が「承認済み」の場合
- if (ステータス == '承認済み') {
- //Mailerコンポーネントを開く
- ZDK.Client.openMailer({
- from: 'harshadjoshi518@gmail.com', to: [{ メール: 'harshikajoshi51@gmail.com' }], 件名: '順番確認', 本文: 'あなたの順番が承認されました。順番を確定したい場合はご確定ください。' });
- }
- //確認中 ステータス値が「Confirmed」の場合
- if (ステータス == 'Confirmed') {
- //UIで確認用ポップアップを表示
- var resp = ZDK.Client.showConfirmation('本当に順番を確定しますか?', 'はい!', 'いいえ!');
- //「はい」を選択したユーザーのみ、続行
- if (resp == 真) {
- templateId = '5113649000017098722';
- recid = $Page.record_id;
- //Connection Methodを使ってCRM_APIを呼び出し、templateIDでテンプレートデータを取得
- var fetchRec = ZDK.Apps.CRM.外部連携.invoke('zohocrm', 'https://www.zohoapis.com/crm/v4/設定/email_templates/'+ templateId + '/処理/print_preview?record_id=' + recid + '&print_type=html', '取得する', 1, {}, {});
- content = fetchRec.詳細.statusMessage.email_template_preview.本文;
- console.log(content);
- //Mailerコンポーネントを開く
- ZDK.Client.openMailer({ from: $Crm.ユーザー.メール, to: [{ メール: '123@1213.com', ラベル: 'テスト' }], CC: [], 件名: 'Hello', 本文: content });
- }
- }
-> 最初に、該当するステータス項目値を取得します(これによりクライアントスクリプトが実行済みとなります)。
-> 次に、IF条件を使用して各ステータスに応じた異なるメールを作成します。
-> 例として、「承認済み」ステータスには直接メール本文の内容を使用しています。
-> 「Confirmed」ステータスの場合は、確認ポップアップを表示し、ユーザーが「はい」をクリックすると、初期設定Web APIメソッド(外部連携)を使い、IDで必要なテンプレートを取得してテンプレート内容を取得します。
-> その後、Mailerコンポーネントを使い、テンプレート内容を本文として渡し自動的に開きます。
動作デモ - スクリーンキャスト
-> ユーザーは、営業チーム向けの商談ステージに関連する上記の使用ケースと同じ設定を行うことができます。
その他の使用ケース:
-> 例として、学校で管理者がすべての生徒の保護者にメールを送信したい場合。
-> この場合、ユーザーはCRM APIを使用し関連リスト経由で関連付けられているすべての保護者データを取得し、メールアドレスを取得してMailerコンポーネント(To住所パラメータ)に渡し、すべての保護者にメールを送信できます。