Inside of LOVOT

GROOVE X 技術ブログ

Salesforceとformrunを連携させてLOVOT問診票機能を実装してみた

この記事は、GROOVE X Advent Calendar 2023の14日目の記事です。

はじめまして、GROOVE Xの尾銭です。
私はお客様サポート業務がメインのシステムエンジニアとして、日々サポートデスクの業務改善やポータルサイトの開発などを行っております。
今回はサポートデスクで使っているSalesforceと新たにWEBフォームサービスのformrunを連携させて、お客様コミュニケーションの改善に挑戦している話をご紹介します。

www.salesforce.com

form.run

なにを作ったのか

概要

お客様からお問合せを受け付けたあと、内容に応じてWEBフォームのご案内をお送りし、入力頂いた回答をお問合せに自動反映させる仕組みを作りました。 流れとしては、

  1. お客様からお問合せを受付
  2. Salesforce上でWEBフォームの種類を選択してお客様に送信
  3. お客様がWEBフォームに回答
  4. ケースに自動連携されたアンケート内容を確認した上でサポート対応

という感じで簡単な図にすると以下になります。

概要図

上記の仕組みを作るにはコーディングは不要で、Salesforce側とformrun側にそれぞれ以下のような設定を行えば実現できました。

formrun側の設定(フォーム)

まずはformrun側でフォームを作成していきます。
ここでは「hiddenテキスト」という非表示項目を選択して、後述のケース番号を埋め込んでご案内できるようにしておきます。
その他は自由にヒアリング項目を追加していきます。
弊社では、選択内容によってヒアリング項目を切替できる選択項目を追加して、症状別にヒアリング項目を切り替えれるように実装しました。

フォーム編集画面

Salesforce側の設定(カスタムオブジェクト)

次に、WEBフォームの回答結果を連携させるためのカスタムオブジェクトをSalesforce側に用意します。カスタムオブジェクトに必要な項目は最低限以下になります。

カスタム項目名 データ型 用途
ケース 参照関係 元の問合せに紐付けるため
ケース番号 テキスト 「hiddenテキスト」に設定したケース番号が連携されるようにします
メール メール formrun側で必要なため
formrun項目1 テキスト formrunの回答を保存するため
... ... ...
formrun項目N テキスト formrunの回答を保存するため

formrun側の項目数分、対応するカスタム項目の追加が必要になります。
私は以下のようにカスタム項目のAPI参照名はformrun側の項目の番号と揃えるようにしておきました。

カスタムオブジェクトのイメージ

※formrun側の項目は表示名のみ変更可能で、項目名は変更できないようでした、、

formrun側の項目設定イメージ

formrun側の設定(Salesforce連携設定)

次に、forumrunのフォーム項目とSalesforceのカスタム項目のマッピング設定を行います。
マッピング設定にはSalesforceのアカウントが必要になります。
このSalesforceアカウントは先日から各Salesforce環境に無償提供されている、API 連携用ユーザライセンスのSalesforceアカウントを用意して設定すればよいと思います。

Salesforce連携アカウント設定

認証が終わるとマッピング設定が可能です。認証したアカウントにアクセス権限があるカスタムオブジェクト/項目のみしか選択できないので、うまく選択肢に表示されない場合は、Salesforce側の権限設定を見直すと解決すると思います。

formrunとSalesforce項目のマッピング設定

Salesforce側の設定(フロー)

最後に、Salesforceに連携されたWEBフォームの回答結果をケースに自動で紐付ける処理をSalesforceのフローでノーコード実装します。
formrunとのマッピング設定を行ったカスタムオブジェクトのレコードが作成されたときに実行されるように設定します。

フローの全体像と開始条件

フロー内の処理では最初にWEBフォームの回答結果の紐付け先ケースを取得する処理を用意するのですが、ここで前段で設定した「hiddenテキスト」のケース番号を条件に設定します。

GetCase

そしてケースが取得できた場合はケースIDを参照項目に設定してWEBフォームの回答結果のレコードを更新します。

SetCaseId

以上が一通りの実装になります。

最後にお客様へWEBフォームのご案内をするときですが、以下のようにフォームURLのクエリパラメータで初期値を設定することができます。

https://form.run/@フォーム名?項目名1=初期値1&項目名2=初期値2

このクエリパラメータには忘れずにケース番号を埋め込んでご案内するようにします。
弊社ではSalesforceの画面からお客様の症状別に初期値を切り替えてWEBフォームのご案内定型文を生成する機能も実装しております。
ここまで作り込むとlwcでの開発が必要になってきますが、要件次第ではノーコードで実装することも可能だと思います。

WEBフォームのご案内イメージ

なぜ作ったのか

弊社ではLOVOTというプロダクトの性質上、お客様が故障かな?と思ったお問い合わせに対して、適切なサポートを行うために多くのヒアリング項目が存在します。
しかも、

  • 故障と思われる症状は多岐にわたる
  • 症状別にヒアリングする項目が異なる
  • お客様にヒアリングする症状と項目は日々変化する

というもので、現在はすべてテキストでお客様とコミュニケーションを行っています。
これは弊社のサポートデスクメンバーの負担になっているだけではなく、お客様にも大きな負担となってしまっています。

そこで、柔軟にヒアリング項目をメンテナンスできて、弊社のサポート基盤として活用しているSalesforceとの連携が容易に実装できそうなWEBフォームサービスを検討した結果、今回はformrunを採用して、問診票のような機能を実装できないか、というトライを始めました。

まだ本運用はスタートできていないものの、テキストコミュニケーションのみだったヒアリングの負担を改善できそうなフィードバックが弊社サポートデスクメンバーから挙がってきており、非常に期待しております。

今回実装した仕組みは弊社のような問診票としての利用に限らず、お問い合わせフォーム、ウェビナー申し込みフォーム、NPS集計など、様々な用途でWEBフォームとSalesforceを連携させたい場合に活用できると思いますので、皆さんの参考になれば幸いです。

最後に

最後までお読み頂き、ありがとうございました。 GROOVE Xでは一緒に働く仲間を募集しています!
是非下記リンクをチェックしてみてください。

recruit.jobcan.jp