【第424回】 Agentforce : 事前チャットフォームの設定方法とその後の活用
外部サイトに Agentforce(Service Agent)を設置する場合、会話の開始前に名前やメールアドレスなどを入力させる「事前チャットフォーム」を設定できます。

ただし、この仕組みには メリットとデメリットが存在します。
✅ メリット
1. 本人確認の手間がなくなり、会話がスムーズに進む
事前に氏名やメールアドレスを取得できるため、エージェントが会話の中で「お名前やメールは?」と尋ねる必要がなく、会話の流れが途切れません。
2. 悪意ある利用の抑止につながる
最低限の入力工程を用意することで、スパム・いたずら・冷やかし利用などを一定程度フィルタリングでき、健全な利用環境を保ちやすくなります。
⚠️ デメリット
1. 離脱率が上がる可能性がある
入力が面倒と感じるユーザーが離脱する場合があります。
特に「まず気軽に質問したい」というユーザーにとっては心理的ハードルになる点に注意が必要です。
2. 匿名での相談がしづらくなる
個人情報の提供に抵抗があるユーザー、プライバシーに敏感なユーザーが利用を控える可能性があります。
3. 入力された情報の信頼性は保証できない
必ずしも正しい情報が入力されるとは限らず、偽名・架空のメールアドレスなどが登録されるケースもあります。
その場合、結局後から追加確認が必要になることがあります。
4. プライバシー・法的対応が発生する場合がある
入力された情報が個人情報に該当するため、個人情報保護法・GDPR 等への準拠、プライバシーポリシーの更新や同意取得など、法的配慮が求められる可能性があります。
もちろん、ここで挙げた内容がメリット・デメリットの全てではありません。ただし、実際にはデメリット側の影響が大きく出やすい点は、事前に認識しておく必要があります。
それでも、この事前チャット入力機能を活用したい場合は問題ありません。設定自体はすぐに利用可能ですので、この記事では その具体的な 設定手順を解説していきます。
前提:外部サイトへの Agentforce(Service Agent)の設置
この記事の内容に進む前に、まずは Agentforce を外部サイトに設置しておく必要があります。まだ設置が完了していない場合は、以下の 3 記事を参考に設定をお願いします。
上記設定まで完了していれば、すでにエージェントが外部サイト上に表示されている状態かと思います。

現時点では、このエージェントはナレッジに基づくシンプルな FAQ 対応のみを行う構成になっています。

ここから設定手順に入ります
まずは、今回の設定全体の流れを俯瞰します。以下のステップで進めていきましょう。ヘルプページにも掲載されている以下の流れとほぼ同じです。

事前チャットの入力項目を作成
事前チャット機能の有効化
プルダウンの値のカスタム表示ラベルの作成
Messaging Session への項目追加
オムニチャネルフローの設定
Agentforce 側の設定
事前チャット機能の公開
エージェントを起動して動作確認
1. 事前チャットの入力項目を作成
今回のシナリオでは、メールアドレスは 会話中の認証フローで取得する想定のため処理しません。※ 個人的にも、認証フローによる取得の方が データの信頼性を担保できるため推奨します。
したがって、事前チャットで取得する項目は以下の 3 つに絞ります。
姓
名
AI エージェント接続 or 有人エージェント接続(選択式 / プルダウン)
※今回は「有人エージェント接続」自体の設定までは行わず、選択肢としての作成のみ行います。
1. 事前チャットの入力項目は、設定で「メッセージング設定」を検索します。こちらの「メッセージング設定」では、外部サイトにエージェントを表示する手順の中で作成済みかと思いますので、作成済みのチャネルを選択します。

2. 下にスクロールしたところに表示される「カスタムパラメーター」のセクションで作成します。

カスタムパラメーターがあるということは標準パラメーターもあります。
標準パラメーターは以下の 4 つです。
・姓
・名
・主題
3. 今回は、標準パラメーターから「姓」「名」を利用しますので、カスタムパラメーターとしては、AI エージェント接続 or 有人エージェント接続(選択式 / プルダウン)だけを作成して、保存します。

パラメーター名:Support Method
パラメーターの API 参照名:Support_Method
チャネル変数名:Select Support Method(※ 事前チャットに表示)
データ型:String
最大文字数:100
4. 続いて、すぐ下にある「パラメーターの対応付け」を新規で作成します。

5. こちらで、後にオムニフローに取得した値を送るためのマッピングを行います。標準パラメーターは作成せずとも利用できるようになっています。

6. 以下でマッピングを作成して保存してください。今回は 3 つです。
フロー変数名 の命名方法は任意のもので結構ですが、後にオムニチャネルフローで作成する変数の名前でも同様のものを付ける必要があります。
(パラメーター名 ⇔ フロー変数名)
First Name ⇔ firstName
Last Name ⇔ lastName
Support Method ⇔ supportMethod

2. 事前チャット機能の有効化
1. 続いて、設定で「組み込みサービスリリース」を検索します。こちらも外部サイトにエージェントを表示する手順の中で作成済みかと思いますので、作成済みの組み込みサービスを選択します。

2.「事前チャットを編集」をクリックします。

3. ここからはチャットに表示する順番で選択します。まず「表示事前チャット項目」の中で、「名」(First Name)を選択します。

4. 続いて、「姓」(Last Name)を選択します。

5. 最後に、カスタム(Custom)を選択します。

6. カスタム項目の場合は定義が必要なので、以下で定義して次へをクリックします。
項目のデータ型:Dropdown
チャネル変数名:Select Support Method(※ 事前チャットに表示)
ドロップダウン名:Support Method
ドロップダウンの API 参照名:Support_Method
ドロップダウン API 値:
Connect_with_AI_Agent(※ 事前チャットに表示)
Connect_with_a_Human(※ 事前チャットに表示)

7. 並び順を決めて保存します。

8. 3 つが設定できました。左側の名称で事前チャットに表示されます。また必要に応じて、必須項目にしたり、並び順を最終調整することができます。

9. 「事前チャット機能を有効化」にチェックを入れます。
なぜ最後の段階でチェックを入れているかというと、このチェックボックスは設定を行っていると外れてしまうチェックだからです。よって、最後にチェックされているか確認してください。
また、仮にチェックを入れて保存したとしても、すぐに画面では反映しません。反映させるには「組み込みサービス」の「公開」作業が必要です。

10. 最後に、もし名前を取得したのであれば、一番下までスクロールして、「Visitor Name」を Guest から First Name と Last Name へ変更してから全体を保存するのが良いでしょう。

この作業により、上記の Vistor Name のプレビューの赤枠の部分がゲスト表示から姓名の表示に変わる他、
エージェントとチャットをすることで Messaging Session レコードが 1 レコードずつ作成されるのですが、そのレコードの「Messaging User」項目に入る値が Guest から 姓名に変わり、誰からの問い合わせであるかが一目で分かります。

3. プルダウンの値のカスタム表示ラベルの作成
上で設定したプルダウンの API 値は、事前チャットにそのまま表示されてしまいます。値として使えるのは「英語」と「アンダーバー」のみなので、これらのカスタム表示ラベルを作ることが推奨されます。
Connect_with_AI_Agent
Connect_with_a_Human
表示名は言語ごとに作成する必要があります。設定は以下の通りです。
1. 設定で「翻訳言語設定」を検索して選択し、すでに有効化済みの English で編集をクリックします。

2. 現在ログインしているユーザーを翻訳者として保存します。

3. 日本語を同じように設定します。

4. 現時点で無効化されている場合は、有効化してから、翻訳者を登録して保存します。

5. 設定から「組み込みサービスリリース」に戻り、「カスタム表示ラベルを設定」をクリックします。

6. ここでは上記の設定で有効化済みとなっている言語ごとに設定できます。

7. チャットグループで「事前チャット」を選択します。

8. 表示ラベルグループで「ドロップダウン値」を選択します。

9. 最後に、表示ラベル種別を Standard にすると、先ほど設定したドロップダウン API 値が表示されますので、カスタム表示ラベルを入力して、保存します。

10. 続いて、日本語でも同じように設定します。

11 日本語でカスタム表示ラベルを入力して保存し、完了をクリックします。
※ 完了の前に「保存」を忘れずに行ってください。

このカスタム表示ラベルの編集では、標準表示ラベルである「姓」や「名」の表示ラベル名も変更することが可能です。
4. Messaging Session への項目追加
さて、今回設定した事前チャット項目は、この後「公開」さえすればすぐに利用できるようになり、例えば、利用目的が「悪意ある利用の抑止につながる」というものであれば、目的としては満たしており、これで十分なのですが、せっかく取得した姓名ですので、その後のエージェントのコンテキストとして活用したいですよね。
その場合は以下の方法を取ります。
Messaging Session を開き、以下の項目を作成します。
First Name(テキスト型:文字の長さ 100)
Last Name(テキスト型:文字の長さ 100)

2. ページレイアウトにも表示する形で保存してください。

3. 項目が作成されましたので、次のオムニチャネルフローの設定で、この項目に値を更新していきます。

5. オムニチャネルフローの設定
1. このオムニチャネルフローは新規のものを開くのではなく、外部サイトにエージェントを表示する手順の中で作成済みのオムニチャネルフローがあるかと思いますので、そちらを開きます。

2. 今回このフローの設定でやることは、以下の 2 つです。
「姓」「名」の 2 つを Messaging Session オブジェクトに格納する
AI エージェント接続 or 有人エージェント接続 を分岐する
このためには、以下の 3 つの変数を作成します。
firstName:変数(テキスト)→ 入力で利用可能
lastName:変数(テキスト)→ 入力で利用可能
supportMethod:変数(テキスト)→ 入力で利用可能

3. この変数名は、メッセージング設定で設定したものと同じである必要があることを思い出してください。マッピング済みですね。

ちなみに、以前に記事で作成している変数 recordId にはエージェントとのセッションが開始されると、そのチャット画面上から Messaging Session Id が流れてくる仕組みです。
4. 次に、「レコードの更新」要素を配置します。配置したら、オブジェクトから Messaging Session オブジェクトを選択して、左型の項目で「Messaging Session ID」を選択します。

5. 右側の値には、フローで流れてくる Messaging Session ID の変数である recordId を選択します。

6. 次に更新する項目の設定を行います。以下の 2 つです。
Messaging Session の First Name に対して「変数 firstName」
Messaging Session の Last Name に対して 「変数 lastName」

7. 続いて、「決定」要素を配置します。こちらはシンプルに左側の項目で「変数 supportMethod」を選択し、右側には、先ほどの「組み込みサービス」のドロップダウンで設定した「Connect_with_AI_Agent」を直で入力します。

8. 最後に「Route Work」要素を左側のパスの中に移動したら完了です。こちらを新しいバージョンで保存し、有効化します。

6. Agentforce 側の設定
1. 続いて、Agentforce Builder に移動して、エージェントが取得した Messaging Session 内の姓名を利用できるようにするために「コンテキスト」を設定します。

2. コンテキスト変数から Messaging Session を選択します。

3. エージェントがドラフトか無効化されている状態で編集可能であれば、編集ボタンが現れますので、クリックします。

4. 今回新たに追加した姓名の項目をそれぞれ追加して、保存します。

5. 続いて、General FAQ トピックの指示を変更したいので、トピック一覧から選択します。

6. General FAQ トピックの指示に、以下を追加して保存してください。
(英語版)
During the conversation, begin by thanking the customer with the following format, using the Last_Name__c value from the Messaging Session:
“Thank you for your inquiry, Last_Name__c.”
Always use the exact value entered in Last_Name__c as-is.
(日本語版)
会話の開始時には、Messaging Session の Last_Name__c の値を用いて、以下の形式でお礼を述べてください。
「Last_Name__c さん、お問い合わせありがとうございます。」
Last_Name__c の値は、入力された文字列をそのまま使用し、翻訳・ローカライズ・文字変換は行わないでください。
例:「Watanabe」 と入力された場合は、「Watanabe」 のまま使用し、「渡辺」 などへの変換は行わないでください。
※ 日本語版の指示には、エージェントは英語の名前を適当な漢字に変換する場合があるので、対応する指示を追加しています。

7. 保存したら、エージェントをアクティブ化します。

※ 事前チャットはエージェントが動く前の動作のため、Agent Builder ではテストができませんのでご注意ください。
7. 事前チャット機能の公開
エージェントが有効化できましたら、「組み込みサービスリリース」の設定画面に戻り、事前チャットが有効化されていることを確認しつつ、「公開」ボタンをクリックします。

8. エージェントを起動して動作確認
1. いよいよ、すべての工程が完了しました。実際にチャットを開いてみますと、事前チャットが開くことが確認できます。

2. 入力して、会話を開始します。

3. 会話が開始されたので、質問を開始します。
英語:Can I change or cancel my rental reservation after booking?
日本語:予約後にレンタル予約を変更またはキャンセルすることはできますか?

4. すると、回答の先頭で「姓」を利用していることが確認できました。

Tips:上記の通り、入力されたままの名前を使うことを指示しないと、適当な漢字に変換されてしまうため、顧客を不愉快にさせる可能性があります。
5. また、一度セッションを終了させて、事前チャット上のプルダウンで「有人チャット」側を選択してみます。

6. この場合は、エージェントが存在しないとなりますので、しっかりフローの決定分岐の設定が効いていることが分かります。

7. 最後に Messaging Session レコードを確認すると、姓名が格納されていることも確認できます。成功です。

いかがでしたでしょうか。
今回ご紹介した Agentforce の設定方法は、あくまで一つの例に過ぎません。Agentforce は企業ごとに要件が大きく異なるため、最適な設定は常に状況によって変わります。ぜひ本記事の内容を 唯一の正解ではなく、実装のヒントやアイデアの一つ としてご活用いただければ幸いです。
また、本記事は Agentforce の入門者向け に構成しているため、実際の本番運用ではもう一工夫や追加検討が必要になる点も、ご認識ください。かなり大雑把な作りになっています。
今回は以上です。
