エージェント対応フローを作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- エージェント対応フローに適切なフロー種別を選択する。
- エージェント対応フローに必要な変数を作成する。
- 適切なデータをエージェントに送信する [Get Records (レコードを取得)] 要素を設定する。
- 必要時のみエラーメッセージをエージェントに送信するフローを設定する。
Agentforce 用のカスタム Developer Edition 組織にサインアップする
このモジュールを受講するためには、Agentforce が有効になっている特別な Developer Edition 組織が必要です。このバッジの Challenge を実行できるように、ここで無料の Developer Edition 組織を入手して Trailhead に接続してください。この Developer Edition は、このバッジの Challenge 用に設計されているため、ほかのバッジでは機能しないことがあります。使用している Trailhead Playground や特別な Developer Edition 組織が推奨されているものであることを必ず確認してください。
- このカスタマイズされた無料の Agentforce を搭載した Developer Edition 組織にサインアップするには、リンクをクリックします。
- フォームに入力します。
- [Email (メール)] に、有効なメールアドレスを入力します。
- [Username (ユーザー名)] に、メールアドレス形式の一意のユーザー名を入力します。有効なメールアカウントである必要はありません。
- [Email (メール)] に、有効なメールアドレスを入力します。
- フォームに入力したら [Sign me up (サインアップ)] をクリックします。確認メッセージが表示されます。
- アクティベーションメールを受信したら (数分かかる場合があります)、そのメールを開いて [Verify Account (アカウントを確認)] をクリックします。
- パスワードと確認用の質問を設定して、登録を完了します。
- Developer Edition にログインした状態になります。
新しい Developer Edition 組織を Trailhead に接続します。
- Trailhead アカウントにログインしていることを確認します。
- このページの最下部にある「Challenge」セクションで Playground 名をクリックし、[組織を接続] をクリックします。
- ログイン画面で、先ほど設定した Developer Edition のユーザー名 (受信したメールに記載されています) とパスワードを入力します。
- [Allow Access? (アクセスを許可しますか?)] 画面で [Allow (許可)] をクリックします。
[Want to connect this org for hands-on challenges? (この組織をハンズオン Challenge 用に接続しますか?)] 画面で [Yes! (はい)] をクリックします。保存します。Challenge ページにリダイレクトされたら、このバッジの獲得を目指して新しい Developer Edition を使用できます。
エージェントのニーズを計画する
いつもと同じく、自動化の作成を始める前には計画が必要です。これは、エージェントを作成する場合に特に当てはまります。簡単にまとめると、次のことを行います。
- エージェントに実行して欲しい内容を決定する。
- エージェントが実行する自動化 (今回のケースではフロー) を作成する。
- エージェントで、関連タスクのグループを処理するトピックを作成する。
- トピックで、フローを参照するエージェントアクションを作成する。
フローを作成して既存のエージェントに追加するシナリオを見てみましょう。この例では、Coral Cloud Resorts のために、顧客が各自の予約済みアクティビティを管理するのをサポートするエージェントを作成します。この予約済みアクティビティは、Coral Cloud の Salesforce 組織にある [Bookings (予約)] オブジェクトに保存されています。
エージェントが実行する必要のあるタスクの 1 つは、顧客の今後の予約済みアクティビティを取得して顧客に表示することです。エージェントが適切な情報を取得できるようにするには、顧客のすべての予約レコードを取得するフローを作成します。取得するのは、キャンセルされておらず、まだ起こっていない予約済みアクティビティのみです。その後、出力変数を介して、取得した予約済みアクティビティをエージェントに送ります。
フローの準備が整ったら、フローをエージェントに割り当てます。ただし、フローをエージェントに直接割り当てることはしません。代わりに、関連タスクグループを処理するトピックをエージェントに作成します。それから、そのトピックで、フローを参照するエージェントアクションを作成します。
作成に取り掛かる前に、エージェントに必要なデータとその取得方法について検討します。エージェントは、顧客の情報を求めている人にその情報を誰彼構わず提供するべきではないため、話している相手を確認する必要があります。顧客の予約済みアクティビティを取得するために、フローでは顧客の取引先責任者レコードの ID が必要です。その後、予約オブジェクトから予約済みアクティビティを取得してエージェントに渡すことができます。
幸い、Coral Cloud の組織にはすでに Get Customer Details (顧客の詳細を取得) フローがあります。このフローでは、顧客のメールとメンバー番号を入力として取得し、取引先責任者 ID を返します。Get Customer Details (顧客の詳細を取得) フローと、予約レコードを取得する新しいフローを使用して、このインタラクションを作成しましょう。
- 顧客が予約済みアクティビティの確認を求めると、その応答で、エージェントは検証として顧客の名前とメンバー番号を尋ねます。
- 顧客がその情報を提供すると、エージェントは Get Customer Details (顧客の詳細を取得) フローを実行し、検証に必要な詳細情報を渡します。
- Get Customer Details (顧客の詳細を取得) フローによって、顧客の取引先責任者 ID がエージェントに返されます。
- 次に、エージェントは新しい Get Contact’s Upcoming Bookings (取引先責任者の今後の予約を取得) フローを実行し、先ほど受け取った取引先責任者 ID を渡します。
- Get Contact’s Upcoming Bookings (取引先責任者の今後の予約を取得) フローによって、顧客のキャンセルされていない今後の予約がエージェントに返されます。
- エージェントは、受け取った予約情報を顧客に提供します。
エージェントが Get Customer Details (顧客の詳細を取得) を実行して取引先責任者 ID を取得する場合、取引先責任者 ID を入力として Get Contact’s Upcoming Bookings (取引先責任者の今後の予約を取得) フローに提供できます。小さな個別のタスクをシーケンス処理することにより、エージェントは必要なすべてのデータを取得できます。
エージェントの設定前に、必要になることがわかっているフローを必ず作成する必要があります。それではここで、Get Contact’s Upcoming Bookings (取引先責任者の今後の予約を取得) フローを作成しましょう。
フローとその変数を作成する
まず、フローとその入力変数および出力変数を作成します。フローには、取引先責任者 ID を受け取る入力変数と予約レコードを返す出力変数が必要です。有意義なエラーメッセージを提供する出力変数も作成します。各変数に、使用方法の詳しい説明を追加します。
- 自動起動フローを作成します。必ず [Autolaunched Flow (No Trigger) (自動起動フロー (トリガーなし))] フロー種別を選択します。
- エージェントから受け取る顧客の取引先責任者 ID を保持する入力変数を作成します。(安心してください。Coral Cloud には顧客の取引先責任者 ID を取得するエージェント対応フローがすでにあります。そのフローは後で使用します。)
- ツールボックス (
) で、[New Resource (新規リソース)] をクリックします。
- [リソース種別] で [変数] を選択します。
- [API Name (API 参照名)] に
Contact_ID
と入力します。
- [Description (説明)] に、
The Id of a Contact record that you would like to find related Booking records for.
(関連する予約レコードを検索する取引先責任者レコードの ID。) と入力します。 - [データ型] で [テキスト] を選択します。
- [Availability Outside the Flow (フロー外部での可用性)] で [Available for input (入力で使用可能)] を選択します。
-
[Done (完了)] をクリックします。
- ツールボックス (
- 取得した予約レコードを保持する出力変数を作成します。
- ツールボックス (
) で、[New Resource (新規リソース)] をクリックします。
- [リソース種別] で [変数] を選択します。
- [API Name (API 参照名)] に
Contact_Bookings
と入力します。
- [Description (説明)] に、
The upcoming not-canceled bookings assigned to the contact whose ID matches the Contact_ID.
(ID が Contact_ID と一致する取引先責任者に割り当てられている今後のキャンセルされていない予約。) と入力します。 - [Data Type (データ型)] で [Record (レコード)] を選択します。
-
[Allow multiple values (collection) (複数の値を許可 (コレクション))] を選択します。
- [Object (オブジェクト)] で [Booking (予約)] を選択します。
- [Availability Outside the Flow (フロー外部での可用性)] で [Available for output (出力で使用可能)] を選択します。
-
[Done (完了)] をクリックします。
- ツールボックス (
- フローが失敗した場合にエージェントが共有する必要があるエラーメッセージを保持する出力変数を作成します。
- ツールボックス (
) で、[New Resource (新規リソース)] をクリックします。
- [リソース種別] で [変数] を選択します。
- [API Name (API 参照名)] に
Error_Message_Output
と入力します。
- [Description (説明)] に、
The error message to show to the customer when this flow doesn't finish successfully.
(このフローが正常に完了しなかった場合にお客様に表示するエラーメッセージ。) と入力します。 - [データ型] で [テキスト] を選択します。
- [Availability Outside the Flow (フロー外部での可用性)] で [Available for output (出力で使用可能)] を選択します。
-
[Done (完了)] をクリックします。
- ツールボックス (
顧客の予約を取得する
次に、顧客の予約済みアクティビティを取得して出力変数に送信する要素を作成します。
- フローキャンバスで、[Get records (レコードを取得)] 要素を作成します。
- [Label (表示ラベル)] に、
Get Contact's Upcoming Bookings
(取引先責任者の今後の予約を取得) と入力します。
- [API Name (API 参照名)] に
Get_Contact_s_Upcoming_Bookings
と自動入力されたことを確認します。
- [Description (説明)] に、
Retrieves all upcoming bookings assigned to the found contact that have not been canceled. The bookings are stored in the Contact_Bookings variable.
(見つかった取引先責任者に割り当てられているキャンセルされていない今後のすべての予約を取得します。予約は Contact_Bookings 変数に保存されます。) と入力します。 - [Object (オブジェクト)] で [Booking (予約)] を選択します。
- [Label (表示ラベル)] に、
- [Get records (レコードを取得)] 要素の、取得された予約レコードを絞り込むための条件の要件を設定します。
- [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [Field (項目)] で [Contact (取引先責任者)] を選択します。
- [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
- [Value (値)] で [Contact_ID] を選択します。
-
[Add Condition (条件を追加)] をクリックします。
- 2 つ目の [Field (項目)] で [Date (日付)] を選択します。
- 2 つ目の [Operator (演算子)] で [Greater Than (より大きい)] を選択します。
- 2 つ目の [Value (値)] で [Running Flow Interview (実行中のフローインタビュー)] > [CurrentDate] を選択します。
- もう一度 [Add Condition (条件を追加)] をクリックします。
- 3 つ目の [Field (項目)] で [Is Canceled (キャンセル済み)] を選択します。
- 3 つ目の [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
- 3 つ目の [Value (値)] で [False] を選択します。
- [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [Get records (レコードを取得)] 要素の並び替えオプションを設定します。
この設定は、レコードが顧客にどのように表示されるかを制御します。今回の例では、アクティビティが行われる順番で表示します。- [Sort Order (並び替え順)] で [Ascending (昇順)] を選択します。
- [Sort By (並び替え)] で [Date__c] を選択します。
- [Sort Order (並び替え順)] で [Ascending (昇順)] を選択します。
- [Get records (レコードを取得)] 要素でレコードデータがどのように保存されるかを設定します。
[Get records (レコードを取得)] 要素によって自動作成された変数は出力変数として使用できません。[Get records (レコードを取得)] 要素で出力変数にデータを保存する必要がある場合は、まず出力変数を手動で作成します。その後、必ず [Get records (レコードを取得)] 要素で、項目を選択して変数を割り当てるオプションを選択します。
また、前述のとおり、エージェントと顧客が使用できるようにする項目のみを含める必要があります。- [How Many Records to Store (保存するレコード数)] で、[All records (すべてのレコード)] を選択します。
- [How to Store Record Data (レコードデータの保存方法)] で、[Choose fields and assign variables (advanced) (項目を選択して変数を割り当てる (高度))] を選択します。
- [Record Collection (レコードコレクション)] で [Contact_Bookings] を選択します。
-
[Add Field (項目を追加)] を 2 回クリックします。
- 1 つ目の選択可能な項目を [Id] から [Experience_Name__c] に変更します。
- 2 つ目の選択可能な項目で [Date__c] を選択します。
- 3 つ目の選択可能な項目で [Start_Time__c] を選択します。
- 4 つ目の選択可能な項目で [End_Time__c] を選択します。
- [How Many Records to Store (保存するレコード数)] で、[All records (すべてのレコード)] を選択します。
フローにエラー処理を指定する
最後に、このフローで [Get records (レコードを取得)] 要素が失敗した場合にエラーメッセージを送信できるようにします。
障害パスは、添付された要素が失敗した場合にのみ実行する特別なパスです。任意のデータ要素 (Get Records (レコードを取得)、Create Records (レコードを作成)、Update Records (レコードを更新)、Delete Records (レコードを削除)) に障害パスを作成できます。障害パスは要素が失敗した場合にのみ実行するため、障害パスに割り当て要素を配置します。割り当て要素を使用して失敗時のエラーメッセージを設定することで、エージェントが不適切にエラーメッセージを受信して表示するリスクがなくなります。
-
[Get Contact's Upcoming Bookings (取引先責任者の今後の予約を取得)] 要素にマウスを合わせ、
をクリックしてから [Add Fault Path (障害パスを追加)] を選択します。
- 障害パスで
をクリックします。
-
[Assignment (割り当て)] を選択します。
- [Label (表示ラベル)] に、
Set the Error Message Output
(エラーメッセージ出力を設定) と入力します。
- [API Name (API 参照名)] に
Set_the_Error_Message_Output
と自動入力されたことを確認します。
- [Description (説明)] に、
Gives error message text to the Error_Message_Output variable, to present to the customer if this flow fails.
(このフローが失敗した場合にお客様に提示するエラーメッセージテキストを Error_Message_Output 変数に指定します。) と入力します。 - [Variable (変数)] で [Error_Message_Output] を選択します。
- [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
- [Value (値)] で
I'm sorry, I'm having a problem finding your booked activities. Would you like to speak to our support team?
(申し訳ありません。お客様が予約されているアクティビティの検索で問題が発生しました。サポートチームへのお問い合わせをご希望ですか?) と入力します。
- [Label (表示ラベル)] に、
- フローを保存します。
フローがエージェントアクションで使用されると、フローの説明は自動的にエージェントアクションの手順として設定されます。そのため、説明はエージェントの手順のように書いてください。- [Flow Label (フローの表示ラベル)] に
Get Contact's Upcoming Bookings
(取引先責任者の今後の予約を取得) と入力します。
- [Flow API Name (フローの API 参照名)] に
Get_Contact_s_Upcoming_Bookings
と自動入力されたことを確認します。
- [Description (説明)] に、
Find all the Booking records related to the guest's contact record. Only retrieve Bookings whose date hasn't occurred yet.
(ゲストの取引先責任者レコードに関連するすべての予約レコードを検索します。日付がまだ到来していない予約のみを取得します。) と入力します。
- [Flow Label (フローの表示ラベル)] に
- フローを有効化します。
フローをエージェントアクションとして割り当てるには、フローが有効になっている必要があります。
これで、フローがエージェント対応になりました。次の単元では、作成したフローを適切な手順と共にエージェントに追加します。