Copilot Studioでチャットボットを作っていて、ファイルがアップロードされた時だけ特定の処理を実行したいと思ったことはありませんか?実は、トピックの設定を少し工夫するだけで、ファイルアップロード時のみ動作する仕組みを作ることが可能です。
今回は、Copilot Studioでファイルがアップロードされたときに実行されるトピックを作成する方法をご紹介します。
空のトピックを作成する
まずは、Copilot Studioで空のトピックを作成するところから始めましょう。

トリガーを「活動の発生時」に変更
トピックトリガーを、デフォルトの「エージェントが選択するもの」から活動の発生時に変更します。

「活動の発生時」というのは、メッセージが送られた時など、チャット内で何らかのアクションが発生したときに実行されるトリガーです。
ただし、このままではこのトピックは何かをするたびに実行されてしまいます。そこで、ファイルがアップロードされたときだけ動作するように条件を追加していきます。
ファイルアップロードを判定する条件式
条件に対して、Power FXの計算式で式を記載します。

Not(IsEmpty(System.Activity.Attachments))
ビルダーから計算式に切り替えて計算式を入力するところがポイントです。
IsEmpty関数でSystem.Activity.Attachmentsをチェックすることで、ファイルがアップロードされた活動かどうかを判定することができます。
ここで重要なのは、クラウドフローの実行条件と同様に、この条件がtrueの時だけトピックが実行される点です。そのため、Not関数でIsEmpty関数の結果を逆にする必要があります。
アップロードされたファイル名を表示する
トピックが実行されているかわかりやすくするために、アップロードされたファイル名をメッセージで送信するようにしましょう。
Copilot Studioではさまざまな方法でファイル名を表示することができますが、今回はConcat関数でファイル名をスラッシュ区切りで表示するような式を記載してみます。

Concat(System.Activity.Attachments,Name,"/")
動作確認してみよう
トピックに適当な名前を付けて保存をして、右ペインのテスト機能からテストをしてみましょう。

ファイルをアップロードすると、正しくトピックが実行されていることが確認できますね。
まとめ:さまざまなファイル操作への応用
今回はファイル名を表示するだけのシンプルな実装ですが、この仕組みを応用すれば、例えばアップロードされたファイルをSharePointやOneDriveにアップロードしたり、AI Builderで画像認識やドキュメント処理を行ったり、クラウドフローに渡して複雑な処理を実行したりと、さまざまなファイル操作シナリオに活用することが可能です。
ファイルアップロードをトリガーにすることで、Copilot Studioでの自動化の幅がぐっと広がります。ぜひ試してみてください。


コメント