いつもお世話になっております。 プロダクトエンジニアリンググループの孫です。 LIFULL HOME'SにおけるSalesforceとLINEの連携について紹介したいと思います。
背景
LINEのLIFULL公式アカウントを使い、簡単な対応はBotで対応し、それ以外はLINEのWebhook API機能を利用し、直接 LIFULL HOME'S 住まいの窓口 とやり取りができるチャット機能を、Salesforceで管理・運用する施策がありました。 ※ 現状このサービスはクローズされています。クローズされた背景については後日、別の記事として記したいと思います。
Salesforce Service Cloud 設定
外部からのチャット情報を受け取り、Salesforce内で対応させるためにはSalesforceのオムニチャネルの有効化が必要となります。
オムニチャネル
LiveAgentにて送信されたチャット要求をSalesforce内で待機中のエージェントに連携させるルーティング機能です。エージェントの作業量やステータス、スキルなどを参照し、自動的に作業を振り当てます。スーパーアドバイザーを設定し、全体のチャット対応状況を監視・管理することも可能です。
設定
- オムニチャネルの有効化
- 受信した作業をエージェントに転送するまで保持するキューの作成
- ルーティング設定とプレゼンス設定の作成。この 2 つは連動してエージェントのワークロードを制御し、キュー内の作業に優先度を設定します。
- 作業要求を引き受け可能なユーザの選択
- 新しいキューを通じて受信されるケースのエージェント業務量と作業項目サイズの設定
細かい設定内容は以下のSalesforceドキュメントにまとまっているのでここでは省略します。 help.salesforce.com
Webhook側の開発
全体図
上の図は構成を簡単に表現したものとなります。仕様によってケースや取引先のオブジェクトを作成・更新する処理を追加することも可能です。 LINEから連携されるUserIDとFollowEvent、TextEventなどを基にWebhookからSalesforceのLive Agent REST APIを叩き、ユーザ情報と相談内容などをSalesforceを更新する仕組みです。
このSalesforceのLive Agent REST APIを利用するとLINE以外でもFacebookやWebチャットなどを利用しSalesforceにデータをためることができます。
LINE → Salesforce
- Live Agent セッションを作成する
新しい Live Agent セッションを作成するには、SessionId 要求をコールする必要があります。 - チャット訪問者のセッションを作成する
Live Agent REST API を使用して、チャット訪問者のセッションを作成または再確立するには、特定の要求を実行する必要があります。 - チャット活動を監視する Live Agent 要求では、チャットセッション中に特定の活動がいつ発生したのかを指定します。 LINEから送信されたメッセージをSalesforceに連携する処理となります。
Salesforce → LINE
- エージェントからのメッセージをLINEに送る
チャット監視中のChatMessageからレスポンスから受け取ったエージェントのメッセージを送信する。
結果
LINEからのチャットをSalesforceのオムニチャネルから受け取り、Salesforceのオムニチャネルから送信されたメッセージがLINEから確認できます。
最後に
記事にまとめているのは基本的な正常パターンの流れとなります。実際の実装では多様なメッセージパターン(画像やスタンプなど)の扱いやエージェントのステータスによる処理、細かい仕様への対応への注意が必要ですが、Live AgentはLINE以外でもWebや他のスマホアプリなど色んな所から顧客問合せをSalesforceでまとめて対応できるメリットがある良い機能だと思いますので誰かの参考になれればと思います。