はじめに
「答えるAI」から「行動するAI」へ
これまでの生成AIは、要約やメールの作成といった「情報の整理と回答」が得意でした。しかし、これからのAI(エージェント)は、システムを操作し、ビジネスプロセスを完結させる「行動」のフェーズへと進化しています。
Agentforceとは
Salesforceが発表したAgentforceは、まさにこの「行動するAI」の機能がSalesforceの環境で動き、人間が指示を出すだけで、裏側でフローを回し、データを更新し、タスクを完結させます。
本記事のテーマ
今回はその第一歩として、日常業務で最も頻度が高い「スケジュール登録」を、会話だけで完結させる機能を実装・紹介します。
スケジュール管理の「小さな手間」を解消することが目的です!
スケジュール管理の「小さな手間」を解消することが目的です!
<ちなみに>
英語であれば標準でスケジュール管理に関するトピック[Appointment Management For Scheduler]があるようですが、日本語は未対応だったため、今回はフロー開発を行い実装してみました。
英語であれば標準でスケジュール管理に関するトピック[Appointment Management For Scheduler]があるようですが、日本語は未対応だったため、今回はフロー開発を行い実装してみました。
実現できる機能
チャット欄に「来週月曜の15時から1時間、定例会議の予定を入れて」と入力するだけで、Salesforceの「行動(Event)」オブジェクトに即座に反映し、スケジュール登録を行います。
実際に作成したチャットをご覧ください。
登録したいスケジュール内容をチャット形式で依頼することで、下記の通り簡単にスケジュール登録ができます。
登録したいスケジュール内容をチャット形式で依頼することで、下記の通り簡単にスケジュール登録ができます。
カレンダー登録に最低限必要な「ユーザー」、「日時」、「件名」を入力してみました。
入力内容に基づき2/2の13:00~14:00でカレンダー登録が成功しています。
【実装例】Agentforceによる会話型スケジュール登録
それではさっそく作成していきましょう!
作成する要素は大きく分けて、「フロー」と「エージェント」です。
作成する要素は大きく分けて、「フロー」と「エージェント」です。
フロー作成
チャットから起動させるカレンダー登録用のフローを作成します。
まずは、チャットから起動され、実際にカレンダー登録を行う処理を作成します。
フロー種別は「テンプレートトリガープロンプトフロー」を選択し、以下の手順で作成します。
1.入力変数を作成する
チャットで取得するカレンダー登録に必要な項目を格納する入力変数を作成しておきます。
対象ユーザー名(招集者、被招集者)や件名、日付、会議室等、必要に応じて作成してください。
2.対象ユーザーレコードを取得する
チャットで入力された名前(テキスト)をもとに、Userオブジェクトを検索してIDを取得します。
3.行動レコードに登録する情報を割り当てる
チャットから受け取った件名、日時、および2で取得した対象ユーザーIDを割り当ててリストを作成します。
4.行動レコードを作成する
3で作成したリストから行動レコードを作成します。
5.被招集者に対して行動リレーションに登録する情報を割り当てる
作成した行動レコードのIDを使い、招集者以外の参加者に対してループ処理を行い、行動リレーションレコード作成用のリストを作成します。
6.行動リレーションレコードを作成する
5で作成したリストから行動リレーションレコードを作成します。
【ポイント】
単に行動レコード(Event)を作成するだけでは、作成者(招集者)のカレンダーにしか予定が表示されず、相手(被招集者)のスケジュールがブロックされなかったり、それぞれ独立した予定となってしまいます。
複数人のカレンダーに予定を反映させるには、「招集者」と「被招集者」のデータ構造を理解し、行動リレーション(EventRelation)レコードを作成する必要があります!
実際に行動レコード登録後に行動リレーションレコードを登録する例を紹介します。
主催者以外の行動リレーションレコードを作成するには、作成した行動レコードから、主催者以外のユーザーに絞り込みを行い、行動リレーションに登録する情報を割り当て、行動リレーションレコードの登録を行います。
<行動リレーションに登録する情報> ※ここが重要!
・行動ID:作成した被招集者の行動ID
・招待者:TRUE
・リレーションID:被招集者ユーザーID
まずは、チャットから起動され、実際にカレンダー登録を行う処理を作成します。
フロー種別は「テンプレートトリガープロンプトフロー」を選択し、以下の手順で作成します。
1.入力変数を作成する
チャットで取得するカレンダー登録に必要な項目を格納する入力変数を作成しておきます。
対象ユーザー名(招集者、被招集者)や件名、日付、会議室等、必要に応じて作成してください。
2.対象ユーザーレコードを取得する
チャットで入力された名前(テキスト)をもとに、Userオブジェクトを検索してIDを取得します。
3.行動レコードに登録する情報を割り当てる
チャットから受け取った件名、日時、および2で取得した対象ユーザーIDを割り当ててリストを作成します。
4.行動レコードを作成する
3で作成したリストから行動レコードを作成します。
5.被招集者に対して行動リレーションに登録する情報を割り当てる
作成した行動レコードのIDを使い、招集者以外の参加者に対してループ処理を行い、行動リレーションレコード作成用のリストを作成します。
6.行動リレーションレコードを作成する
5で作成したリストから行動リレーションレコードを作成します。
【ポイント】
単に行動レコード(Event)を作成するだけでは、作成者(招集者)のカレンダーにしか予定が表示されず、相手(被招集者)のスケジュールがブロックされなかったり、それぞれ独立した予定となってしまいます。
複数人のカレンダーに予定を反映させるには、「招集者」と「被招集者」のデータ構造を理解し、行動リレーション(EventRelation)レコードを作成する必要があります!
実際に行動レコード登録後に行動リレーションレコードを登録する例を紹介します。
主催者以外の行動リレーションレコードを作成するには、作成した行動レコードから、主催者以外のユーザーに絞り込みを行い、行動リレーションに登録する情報を割り当て、行動リレーションレコードの登録を行います。
<行動リレーションに登録する情報> ※ここが重要!
・行動ID:作成した被招集者の行動ID
・招待者:TRUE
・リレーションID:被招集者ユーザーID
エージェント作成
ユーザーがチャットできるためのエージェントを作成します。
続いて、作成したフローをAIが呼び出せるようにエージェントを設定します。 Agent Builderにて「Agentforce Employee Agent」や「Agent for Setup」などを選択し、以下の設定を行います。
1.エージェントの設定を行う
会話の中で AI エージェントがどのように動作し、自身をどのように表現するかを機能面に基づいて記載します。
記述例:「あなたは社内アシスタントです。ユーザーが希望する日時に基づき、適切なメンバーを含めたスケジュール登録を行う役割を担います。」
2.トピックを追加する
新しいトピック(例:「スケジュール管理」)を作成し、先ほど作成したフローを「アクション」として追加します。
トピックの設定を登録し、指示、ユーザー入力例を追加します。
3.トピックにアクションを追加する
先ほど作成したスケジュール登録用フローを呼び出すアクションを追加します。
アクション追加時には、フロー呼び出し時の入出力変数の値を設定できるため、忘れず設定しましょう。
【ポイント1】
トピック内の指示(Instruction)には、カレンダー登録においてAIが守るべきルールを記載します。ここがAIの「賢さ」を決めるポイントです。
例えば、下記に記載する<指示の記述例>のような指示を記載します。指示は、各環境、登録したい内容に応じて、テストを進める中で整備していきます。
(指示によって出力内容が変わりますので、いろいろ試してみてください)
指示の記述例:
・カレンダー登録に必要な件名、開始時間等の情報が不足している場合は、具体的な質問をしてユーザーに補足させてください。
・参加者の姓と名の間は半角スペースを入れて、「入力変数(参加者名)」に格納してください。
・XX人以上の登録を要求した場合は、上限を超えているため登録を拒否し、XX人以下で登録するよう依頼してください。(上限を設けたい場合)
【ポイント2】
エージェントアクション設定において、フローへの入力変数設定箇所に「ユーザーからデータを収集」のチェックボックスがあります。
・チェックあり: 選択肢や決まったフォーマットで入力をさせたい場合。
・チェックなし: フリーフォーマットで柔軟に入力させたい場合。
今回のように「会話の流れでよしなに汲み取ってほしい」場合は、あえてチェックを外すことで、自然な会話体験になることが多いです。ぜひ試してみてください!
(エージェントアクション設定の画面です)
続いて、作成したフローをAIが呼び出せるようにエージェントを設定します。 Agent Builderにて「Agentforce Employee Agent」や「Agent for Setup」などを選択し、以下の設定を行います。
1.エージェントの設定を行う
会話の中で AI エージェントがどのように動作し、自身をどのように表現するかを機能面に基づいて記載します。
記述例:「あなたは社内アシスタントです。ユーザーが希望する日時に基づき、適切なメンバーを含めたスケジュール登録を行う役割を担います。」
2.トピックを追加する
新しいトピック(例:「スケジュール管理」)を作成し、先ほど作成したフローを「アクション」として追加します。
トピックの設定を登録し、指示、ユーザー入力例を追加します。
3.トピックにアクションを追加する
先ほど作成したスケジュール登録用フローを呼び出すアクションを追加します。
アクション追加時には、フロー呼び出し時の入出力変数の値を設定できるため、忘れず設定しましょう。
【ポイント1】
トピック内の指示(Instruction)には、カレンダー登録においてAIが守るべきルールを記載します。ここがAIの「賢さ」を決めるポイントです。
例えば、下記に記載する<指示の記述例>のような指示を記載します。指示は、各環境、登録したい内容に応じて、テストを進める中で整備していきます。
(指示によって出力内容が変わりますので、いろいろ試してみてください)
指示の記述例:
・カレンダー登録に必要な件名、開始時間等の情報が不足している場合は、具体的な質問をしてユーザーに補足させてください。
・参加者の姓と名の間は半角スペースを入れて、「入力変数(参加者名)」に格納してください。
・XX人以上の登録を要求した場合は、上限を超えているため登録を拒否し、XX人以下で登録するよう依頼してください。(上限を設けたい場合)
【ポイント2】
エージェントアクション設定において、フローへの入力変数設定箇所に「ユーザーからデータを収集」のチェックボックスがあります。
・チェックあり: 選択肢や決まったフォーマットで入力をさせたい場合。
・チェックなし: フリーフォーマットで柔軟に入力させたい場合。
今回のように「会話の流れでよしなに汲み取ってほしい」場合は、あえてチェックを外すことで、自然な会話体験になることが多いです。ぜひ試してみてください!
(エージェントアクション設定の画面です)
まとめ
Agentforceは「ツール」ではなく、頼れる「チームメンバー」のような存在になると思います。
まずはスケジュール登録のような小さなタスクから「AIに行動させる」ことを試してみませんか?
今回紹介した機能は社内活用の第一歩ですが、これを応用することで、以下のような未来もすぐに実現できると思います。
・Experience Cloudとの連携:
お客様自身がエージェントと会話してアポイントを取る(24時間365日の予約自動化)。
・空き時間の「提案」機能:
「来週、私が空いている時間を3つ教えて」と問いかけ、参照した情報を元にそのまま予約する。
ぜひ、Agentforceを活用して、新しい業務フローの構築にチャレンジしてみてください!
まずはスケジュール登録のような小さなタスクから「AIに行動させる」ことを試してみませんか?
今回紹介した機能は社内活用の第一歩ですが、これを応用することで、以下のような未来もすぐに実現できると思います。
・Experience Cloudとの連携:
お客様自身がエージェントと会話してアポイントを取る(24時間365日の予約自動化)。
・空き時間の「提案」機能:
「来週、私が空いている時間を3つ教えて」と問いかけ、参照した情報を元にそのまま予約する。
ぜひ、Agentforceを活用して、新しい業務フローの構築にチャレンジしてみてください!