松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第36回
Copilotが生成した文章をファイル保存、自動でメール送信させるワークフローを作る
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう
2024年04月03日 11時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。
最近ではさまざまな生成AIサービスが登場していますが、検索サービスの「Microsoft Bing」と統合されたAIアシスタント「Copilot」を活用している方も多いのではないでしょうか? 無料で手軽に使えるので便利です。
さて、このCopilotが生成した文章は、ブラウザの画面上でコピーするだけでなく、ファイルとしてローカルPCにダウンロードすることができます。Word、PDF、テキストのいずれかのファイル形式で、ローカルPCの「Downloads」フォルダー※注に保存されます。
※注:ブラウザが標準設定の場合。ダウンロード先フォルダー設定を変更している場合は、以下の内容を適宜読み替えてください。
このCopilotとPower Automateを組み合わせれば、たとえばCopilotが考えた(生成した)メールの文面を、Power Automateで自動送信することが可能になりそうです。ただし、Power Automateのクラウドフローは、基本的にローカルPC上にあるファイルは操作できません。ということは、メールの文面を変えるたびにCopilotからテキストをコピーして、Power Automateのフローに貼り付ける(フローを修正する)必要があるのでしょうか?
今回はそのような無駄な作業を発生させず、CopilotからローカルPCにダウンロードしたテキストファイルの内容を、Power Automateのクラウドフローが直接読み込んで自動実行する方法をご紹介します。動作検証的な内容ですが、こういう使い方ができることを知っておくとほかにも応用が効くと思います。
1. 事前準備
上述したとおり、Power Automateのクラウドフローは、基本的にはローカルPCにあるファイルを操作できません。ただし、ローカルPCに「オンプレミス データ ゲートウェイ」をインストールし、クラウドフローで「ファイルシステム」コネクタを利用すれば、それが可能になります。
Power Automateでフローの作成を始める前に、ローカルPC側の準備を行います。
1-1. 「オンプレミス データ ゲートウェイ」をインストールする
オンプレミス データ ゲートウェイとは、オンプレミスとクラウドを仲介する「橋渡し」的な存在のソフトウェアです。以下の公式ドキュメントにある「標準ゲートウェイをダウンロードおよびインストールする」の手順に従って、ローカルPCにインストールしてください。
なおオンプレミス データ ゲートウェイは、インストールしたマシンだけでなく、同じネットワーク(LAN)にあるPC/サーバーとクラウドの通信も仲介できます。そのため、インストールの推奨環境は「8コアCPU、8GBメモリ」などと高いスペックになっていますが、今回はローカルPC 1台だけが通信する想定ですので、そこまでスペックが高くなくても大丈夫です。
●オンプレミス データ ゲートウェイをインストールする(Microsoft Learn)
2. 「ファイルシステム」コネクタとは
Power Automateの「ファイルシステム」コネクタは、オンプレミス データ ゲートウェイを介してローカルPCやネットワーク上のコンピューターに接続し、ファイルの読み取りや書き込みを行うことができるコネクタです。設定方法は後述します。
3. フロー全体図
今回、Power Automateで作成するワークフローの全体像は上図のとおりです。なお今回もクラシックデザイナーの画面で説明しますが、モダンデザイナーでも同じようにフローを作成できます。皆さんが使いやすいほうで作業してください。
このフローは、ローカルPCの指定フォルダーにテキストファイルが作成されたら、それをトリガーとして自動実行されます。実行すると、テキストファイルの内容を読み取ってメールとして送信します。
3-1. トリガーの設定
フローのトリガーには「ファイルシステム」コネクタを利用します。上述のとおり、ローカルPCの指定フォルダーにファイルが作成されたらフローを実行するよう設定を行います。
(1)上部タブの「標準」をクリック
(2)検索窓に「file」と入力
(3)「File system」コネクタを選択し、トリガー一覧が表示されたら「File System」をクリック
トリガーとして「ファイルが作成されたとき(プロパティのみ)」を選択します。
続いて、接続先のローカルPC(正確にはオンプレミス データ ゲートウェイ)の情報や、接続時の認証情報(ユーザー名とパスワード)の設定を行います。
(1)接続名:インストールしたゲートウェイと同じ名前など、わかりやすい名前を入力する。
(2)Root folder:監視対象フォルダーが含まれるルートフォルダー(階層が最上位のフォルダー)を指定。今回は「C:\Users\○○○○\Downloads」フォルダーを監視対象とするので「C:\」を入力。
(3)Authentication Type:「Windows」を選択
(4)Username:Windowsにログオンする際のドメイン名とユーザー名を「ドメイン名\ユーザー名」形式で入力。
(5)Password:Windowsにログインする際のパスワードを入力。
上の「(4)Username」と「(5)Password」で入力する内容は、Power Automateのログインアカウントではなく、ローカルPCのログオンアカウントです。間違えないよう注意してください。
また、「(4)Username」でWindowsにログオンする際のドメイン名とユーザー名がわからない場合は、ローカルPCでコマンドプロンプトを起動し、「whoami」コマンドを入力すると表示されます。
Power AutomateからローカルPCへの接続ができると、上図のような表示に切り替わりますので、どのフォルダーにファイルが作成されたときに実行するか(監視対象フォルダー)を設定します。
赤枠内のフォルダーアイコンをクリックし、フォルダーを選択します。今回はユーザーフォルダーにある「Downloads」フォルダー(パスは「C:\Users\○○○○\Downloads」)を指定しました。
以上でトリガーの設定は終了です。
3-2. アクションの設定:ファイル コンテンツの取得
続いて、ワークフロー実行時のアクションを作成していきます。まずは、先ほどトリガーで指定したフォルダーから、新規作成されたファイルを取得します。
ファイルの取得も「File System」コネクタで行います。先ほどと同じように、検索窓に「file」と入力して「File System」コネクタを選択します。表示されるアクションの一覧から「ファイル コンテンツの取得」をクリックします。
「ファイル」には取得するファイルのパスを入力しますが、今回は「ファイルが作成されたとき (プロパティのみ)」トリガー時に動的なコンテンツとして生成される「Path」を設定します。
3-3. アクションの設定:作成
続いて、取得したファイルの内容(テキスト)を成形します。
今回は、Copilotが生成した文章を「テキストファイル」としてダウンロードしています。このファイルをメモ帳やテキストエディタで開いてみると、上図のように冒頭に「## Copilot」という文字が入っています。
このままだとメール本文に使えませんので、「## Copilot」の部分を削除するアクションを追加します。
ここでは「データ操作」コネクタの「作成」アクションを使います。
(1)上部タブの「組み込み」をクリック
(2)「データ操作」をクリック
表示されるアクション一覧から「作成」をクリックします。
「入力」フィールドをクリックし、「式」を選択したうえで、次の文字列をコピー&ペーストします。これはreplace関数を使って、取得したファイル内容(テキスト)に含まれる「## Copilot」という文字列を削除する内容です。
replace(decodeUriComponent(outputs('ファイル_コンテンツの取得')?['body']),'## Copilot','')
3-4. アクションの設定:作成2
取得したファイルの内容(テキスト)に対して、もうひとつ成形を付け加えます。Copilotが生成した文章に改行が入っている場合に、メールの本文でもそのまま改行されるように加工します。
この成形処理なしで取得したテキストをメール本文に挿入すると、改行されずに1行のテキストとして出力されてしまいます。なぜでしょうか。
ワークフローを実行して、先ほど3-3.で設定した「作成」アクションの出力を確認すると、改行位置には「\n」という記号が入っています。これは「改行文字」と呼ばれる特殊な記号です。ただし、送信するメールの本文はHTML形式で書くようになっているため、「\n」が入っていても表示されるテキストは改行されません。そこで、HTMLの改行タグである「<br>」に置換する処理を行います。
改行文字の置換処理は、「3-3. アクションの設定:作成」と同じく「データ操作」コネクタの「作成」アクションで行います。先ほどと同じように「作成」アクションを追加します(2つめの「作成」アクションなので「作成2」という名前が付きます)。
「入力」フィールドをクリックし、「式」として以下の内容をコピー&ペーストします。
replace(outputs('作成'),decodeUriComponent('%0A'),'<br>')
先ほどと同じように、replace関数を使って改行文字「\n」を「<br>」に置き換えています。「%0A」は改行文字「\n」のことです。
3-5. アクションの設定:メールの送信(V2)
最後に、取得したテキストを本文に書き込んでメール送信するアクションを追加します。
検索窓に「Outlook」と入力し、「Office 365 Outlook」コネクタをクリックします。アクション一覧から「メールの送信(V2)」アクションをクリックします。設定項目はそれぞれ次のように設定します。
(1)宛先:メール送信先のメールアドレスを入力
(2)件名:メールの件名を入力(今回は「Copilotからの返答」としました)
(3)本文:動的なコンテンツ「作成2」の「出力」を選択
前述のとおり(3)の本文はHTML形式で書くようになっています。先ほど改行文字を「<br>」に置き換えたので、Copilotが返答したとおりに改行されたテキストが、メール本文として送信されるわけです。
以上でワークフローは完成です! 最後に忘れず「保存」をクリックして、ワークフローを保存しましょう。
4. 実行結果
それでは完成したワークフローを実行してみましょう。
まずはCopilotにアクセスして、文章を生成してもらいます。プロンプトに「適宜、改行を入れてください」と入れておくと、良い感じに改行も入れてくれます。
次に、生成された文章をテキストファイルとしてダウンロードします。ファイルは自動的にローカルPCの「Downloads」フォルダーに保存されるので、今回作成したワークフローが起動し、成形されたCopilotのテキストが自動でメール送信されます。
上図のとおり、メールが送信されました。
なお今回のワークフローは、「Downloads」フォルダーに新規ファイルが作成(ダウンロード)されるたびに自動で実行されます。無関係なファイルをダウンロードした場合でも起動してしまい、テキストファイルの内容がメール送信されたり、テキスト以外のファイルを処理しようとしてエラーが発生したりしまうので、動作を確認したらワークフローは「停止」しておくことをおすすめします。
最後に
今回ご紹介してきたように、オンプレミス データ ゲートウェイと「ファイルシステム」コネクタを利用することで、ローカルPCにあるファイルのデータとクラウドワークフローをつなげることができます。
ローカルPC上のExcelなどを操作するためにはデスクトップフロー(Power Automate for desktop)を使う必要がありますが、テキストファイルはクラウドフローに読み込ませるだけで処理が可能です。今回はCopilotの生成文章を題材としましたが、ほかにも応用できることはありそうですので、使い方を知っておくと便利です。ぜひ活用してみてください。
この連載の記事
-
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 - この連載の一覧へ