初級編の最後は、これまで学んだ エンティティ・条件分岐・Power Fx を使って、 “人間らしく柔軟に応答するエージェント” を作ってみます。
今回のテーマは 旅行相談エージェント。
- 旅行先(国内 / 海外)
- 海外なら地域(アメリカ / ヨーロッパ / 東南アジア)
- それぞれの担当者を案内
- さらに、会話の最初に 時間帯に応じたあいさつを自動生成
という、実務でも使えるミニアプリを作ります。
目次
1. Power Fx で「おはようございます / こんにちは」を自動切り替え
まず、会話の開始トピックに あいさつ生成 を入れます。
そのためにPower Fxという仕組みを使います
こちらはエクセルソフトの関数みたいなものだと思ってもらえればいいです
今回の記事ではいくつかのPower Fxを組み合わせます
現在時刻
Now():現在時刻を取得
時刻調整
DateAdd(日時,増減時間,増減単位:年,月,時間,分,秒など):日時を増減させて調整する
*取得した現在時刻はタイムゾーンの調整が必要
IF式(条件分岐式)
If:条件式
上記を組み合わせて人間らしく回答時刻によってあいさつを変えます
これだけで一気に“人間味”が出る のが Copilot Studio の面白いところです。
2. 会話の開始トピックだけで条件分岐を完結させる
今回は、あえて 会話の開始トピックだけで全分岐を完結 させます。
理由はシンプルで:
- 初級編の締めとして「1トピックでここまでできる」を示したい
- トピック分割は中級編で扱う予定
- 初心者にとって“1画面で完結する”のは理解しやすい
よって今回のエージェントは1トピックで完結させます
3. 旅行先を聞いて、担当者を案内する
ユーザーに聞くのはたった 1 つ。
「どちらの地域をご希望ですか?」
選択肢は:
- 海外
- 国内
海外を選んだ場合はさらに:
- アメリカ
- ヨーロッパ
- 東南アジア
を選んでもらいます。
その結果に応じて、担当者名を返します。
4. 担当者を返すロジック
担当者は以下のように割り当てます。
- アメリカ → 担当者1
- ヨーロッパ → 担当者2
- 東南アジア → 担当者3
- 国内 → 担当者4

担当者の振り分けには、フロー内で以下の画像のような条件式を使用します

5.実際にエージェントを作成する
必要なデータおよびエンティティを分析する
今回のエージェントは次の事を行います
- 現在日時を取得して、日時に応じた挨拶をユーザーにする
- 希望は国内旅行か海外旅行を確認する
- 海外旅行を希望の場合は地区を確認する
- 旅行地区に応じて担当者をユーザーに連絡する
よってエンティティについては下の2つが必要になります
- 国内外(国内旅行、海外旅行)
- 海外旅行先(アメリカ、ヨーロッパ、東南アジア)
現在日時とあいさつはPower Fxで設定します
エージェントを準備
まず最初に、画面一番左のエージェントマークをクリックします

エージェントの画面が開いたら「空のエージェントを作成する」をクリックします
今回は「旅行先別・担当者確認用エージェント」というエージェントを作成します
*名前はなんでも構わないです

もし、次に進まないようであれば上の画像の「エージェント設定」をクリックし、スキーマ名を英字で設定します
エンティティを設定する
今回は2つともエンティティの設定画面から設定します
国内外

海外旅行先

今回はシノニムを設定せず、質問カード上で選択肢を提供します
挨拶の設定
今回は敢えて、わかりやすくするためにエクセルでよく見られるような関数の中に関数を入れるようなネストはしません
ですので、数段階にわかれます
①現在日時の取得
②タイムゾーンの調整
③現在時間(時間のみ)の取得
④If関数を使用して10時前は「おはようございます」、それ以降は「こんにちは」を表示
それではまずは会話の開始トピックをシステムトピックから開きましょう!

既に存在している「メッセージを送信」カードは消しておきましょう

①現在日時の取得
ここからまず①現在日時を取得しましょう、そして「メッセージを送信」カードで確認しましょう
トリガーの下の+ボタンをクリックします

選択メニューが開きますので「変数管理」から「変数値を設定する」カードを選択します

カードを表示したら変数を新たに設定します

こちらには「新規作成」ボタンから作成します

ここで変数:取得現在日時を設定します

ここからいよいよPower Fxを使用します

上の画像のように三点リーダーから計算式をクリックすると、Power Fxが使用できます

Now()
これで変数に現在時刻を設定できます

上の画像のように「メッセージを送信」カードの変数ボタン(黄色の箇所)から設定した変数を使用します

メッセージ送信カードに変数を設定したら、保存ボタンを押した後に+ボタンから新しいセッションを開始しましょう

新しいセッションを開始すると下の画像のように現在時刻が表示されます

実際には9時間ほどずれています
ですので②で調整する必要があります

②タイムゾーンの調整
上の画像のように①で行ったように「メッセージ送信」ボタンの下の+ボタンから「変数値を設定する」カードを設定します
そして変数:調整日時を設定します

そして上の画像のように「計算式」からPower Fxを使用します
DateAdd関数を使用して、現在日時に540分を足します

上の画像のように「Topic.」と入力すると、既に取得した変数:取得現在日時を使用できます

DateAdd(Topic.取得現在日時,540,TimeUnit.Minutes)
上の画像のようにDateAdd関数の第二引数で540を設定し、第三引数で540の単位(分)を設定します

Power Fxを設定したらまたテストしましょう

これで現在日時のタイムゾーンを調整できました
③現在時間(時間のみ)の取得
タイムゾーンを調整した現在日時を取得できたので、時間だけ抜き出します

Hour(Topic.調整日時)
上の画像のようにHour関数を使用します
それでは①②と同じようにテストしてみます

これで時間のみを抽出できました
④If関数を使用して10時前は「おはようございます」、それ以降は「こんにちは」を表示
今回は質問カードを使用します

上の画像のように関数マーク(黄色の箇所)からPower Fxを使用できます

If(Topic.取得時間<10,"おはようございます","こんにちは")
国内外を選択
④で設定した質問カードに質問とエンティティと変数の設定を続けましょう!

上記の画像の「特定:エンティティ」には「国内外」を設定します
変数は「選択国内外」を設定しました
下方向に分岐を設定
ここで前述のチャートフロー図を確認しましょう

まずは海外旅行と国内旅行で分岐します
ですので、ここから分岐を追加します

上のGIF画像のように、+ボタンから「条件を追加する」をクリックすると下にフローが分かれます

上の画像の黄色の箇所、「条件」という箇所をクリックして、名称を「海外」に変えておきます
そして、下の画像のように条件式を設定します

ユーザーが一つ手前で選択した値が格納された変数が「海外旅行」と一緒かどうか?という条件式です

これでユーザーが海外旅行を選択した場合は、左の線で処理されます
横方向に分岐を設定
ここからチャートフロー図通りに、海外旅行の下に「アメリカ」「ヨーロッパ」「東南アジア」の3つの線を作成します
下の画像のように「海外」の下に「条件を追加する」カードを追加します

これで海外のカードの下にもう一つ階層ができました

上の画像では海外の下に2つしか線がありせん
ここから横の分岐を設定します
こちらは条件カードの「三転リーダー」から行います

3点リーダーから「新しい条件を挿入する」をクリックすれば海外カードの下は線が3つになります

各線の条件カードには「旅行先名」を割り当てましょう
そして各線に担当者をユーザーに連絡する「メッセージを送信」カードを設定します

これで海外ブロックは完成です

国内も同様です

これで旅行先に応じて担当者が連絡されるようになります

まとめ
この記事では、Copilot Studio 初級編の締めとして 「条件分岐 × Power Fx × 質問カード」だけで作る、柔軟な旅行相談エージェント を紹介しました。
1. Power Fx で“人間らしいあいさつ”を実現
会話の開始トピックに Power Fx を 1 行入れるだけで、 時間帯に応じて「おはようございます / こんにちは」を自動切り替え。 AI の応答が一気に自然になる。
2. 条件分岐は「会話の開始トピック」だけで完結
初級編ではあえてトピックを分けず、 1 つのトピック内で国内外 → 海外地域 → 担当者 までを処理。 Copilot Studio の条件カードだけで “縦方向・横方向の分岐” を作る方法を学びました
3. 旅行先に応じて担当者を案内するミニアプリ
ユーザーに旅行先を聞き、
- アメリカ
- ヨーロッパ
- 東南アジア
- 国内
のいずれかに応じて担当者を返す。
4. 初級編で学んだ要素だけで“実用的なエージェント”が完成
今回使ったのは以下の 3 つだけ。
- 質問カード
- 条件分岐
- Power Fx(あいさつのみ)
これだけで、実務でも使える 「能動的で、人間らしいエージェント」 を作れることが分かる











コメントを残す