【Microsoft×生成AI連載】シリーズの記事です。
本記事では、前回紹介したPower Automateで使用できる様々なCopilot機能を利用してフローを作成してみます。
※ Power Automateで使用できるCopilotについては、以下の記事の参照をお願いします。
- 【Power Platform】Microsoft Power AutomateでMicrosoft Copilotを使ってみた - JBS Tech Blog
- 【Power Platform】Microsoft Power AutomateでMicrosoft Copilotを使ってみた 2 - JBS Tech Blog
- これまでの連載
- シナリオ 1 - 経費承認
- シナリオ 2 - 毎朝に日経平均と株価を取得してTeams投稿
- 利用シーン・メリット/デメリット・注意点
- まとめ
- おまけ(Copilot Chatによる本記事の要約)
これまでの連載
これまでの連載記事一覧はこちらの記事にまとめておりますので、過去の連載を確認されたい方はこちらの記載をご参照ください。
シナリオ 1 - 経費承認
シナリオ
ユーザーがSharePointリストに登録した経費の金額が高い場合、Teamsにアダプティブカードを投稿して承認をもらいます。
そして、その結果をSharePointリストに更新し、ユーザーに通知するフローを作成します。
事前準備
以下のようなリストを作成しました。
- タイトル(Title):明細のタイトル、1行テキスト
- 詳細(Detail):明細の詳細、1行テキスト
- 金額(Amount):金額、通貨
- 申請者(Applicant):申請者、ユーザーまたはグループ
- 承認(Approval):承認・却下、選択肢
- コメント(Comment):却下の理由、複数行テキスト
フローの作成
全体の形の作成
まず、フロー全体の形をCopilotを使って作成してみました。
以下は使用したプロンプトです。
SharePoint のリスト『ExpenseList』に新しく項目が作成されたときにトリガーするフローを作成します。
新しい項目の「金額」列が 50,000 円以上なら、Teamsのチャネル『Expense』へアダプティブカードを投稿して、「承認」か「却下」の結果が届くことを待機します。
アダプティブカードのJSONはフローを作成してから作るので、まずは空欄で大丈夫です。
アダプティブカードからの応答でリストを更新して、リストの申請者列にあるユーザーにメールで通知するフローを終了する。
以下のようにCopilotがフロー全体の形を作成しましたので、「保持して続行する」をクリックして、次の段階に進みます。
「フローを作成」をクリックして、フローを作成します。
以下のようにフローの全体的な形が作成されました。
パラメーターの設定
フロー内の各アクションのパラメーターの設定に対してはCopilotでは少し難しかったので、パラメーターの設定は手動で実施しました。
まず、トリガーの「項目が作成されたとき」ですが、プロンプトではリスト名しか指定しなかったので、「サイトのアドレス」パラメーターは空欄になっていることを確認できます。
「サイトのアドレス」を指定し、記載されている「リスト名」の内容を削除して、再度ドロップダウンから選択して設定します。
続いて、「金額」が 「50,000 円以上」を判断する条件ですが、以下のように値が設定されていました。
実際の動的なコンテンツの値とは違うものなので、修正しました。
続いてて、アダプティブカードをTeamsに投稿します。プロンプトでアダプティブカードは空欄にしていたので、パラメーターが入っていない状態です。
メッセージのJSONをCopilotを使用して作成します。
使用したプロンプト
以下の内容のアダプティブカードのJSONを作成して。
経費の確認をお願いします。
タイトル:{トリガーからの動的なコンテンツ「タイトル」}
詳細:{トリガーからの動的なコンテンツ「詳細」}
申請者:{トリガーからの動的なコンテンツ「申請者 DisplayName」}
金額:{トリガーからの動的なコンテンツ「金額」}
そして、コメント入力欄と「承認」 / 「却下」のボタン
作成されたJSONをコピーしてメッセージに貼り付けて、動的なコンテンツの部分だけ修正します。他のパラメーターも設定します。
次のアクションですが、アダプティブカードからの応答が「承認」だけではなく、「却下」の場合でもリストの項目の更新は行われる必要があるので、アクションの位置を修正します。
「却下」の場合もメールを送信する必要があり、また「承認」と「却下」のメール本文の内容を分けたいので、「メールの送信」アクションを「いいえ」の場合にも追加しました。
「項目の更新」アクションの各パラメーターも「ID」と「リスト名」しか入っていない状態でした。
「サイトアドレス」、「リスト名」、「Id」を修正し、更新対象の「承認」列と「コメント」列に対してもパラメーターを設定しました。
「承認」か「却下」かの条件も空の状態でしたので、修正しました。
最後に、「メールの送信」アクションの宛先、件名、本文を修正しました。
フローを保存しようとしたら、エラーがあったため、保存ができませんでした。
「サポートが必要です」をクリックして、Copilotからエラーの原因と解決方法を確認します。
Copilotの説明通りに、「アダプティブカードを投稿して応答を待機する」アクションのコードビューを確認すると、不要なコードがありました。
ただ、コードビューからは削除がず、パラメーターにもその値が見つからなかったので、アクションを作り直しました。
テスト
以下のようにリストにアイテムを追加して、フローを動作させてみました。
Teamsにアダプティブカードが投稿されたので、「承認です。」のコメントを記載して「承認」ボタンを押しました。
リストの更新ができたことを確認できました。
メール送信も確認できました。
シナリオ 2 - 毎朝に日経平均と株価を取得してTeams投稿
シナリオ
毎朝9時に前日のマーケット終了時の日経平均と株価を取得して、Teamsに投稿するフローを作成します。
前提条件
「HTTP」アクションを利用するには「Power Automate プレミアム」ライセンスが必要です。
フローの作成
全体の形の作成
まず、フロー全体の形をCopilotを使って作成してみました。
使用したプロンプト
毎日朝9時にHTTP要求を送信して、「日経平均」と「日本ビジネスシステムズ株式会社」の株価の値を取得して、その内容をまとめてTeamsに投稿するフローを作成したい。
パラメーターはフローを作成しながら決めるから、全体の形だけ作成して。
Copilotが以下のように2つのフローを提案してくれましたが、今回は2番目の提案の方が望む形に近そうだったので、2番目のフローを選択して「保持して続行する」をクリックしました。
「フローを作成」をクリックして、フローを作成します。
以下のようにフローの全体的な形が作成されました。
パラメーターの設定
まず、トリガーの「Recurrence」でタイムゾーンが空の状態でしたので、日本時間に変更しました。
続きまして、「日経平均」と「JBS」の株価を取得するためのHTTP要求です。
URIとMethodが空になっているので、Copilotに聞きました。
別のテスト用のフローを作成して、HTTP要求が問題なく動作するか検証して、問題なく値を取得できることを確認しました。
「HTTP」アクションのURIとMethodを設定しました。
同じ方法でJBSの株価取得のURIとMethodをCopilotに聞きました。
その値をHTTP 2に設定しました。
HTTP要求を実行すると、返却値としてJSONが返されます。
左の出力の部分を確認すると、JSON内の各フィールドと値を確認することができます。その中で、今回必要な値は前日のマーケット終了時の株価の「chart.result.0.meta.previousClose」になります。
CopilotにJSONから「chart.result.0.meta.previousClose」値だけ選択する方法を聞きました。
Copilotが教えてくれた式を使用して、メッセージ投稿アクションの本文を作成しました。
Teams投稿メッセージに日付を含めるため、前日の日付を取得するPower Fx式をCopilotを使用して作成しました。Power Fx式を作成するには、「Copilot で式を作成する」をクリックします。
プロンプトを入力し、「式を作成する」をクリックすると、CopilotがPower Fx式を作成します。作成された式を使用するために「OK」をクリックします。
「追加」をクリックして、式をアクションに入れます。
アクションに追加された式を確認します。
テスト
フローの「テスト」ボタンをクリックして実行しました。
期待値通り、日付を含めた件名と、日経平均およびJBSの株価がTeamsに投稿されました。
利用シーン・メリット/デメリット・注意点
利用シーン
本記事の内容のように、Power Automateフローを作成するときに、Copilotに協力してもらいながらフローを作成することができます。
メリット/デメリット
メリット
- アダプティブカードのJSONなど作成が難しい値を簡単に作成できる。
- エラーが発生した際にCopilotからすぐエラーの原因と解決方法の確認ができる。
デメリット
- 動的なコンテンツなど、パラメーターの設定はだ手動で設定した方が精度が高い。
- Copilotが追加したアクションに入っていたコードが原因でエラーになったので、フローを保存する際にもう一度確認が必要
注意点
- Copilotからの提案に対しては、必ず動作確認やパラメーターの見直しを行う必要がある。
- アクションのパラメーター設定や条件分岐の設定などは、まだ完全に自動化することはできなかった。
まとめ
本記事では、前回紹介したPower AutomateでのCopilot機能を利用して、実業務で役立ちそうなフローを作成してみました。
Copilotを活用することで、全体の形の作成、細かいパラメーターの作成、エラー解決など、Power Automateのフロー作成が大幅に効率化できることを体感できました。
ただし、動的なコンテンツのパラメーター設定や条件分岐などはまだ手動調整が必要です。Copilotを「たたき台」と「助力者」として使い、最後に必ず動作確認を行うことが重要なポイントです。
おまけ(Copilot Chatによる本記事の要約)
Copilotを活用することで、Power Automateのフロー作成は大幅に効率化できます。Copilotは、フロー全体の骨組みや複雑なアダプティブカードのJSON、Power Fx式の生成、さらにはエラー原因の特定と解決策の提示までサポートしてくれるため、初心者でも高度な自動化を短時間で構築できます。一方で、動的コンテンツの設定や条件分岐、パラメーターの細かい調整は依然として手動で行う必要があり、Copilotが生成したアクションに不要なコードが含まれる場合もあるため、最終的な確認とテストは必須です。したがって、Copilotは完全自動化のツールというよりも、効率的な「たたき台」や「助力者」として活用し、最終的な品質を担保するために人の判断を組み合わせることが重要です。