Module : Messaging for In-App and Web Optimization


+ [アプリ内および Web 最適化のためのメッセージング](https://trailhead.salesforce.com/content/learn/modules/messaging-optimization-for-in-app-and-web)

# エンドユーザーを確認し、メッセージング履歴を共有する Verify Your End User and Share Messaging History

アプリ内および Web のメッセージングを使用すると、エンドユーザーはエージェントとチャットできます。会話が非同期になっているため、Salesforce の従来のチャット製品とは異なります。つまり、メッセージはいつでも開始、停止、復元できるということです。基本的なセットアップ後は、次のような魅力的な機能を使用してアプリ内および Web のメッセージング エクスペリエンスを強化できます。

+ ユーザー認証による顧客データの保護と会話履歴の永続化
+ データを収集して応答時間を短縮し、表示および非表示のプレチャット フィールドでのエクスペリエンスを向上させるために顧客とのやり取りを調整する
+ 営業時間内のみの表示から、ビジネス ニーズに合わせて位置の移動まで、チャット ボタンを条件付きで提供します。
+ 構造化コンテンツをエンドユーザーに送信して応答時間を短縮し、メッセージング コンポーネントを使用した豊かで動的な会話エクスペリエンスを提供します。

### ユーザー認証のメリット
ユーザー認証には次のような利点があります。

+ 顧客の身元を確認する安全なトークンを使用して、データのプライバシーを最大化します。
+ 複数のデバイス間で会話を継続できるようにします。たとえば、ユーザーがモバイル アプリにサインインしてメッセージング セッションを開始し、その後 Web サイトにログインすると、そこでメッセージングの会話を継続でき、両方の場所で同じ会話履歴が表示されます。
+ 非同期会話を有効にします。たとえば、顧客は会話を開始し、何時間もデバイスから離れても、いつでも同じ会話に戻ることができます。
+ Messaging for Web の会話履歴への顧客のアクセスを拡張します。ユーザー認証を行わない場合、Messaging for Web の顧客はメッセージング ウィンドウで会話履歴を最大 6 時間表示できます。ユーザー認証を使用すると、顧客はログイン後にいつでも会話履歴を確認できます。
+ 認証済みの顧客がアプリ内メッセージングの会話履歴にアクセスできることを保証します。ユーザー認証が行われない場合、顧客のメッセージング履歴はローカル キャッシュに基づいており、アプリがアンインストールされるかキャッシュが削除されると消去されます。

### ユーザー認証の仕組み
ユーザー検証では、JSON Web キーを使用して、Web サイトまたはモバイル アプリへのログイン時にエンドユーザーに割り当てられる JSON Web トークンを検証します。

### ユーザー認証の設定
ユーザー認証の設定は 3 か所で行われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/81962fd1-a4f4-1424-cbbf-8e80ec43e00c.png)

以下に手順を示します。

1. まず、「ユーザー検証セットアップ」ページに移動して、1 つ以上の JSON Web キーをアップロードし、キーセットを作成します。ご存知のとおり、これは顧客の JSON Web トークンを検証するために使用されます。
2. 次に、[メッセージング設定] ページに移動し、メッセージング チャネルでユーザー認証を有効にします。これには、トークンの有効期限を設定し、作成したばかりのキーセットをチャネルに追加することが含まれます。
3. 最後に、顧客の JSON Web トークンを Salesforce に送信する API 呼び出しを設定し、そこで JSON Web キーによって検証されます。

https://help.salesforce.com/s/articleView?id=sf.user_verification_setup.htm&type=5


# エンドユーザーを迅速に支援するための情報を収集する Collect Information to Quickly Help End Users
Learning Objectives

### プレチャットフィールドの作成

プレチャット フォームを使用して、エンド ユーザーがチャットを開始する前に入力するフィールドを表示できます。または、非表示の事前チャット フィールドを使用してデータを自動的に収集することもできます。いずれの方法でも、会話を進めるのに役立つ宛先にフィールド値を送信することができます。この宛先は、エージェントが参照できるようにデータをメッセージング セッション レコードに保存したり、ボットを使用して収集されたデータに基づいて顧客を支援したりするなど、単純なものにすることができます。

### プライバシーに配慮した非表示のプレチャットフィールド
非表示のプリチャット フィールドはエンドユーザーには表示されません。これらは、データの送信リクエストでエンド ユーザーに負担をかけずに、インタラクションをエンド ユーザーに合わせて調整するための優れたツールとなります。ただし、顧客の信頼は透明性によっても築かれます。

### プレチャットフィールドを作成する
アプリ内および Web の事前チャットフィールドのメッセージングは​​、オブジェクト上に存在する Salesforce の従来の標準フィールドおよびカスタムフィールドと同じではありません。プリチャット フィールドは別の方法で作成されます。

標準の非表示のプレチャット フィールドはなく、カスタムの非表示のプレチャット フィールドのみがあります。カスタムの非表示のプレチャット フィールドはすべてテキスト フィールドです。

### カスタムの事前チャット データはどのようにフローに送信されますか?
カスタムの事前チャット フィールドの構成要素を理解したところで、データをフローに送信するときに実行できる追加の魔法を見てみましょう。カスタム プレチャット フィールドがカスタム パラメーターによってパラメーター マッピングに接続されることはすでにわかっています。

このパラメーター マッピングにより、プレチャット フィールド データをフローに送信するフロー変数名が導入されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/4aaa9525-8961-7cb9-4f0d-a9ede86908db.png)


# チャット ボタンをいつどのように表示するかを決定する　Decide When and How to Present the Chat Button

### シナリオ 1: エージェントが 24 時間年中無休で対応できるわけではない
メッセージング展開に営業時間を追加すると、エージェントが作業していないときに顧客がメッセージング セッションを開始することを防ぐことができます。

+ アプリ内メッセージング: エンドユーザーにはメッセージング ウィンドウの上部にバナーが表示され、現在新しい会話が利用できないことが通知されます。アプリ開発者は、API を使用して、アプリの開始を完全に阻止する必要があります。
+ Web 用メッセージング: 営業時間外はチャット ボタンが非表示になります。

アプリ内および Web 用のメッセージングは​​、標準の Service Cloud 営業時間機能を採用し、それをデプロイメントに適用します。セットアップは 2 か所で行われます。

まず、営業時間設定ページで営業時間を作成します。次に、[展開設定] セットアップ ページに移動し、営業時間レコードを展開に関連付けます。

https://help.salesforce.com/s/articleView?id=sf.miaw_business_hours.htm&type=5

### シナリオ 2: 特定の Web ページのチャット ボタンを非表示にしたい
Messaging for In-App 開発者は SDK のカスタマイズを完全に制御できますが、Messaging for Web 開発者は追加機能として API に依存しています。 Show/Hide API を使用すると、Messaging for Web 開発者は特定の Web ページのチャット ボタンを非表示にすることができます。


Show/Hide API を使用すると、Ursa Major は Web サイトの右下隅にあるチャット ボタンを非表示にすることができます。 Ursa Major は、Web ページの中央にカスタム チャット ボタンを追加できます。モバイル アプリの場合、開発者は SDK のボタンの位置をカスタマイズすることを完全に制御できます。


https://developer.salesforce.com/docs/service/messaging-web/guide/show-hide-chat.html

チャットボタンの初期状態 

デフォルトでは、営業時間が指定されていない場合、チャット ボタンは常に表示されます。営業時間が指定されている場合、営業時間内はチャット ボタンが表示され、営業時間外は非表示になります。営業時間を構成する方法については、「アプリ内および Web のメッセージングで営業時間を設定する」を参照してください。

このデフォルトの動作をオーバーライドする場合は、コード スニペットの行の前にembeddedservice_bootstrap.settings.hideChatButtonOnLoadフラグ ( または のいずれかtrue)falseを設定します。embeddedservice_bootstrap.init例えば：

# 構造化コンテンツをエンドユーザーに送信する　Send Structured Content to End Users

メッセージング コンポーネントにはさまざまな種類と形式がありますが、エージェントが送信するように選択できるコンポーネントと自動的に送信されるコンポーネントの 2 つの大きなカテゴリに分類されます。

### エージェントが送信できるメッセージングコンポーネント
利用可能なアプリ内および Web コンポーネント タイプのメッセージングのほとんどは、エージェントが手動で顧客に送信できます。

エージェントがエージェント コンソールの拡張会話ウィンドウから作業している場合、デフォルトで [メッセージング コンポーネント] ボタンが使用可能になります。このボタンを使用すると、エージェントは静的な値を持つメッセージング コンポーネントを送信できます。言い換えれば、決して変更されないコンポーネントを送信します。

+ 静的オプションを使用した質問
+ 強化されたリンク
+ 安全なフォーム (ベータ版)
+ 動的オプションを使用した質問
+ 時間セレクター

### 自動的に送信されるメッセージングコンポーネント
エージェントは無限の種類のメッセージング コンポーネントをエンドユーザに送信できるように見えるかもしれませんが、組織から自動的に送信できるメッセージング コンポーネントは 2 種類のみです。アプリ内および Web 用メッセージング用の自動応答コンポーネントです。アプリ内メッセージングの通知コンポーネント。

自動応答コンポーネントはアプリ内と Web の両方で利用できるため、まず確認してみましょう。メッセージング会話では、自動応答がトリガーされるポイントが 4 つあります。

+ 会話の確認
+ 会話を開始する
+ 会話を終了する
+ 非アクティブな会話

# お客様へのメッセージ Message with a Customer

### 顧客のメッセージを受け入れる

エージェントがシフトを開始すると、アプリ ランチャー ( アプリランチャーアイコン ) を開いてサービス コンソール アプリを選択します。次に、画面のフッターにある [オムニチャネル] をクリックして、オムニチャネル ユーティリティを展開します。これは典型的なエージェントのインターフェイスです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/e1fdc8c7-5b5a-6502-6064-dd01e90c53a8.png)

エージェントは、オムニチャネル ウィジェットで顧客とメッセージを送信できるようになります。次に、ウィジェットで受信メッセージを受け入れます (1)。拡張会話コンポーネントでメッセージング セッションが開きます。エージェントには、下部にメッセージを作成するためのツールバーがあり、上部にはチャットを非アクティブ化または終了するためのボタンがあります (2)。強化された会話コンポーネントの右側で、エージェントは、アクションと推奨事項、会話後の作業、または動的メッセージング コンポーネントをトリガーするフローなど、管理者が利用できるように選択したツールを使用して作業できます (3)。

### 生成 AI を使用して会話をレビューする
人工知能の時代において、私たちはメッセージング製品を進化させ続けています。仕事の概要と会話のキャッチアップは、メッセージング エクスペリエンスに生成 AI を導入し、エージェントがより効率的に作業できるようにします。

作業概要を追加して、生成 AI を使用して、メッセージング セッションの終了時に問題、解決策、会話の概要を提供します


# Einstein メッセージングのインサイト

https://trailhead.salesforce.com/content/learn/modules/einstein-messaging-insights-quick-look/get-to-know-einstein-messaging-insights-1

メールメッセージとジャーニーのパフォーマンスに関する洞察を提供します。

### Einstein Messaging Insights は何をしますか?
Einstein は、バッチメール送信とジャーニーメール送信の両方の開封率、クリック率、購読解除率を監視します。ジャーニーの場合、Einstein は個々のメールを以前のパフォーマンスと比較して分析するのではなく、ジャーニー内のすべてのメールアクティビティを分析します。 (履歴データと比較して) 何かが特に高いまたは低いと思われる場合、メモまたは洞察が生成されます。 

Einstein は、最大 90 日分のパフォーマンス データを使用して、期待されるパフォーマンスの平均を作成します。この平均は、測定される変数の期待値として使用されます。 Einstein は、各ジャーニーと 1 日に 1 回送信される各バッチメールを評価します。そして、評価は送信日を過ぎても止まりません。 Einstein Messaging Insights は、開封やクリックなどのイベントを送信後何日間も追跡します。