Power Automate 「Gmail の添付ファイルを Google Drive に保存する」テンプレートの利用方法

2020年8月31日

Power Automateには多くのテンプレートが存在するため

これを探して流用すると効率的にPower Automateを利用できます。

この記事ではGmaiの添付ファイルを特定のGoogleDriveのディレクトリにコピーする

テンプレートの使い方と同名の添付ファイルが発生した際のエラーの対処法、

OneDriveにも保存する応用方法を紹介します。

前提条件

「Microsoft 365 Business」の「Standard」か「Premium」の契約が必要です。

手順

Power Automateの画面の「テンプレート」から

「Gmail の添付ファイルを Google Drive に保存する」を選択します。

かなり奥にあるため探すより検索する方が早いでしょう。

Power Automateの画面の「テンプレート」から「Gmail の添付ファイルを Google Drive に保存する」を選択

下のような画面が表示されます。

接続先の+をクリックするとGoogleのログインが画面が表示されるので

このフローを利用するアカウントでログインします。

GmailとGoogleドライブの両方に設定します。(別アカウントでも構いません)

フローの接続先設定

接続先の設定が終わると「再試行」が「フローの作成」に変化するのでクリックします。

「フローの作成」をクリック

次のような画面になるため「編集」をクリックして、フローを変更します。

(このテンプレートはフローを作成した時点で動作します)

「編集」をクリック

フローが表示されるので「When a new email arrives」をクリックして開きます。

「When a new email arrives」をクリック

初期設定のままでも動作しますが「宛先」や「重要度」、「件名」を指定すると

添付ファイルをコピーするメールの条件を指定できます。

「添付ファイル」と「添付ファイルを含める」は両方、「はい」です。

「When a new email arrives」の詳細指定

次に「Apply to each attachment」をクリックして開きます。

「Apply to each attachment」をクリック

次に「Create File」をクリックして開きます。

「Create File」をクリック

「フォルダーのパス」のアイコンをクリックすると、Google Driveのフォルダを選択可能です。

存在しないフォルダを指定した場合、自動で作成されるため初期状態でも動作します。

「フォルダーのパス」のアイコンをクリック

「保存」をクリックすると変更が反映されます。

「保存」をクリック

この状態でGmailが受信されるたびにフローが実行され

添付ファイルがあれば指定のディレクトリにコピーされます。

同名の添付ファイルがあるとエラーしてしまうので、事前にチェックして削除するか、

保存ファイル名に動的コンテンツのタイムスタンプを先頭に付けましょう。

ただしクラウドサーバの待ち時間や連続受信の制御などが入るため

メール受信して即実行されるかは限りません。

もし動作状況が気になるなら実行履歴を確認します。

フローの停止削除を行い場合はマイフローより行います。

同じ添付ファイル名への対処方法

テンプレートのままでは同名の添付ファイルが発生すると

Googleドライブでエラーが発生します。

古いファイルが残るままで良ければそのままで良いですが、

新しい方のファイルを残したい場合は対処が必要です。

それにはファイル名を加工して全て残す方法と、

上書きして新しいファイルのみ残す方法があります。

ファイル名を加工して全て残す場合

新しいファイルと古いファイルも全て残したい場合は、この方法を使います。

それにはGoogleドライブの「Create File」のファイル名の先頭に

動的なコンテンツの「メッセージID」(メールにユニークに振られる番号)か

または「受信日時」を追加します。

ファイル名の先頭に動的なコンテンツの「メッセージID」(メールにユニークに振られる番号)を設定

これにより同名ファイル名が来ても全て保存されます。

上書きして新しいファイルのみ残す場合

最近のファイルのみ残したい場合は、この方法を使います。

それにはまずGoogleドライブの「Create File」を削除します。

Googleドライブの「Create File」を削除

「アクションの追加」をクリックします。

「アクションの追加」をクリック

「Google Drive」コネクタより「フォルダー内のファイルのリスト」を選択します。

「Google Drive」コネクタより「フォルダー内のファイルのリスト」を選択

添付ファイルの保存先のフォルダーを指定します。

添付ファイルの保存先のフォルダーを指定

次にアクションの追加で「コントロール」より「Apply to each」を選択します。

「コントロール」より「Apply to each」を選択

「以下の手順から出力を選択」に「Body(本文)」を指定します。

「以下の手順から出力を選択」に「Body(本文)」を指定

「アクションを追加」し「コントロール」より「条件」を指定します。

「コントロール」より「条件」

条件の左側と右側にGoogleドライブの「Name」、Gmailの「添付ファイル 名前」を指定します。

Googleドライブの「Name」、Gmailの「添付ファイル 名前」を指定

「はいの場合」の中にアクションを追加しGoogleドライブの「ファイルの削除」を指定します。

Googleドライブの「ファイルの削除」を指定

「ファイル」に動的なコンテンツの「Id」を指定します。

「ファイル」に動的なコンテンツの「Id」を指定

これにより同名のファイルが保存先に存在すれば削除するようになります。

そして「Apply to each」の外、「Apply to each attachment」の最後尾に

Googleドライブの「ファイルの作成」を追加し、以下のように指定します。

項目設定値
フォルダーのパス添付ファイルの保存先フォルダ
ファイル名動的コンテンツの「添付ファイル 名前」
ファイルコンテンツ動的コンテンツの「添付ファイル コンテンツ」
「Apply to each」の外、「Apply to each attachment」の最後尾にGoogleドライブの「ファイルの作成」を追加

完成形のフローの全体像は以下のようになります。

この状態で保存すれば同名の添付ファイルを受信した場合、

最新のファイルで上書きするようになります。

フローの全体像

OneDriveにも保存する

GoogleDriveだけでなくOneDriveへの保存も可能です。

それには「Apply to each attachment」の中の「アクションの追加」をクリックします。

「Apply to each attachment」の中の「アクションの追加」をクリック

「OneDrive for Business」をクリックします。

「OneDrive for Business」をクリック

ファイルの作成」をクリックします。

「ファイルの作成」をクリック

「フォルダーのパス」のアイコンをクリックして保存フォルダを指定します。

「フォルダーのパス」のアイコンをクリックして保存フォルダを指定

「ファイル名」に動的コンテンツより「添付ファイル 名前」を指定します。

「ファイル名」に動的コンテンツより「添付ファイル 名前」を指定

「ファイル コンテンツ」に動的コンテンツより「添付ファイル コンテンツ」を指定します。

「ファイル コンテンツ」に動的コンテンツより「添付ファイル コンテンツ」を指定

この設定でOneDriveにも添付ファイルがコピーされます。

もしGoogleDriveへの保存が不要であれば「Create File」を削除しても構いません。

なおOneDriveの場合は、同名ファイルはそのままでも上書きされます。

関連記事

Power Automate 自動フローを作成

Power Automate 「Google Drive」の記事一覧

Power Automate 「OneDrive for Business ファイルを Google Drive ファイルへ」テンプレートの利用方法

Power Automate 「Gmail のメールを Google スプレッドシートに記録する」テンプレートの利用方法

Power Automate テンプレートの使い方の記事一覧