MIAW キュー

[Messaging for In-App and Webのまとめに戻る](https://qiita.com/Keiji_otsubo/items/97b3e0c3587bdb6bfa72)

------------


+ [私が読んだいくつかの SF ドキュメントによると、キュー位置機能は Miaw ではサポートされていないようです。本当ですか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KfsQ6)

:::note
キュー位置機能はロードマップ上にありますが、まだ利用できません。
:::


+ [顧客が MIAW キューにいるときに、キュー情報が顧客に返されないのはなぜですか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ifcmASAQ)

待機時間に関する10in10 ソリューションはMIAW にあることは知っています。ただし、エージェントとのチャットを待っている間に顧客にキュー内の位置が提供される従来のチャットと比較すると、事前チャット後の現在のソリューションは、Acknowledge やreasonForNotRoutingなどの簡単なメッセージング ソリューションを提供しますが、従来のチャットと比較すると貧弱なソリューションであり、ソリューションというよりはハックのように感じられます。

+ [オムニチャネル – よりスマートなケースルーティングのためのエージェントの空き状況を確認するコアアクション](https://www.apexhours.com/omnichannel-check-agent-availability-core-action-for-smarter-case-routing/)

メッセージング チャネル (レガシー チャットまたはMIAW (InApp および Web 向けメッセージング)) が設定されています。キュー/スキル、エージェント、ルーティングなどの必要な構成もすべて構成されています。したがって、エージェントが対応可能な場合の肯定的なテスト ケース シナリオは期待どおりに機能します。否定的なテスト ケースはどうでしょうか。メッセージング リクエストを受け入れるエージェントがいない場合はどうなるでしょうか。それは十分にあり得ますよね。OmniChannelフローによって提供される機能の宝石、つまり「ルーティングの可用性の確認」コア アクションをご紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/09678ef7-29e0-cfb3-ef82-3e2e83b184aa.png)


# ステップ1: 希望するサービスチャネルとオブジェクトを選択する

+ 目的のサービス チャネルを選択します。これは、 ServiceChannelオブジェクトのすべてのレコードを表示する参照フィールドです。または、[設定] - [サービス チャネル] からこれらの値を確認することもできます。 
+ これは固定値を持つドロップダウンです (制限された選択リスト フィールドのような)。ルーティングのニーズに基づいて値を選択します。このデモでは、「キュー」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/189fd8c2-aa32-ed4e-268e-1b3e5b028097.png)

# ステップ2: 希望するキュー/スキル/エージェントを選択する
このセクションのラベルとフィールドは、上で選択した値に反応します。上で「キュー」を選択したので、エージェントの可用性が必要なキュー名（つまり、キュー内のオンラインのユーザー）を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/1968aa93-db50-56e8-acd3-eca65621d5a7.png)

# ステップ3: 出力変数を選択する
2 でどのオブジェクトが選択されているかに関係なく、Salesforce は 3 つの値を提供します。そのうちの「すべてを返す」は、最初の 2 つのオプションの値も保持する配列です。私は最後の値を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/47439b93-b348-f02c-55dc-041e15e5d7e4.png)


# ステップ4: [オプション] 手動変数割り当て
変数を手動で割り当てて、その後使用するという通常のフローからのこのオプションは、私たち全員がよく知っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a7b68997-8f7b-af54-c041-029a3f84e26b.png)

3 つの変数の詳細な説明 (出典: [Salesforce ヘルプ](https://help.salesforce.com/s/articleView?id=sf.omnichannel_check_availability_for_routing.htm&type=5) )

| 出力	|説明|
|:--------------------------|:----------------------------------|
|推定待ち時間（秒）|このアクションは、指定されたルーティングパラメータに基づいて、推定待機時間 (秒単位) を返します。たとえば、作業をキューにルーティングする場合、このパラメータは、エージェントが作業を引き受けるまでに作業がキュー内に留まる推定時間を示します。Omni-Channel は、過去 10 分間にルーティングされた作業に基づいて推定待機時間を再計算します。ルーティングされた項目が 10 個未満の場合、計算できません。待機時間は、キュー内の主要な (中断できない) 作業項目に基づいて計算されます。中断可能な作業は計算に含まれません。|
|オンラインエージェントの数|このアクションは、オンラインであるが、必ずしも追加の作業を受け入れることができないエージェントの数を返します。つまり、エージェントは最大限に作業している可能性があります。エージェントにルーティングする場合、この値は 0 (エージェントがオフライン) または 1 (エージェントがオンライン) になります。キューにルーティングする場合、この値はそのキューに割り当てられているオンライン エージェントの数になります。スキルにルーティングする場合、この値は指定されたスキルセットを持つオンライン エージェントの数になります。|
|キューに入れられた作業項目の数|このアクションは、ピックアップを待機しているアイテムの数を返します。これには、エージェントに割り当てられたアイテムやエージェントが受け入れたアイテムは含まれません。エージェントにルーティングする場合、この値は、フォールバック キューなしでエージェントに直接割り当てられた PSR の数です。キューにルーティングする場合、この値は、このキューをフォールバック キューとして特定のエージェントに割り当てられた PSR を含む、キューに割り当てられた PSR の数です。スキルにルーティングする場合、この値は、アクションで使用される必須スキル要件 (スキルとスキル レベルの両方) のまったく同じセットを共有する PSR の数です。キューのサイズは、キュー内の主要な (中断できない) 作業項目に基づいて計算されます。中断可能な作業は計算に含まれません。|


# ステップ5: 重要なステップ – ルーティングの決定要素チェック
アクションによって返されるすべての値は、コレクションからアクセスできます。OnlineAgentCount が 1 つのブランチでゼロに等しく、別のブランチでゼロより大きいかどうかを確認して、適切なキューにルーティングします。エージェント オンライン ブランチから、RouteWork コア アクションを使用して特定のキューにルーティングするためのもう 1 つの決定要素を追加できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/49cc7618-8db6-a93e-8a23-1202c8347633.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ef54c331-4504-be85-ba13-db2aed73ac63.png)

# ステップ6: エージェントがオンラインになっていない場合にユーザーにカスタムメッセージを表示する
フロー内にreasonForNotRoutingとまったく同じ名前のテキスト変数を作成し、それを出力に使用可能としてマークしてから、No Agents Online ブランチでこの変数に値を割り当てます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/539c6891-69ef-d2a0-08a1-799d32ba6d9e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/4d4bfd2c-0141-162b-86da-4ce0468aef85.png)


チャットウィンドウの結果は次のようになります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/71d2263f-97df-472d-5a2e-eea6efe6ea79.png)