事前チャットフォーム
Salesforce Chatでは、ウエブページ閲覧者に対し、チャット開始前に事前チャットフォーム(Pre-chat form)を表示することで個人情報の入力を促しています。また、閲覧者が必須のフィールドへデータ入力しないと、チャットを開始出来ない仕様になっています。
以下の事前チャットフォーム例では、赤い星印のフィールドが入力必須となっています(この例では、全てのフィールドが必須)。
これらフィールドからのデータは、チャット開始時、チャットのトランスクリプト(LiveChatTranscript)、ケース(Case)や取引先責任者(Contact)のレコードを自動作成したり自動検索する為に利用されます。上の事前チャットフォームの例では、氏名と電話番号のデータよりContactレコードを自動生成したり自動検索(既に氏名や電話番号が登録済みの場合)します。また、件名(Subject)よりCaseレコードを自動生成ないし自動検索します。
エージェントがサービスコンソール上でチャット要求受付時には、これらレコード(LiveChatTranscript, Contact, Case)がサービスコンソール画面に自動表示されます。
Salesforce Chat REST APIにおける事前チャットフォームデータの送信
今回、この事前チャットフォームをUnityのuGUIを使って自作してみます。件名のフィールドは除いてあります。なぜなら、FirstPersonが歩き回っている物件情報を件名(Subject)とたいので、あえて、ユーザへ入力を促す必要がないと考えたからです。
さて、この事前チャットフォームから得たデータをどうやってSalesforce PlatformへREST APIで送信するのか。ネット上の文献が乏しい中、以下の情報より、送信の方法を得ました。
Create a case with Live Agent REST API
この部分のREST API処理を実装し、uGUIで自作した事前チャットフォームからSalesforce Platformへデータ送信してみました。サービスコンソールで、ContactとCaseが自動生成/自動検索されているのを確認出来ました。
これで、UntiyとSalesforceのCRM連携を実現出来ました。
その3へ続く
次は、RaycastがヒットしたGameObjectの名前を、エージェントへチャットで自動送信するような実験をやってみたいです。y軸負の方向へRaycastし、ヒットした床GameObjectの名前(居間とかダイニングとか)を送信するとか、ユーザが画面上をタッチした方向でRaycastし、ヒットしたGameObjectの名前を送信するとか。