Power Automateを活用すれば、SharePointやOneDrive上のファイルが更新された際に、その更新者へ自動でメールを返信するフローを構築できます。しかし、トリガーの選定やユーザー情報の取得方法を誤ると、期待通りに動作しないことがあります。本記事では、ファイル更新者へ自動返信するフローの設計手順を、具体的な事例や失敗パターンとともに解説します。これにより、実際に業務で使える安定したフローを設計できるようになります。
【要点】この記事で確認すること
- 最初に見る場所: トリガーとして「ファイルが作成または変更されたとき」を選び、更新者情報を取得するアクションを正しく設定する必要があります。
- 切り分けの軸: フローが動作しない場合は、トリガー条件(ライブラリやフォルダの指定)、更新者情報の取得方法、コネクタの権限の3つを確認します。
- 注意点: 会社PCでフローを作成する際は、テナント管理者によるコネクタの承認が必要な場合があります。また、自分自身の更新に対する返信を除外する条件を入れないと、無限ループが発生する可能性があります。
ADVERTISEMENT
目次
1. 自動返信フローの基本的な設計手順
まずは、SharePointドキュメントライブラリを例に、フローの全体像を把握しましょう。以下の手順に沿ってフローを作成します。
- Power Automate(https://make.powerautomate.com)にサインインし、「作成」→「自動化されたクラウドフロー」を選択します。
- トリガーとして「ファイルが作成または変更されたとき(SharePoint)」を選びます。サイトアドレスとライブラリ名を指定します。なお、OneDriveの場合は「ファイルが作成または変更されたとき(OneDrive for Business)」を使用します。
- 「新しいステップ」を追加し、「ファイルのプロパティの取得(SharePoint)」アクションを選択します。ここで、先ほどトリガーで得られたファイルIDを使って、更新者の情報(Editorフィールドなど)を取得します。
- 次に、「ユーザーのプロファイルの取得(Office 365ユーザー)」アクションを使い、前のステップで得た更新者のユーザーIDからメールアドレスを取得します。SharePointのコネクタによっては直接メールアドレスを取得できる場合もあります。
- 「条件」アクションを追加し、更新者自身にメールを送らないように自分自身を除外する条件を設定します。例えば、現在のユーザー(フロー所有者)と更新者が異なる場合のみメールを送信するようにします。
- 最後に「メールの送信(V2)」アクションを追加し、宛先に前のステップで取得したメールアドレスを指定します。件名や本文には、ファイル名や更新日時などの動的なコンテンツを挿入します。
- フローを保存し、テスト用のファイルを更新して動作を確認します。
2. トリガーの選定条件と注意点
トリガーはフローの起点であり、誤った選定は意図しない動作につながります。SharePointとOneDriveでは利用可能なトリガーが異なります。以下に比較表を示します。
| トリガー名 | 発火条件 | 注意点 |
|---|---|---|
| ファイルが作成または変更されたとき(SharePoint) | ファイルの新規作成と既存ファイルの更新の両方 | 更新者の情報を取得するには「ファイルのプロパティの取得」が必要。大量のファイル更新があると頻繁に発火する。 |
| ファイルが変更されたとき(SharePoint) | 既存ファイルの更新のみ(作成時は発火しない) | 作成時の通知が不要な場合に使用。ただし、多くのシナリオでは「作成または変更」で十分。 |
| ファイルが作成または変更されたとき(OneDrive for Business) | OneDrive上のファイルに対して同様の動作 | 個人用OneDriveでは共有設定に注意。テナント管理者によるコネクタの許可が必要な場合もある。 |
特に注意すべきは、トリガーに指定するライブラリやフォルダです。誤ってルートサイト全体を指定すると、不要なファイルの更新でもフローが発火し、メールが多発します。必ず対象のライブラリまたはフォルダに絞り込みましょう。
3. 更新者情報の取得方法
更新者にメールを送るには、更新者のメールアドレスを正しく取得する必要があります。SharePointの場合、ファイルのプロパティにある「Editor」フィールドが更新者を示しますが、これはユーザーID(UPN)形式です。以下に取得の流れを説明します。
「ファイルのプロパティの取得」アクションでは、出力に「Editor」というフィールドが含まれます。これは「i:0#.f|membership|user@domain.com」のようなクレーム形式の値です。これをそのままメールアドレスとして使うことはできません。そこで、「ユーザーのプロファイルの取得(Office 365ユーザー)」アクションを使い、「ユーザーID」パラメータにEditorの値をそのまま渡すと、メールアドレスを含むユーザー情報が返ってきます。ただし、Editorの値から不要なプレフィックスを除去する必要がある場合があります。例えば、式「substring(outputs(‘ファイルのプロパティの取得’)?[‘body/Editor’], indexof(outputs(‘ファイルのプロパティの取得’)?[‘body/Editor’], ‘|’) + 1)」でユーザーID部分を取り出せます。
3.2 OneDrive for Businessの場合
OneDriveのトリガーを使用する場合も同様に、ファイルのプロパティに「最終更新者」の情報が含まれます。OneDriveコネクタの「ファイルのプロパティの取得」アクションでも、編集者フィールドからユーザーIDを取得し、同じく「ユーザーのプロファイルの取得」でメールアドレスを取得します。なお、OneDriveの場合は自分自身の更新も検出されるため、条件で除外する必要があります。
4. メール送信アクションの設定
メールの送信アクションでは、宛先、件名、本文を動的に設定します。以下のように設定します。
- 宛先:「ユーザーのプロファイルの取得」から出力された「メール」プロパティを指定します。
- 件名:例:「[ファイル更新通知] ファイル名が更新されました」とし、ファイル名は「ファイルのプロパティの取得」の「名前」を動的に挿入します。
- 本文:更新日時や更新者名、ファイルへのリンクを含めます。リンクは「ファイルのプロパティの取得」の「Web リンク」プロパティを使うと便利です。
また、メール送信前に条件アクションで「自分自身(フロー所有者または実行ユーザー)への通知を避ける」設定を入れておかないと、自分が更新した際にもメールが届き、業務が煩雑になります。条件としては「ユーザーのプロファイルの取得」から得たメールアドレスが、フローの実行ユーザーのメールアドレスと異なる場合のみ送信するようにします。
5. 失敗パターンと原因
実際の運用でよく発生する失敗パターンを以下にまとめます。
- メールが送信されない:原因として、トリガー条件が厳しすぎる、更新者情報が正しく取得できていない、コネクタの権限不足が考えられます。確認手順としては、フローの実行履歴で各ステップの出力を確認し、エラーメッセージを確認します。特に「ファイルのプロパティの取得」でEditorフィールドが空の場合、権限が足りない可能性があります。
- 無限ループが発生する:自分自身の更新に対してメールを送り、そのメールの添付ファイル(など)が再度更新をトリガーするなどしてフローがループすることがあります。対策として、メール送信の条件に「更新者がフロー所有者でない」という条件を追加するか、メール送信アクションの後に「一時停止」を入れるなどの対応が必要です。
- 大量のメールが送られる:トリガーでライブラリ全体を指定している場合、ファイル更新のたびにメールが送られます。対象フォルダを絞る、または「条件」で特定のファイル名パターンのみ許可するなどのフィルタリングを行います。
- メールアドレスが取得できない:OneDriveやSharePointでゲストユーザーや外部ユーザーが更新した場合、ユーザープロファイルが存在しないためメールアドレスが空になることがあります。このような場合は、エラー処理を追加して、メール送信をスキップするか、固定の管理者アドレスに転送するなどの対応をします。
6. 管理者に確認すべき設定項目
会社の環境でフローを運用する際、以下の点を管理者に確認しておくとスムーズです。
- コネクタの承認:SharePointやOffice 365ユーザーコネクタは、初回使用時にテナント管理者の承認が必要な場合があります。管理者が事前に許可ポリシーを設定しているか確認します。
- ライセンス:Power Automateの有料ライセンス(Office 365の一部として利用可能)が必要です。無料のプランではトリガー実行回数に制限があるため、大量の更新がある場合は有償ライセンスを検討します。
- フローの共有と権限:他のユーザーが作成したフローを使用する場合、フローを共有するか、各ユーザーが自分のアカウントで作成する必要があります。管理者は、フローの実行権限とコネクタの権限を適切に設定します。
- データ損失防止(DLP)ポリシー:組織のDLPポリシーにより、特定のコネクタの組み合わせが禁止されている場合があります。SharePointとメールの組み合わせが許可されているか確認します。
7. よくある質問(FAQ)
実務で寄せられる質問をいくつかピックアップしました。
- Q:更新者自身にはメールを送りたくないのですが、どうすればよいですか?
条件アクションで「トリガー出力の更新者メール ≠ 自分のメールアドレス」という条件を追加します。自分のメールアドレスは「triggerOutputs()?[‘body/editor’]」などから取得できます。 - Q:特定のフォルダだけ監視したい場合は?
トリガー設定で「フォルダ」パラメータにフォルダIDまたはパスを指定します。ただし、フォルダ指定はサブフォルダも含まれるため、必要に応じてさらに条件で絞り込みます。 - Q:フローが実行されない原因は何ですか?
フローの実行履歴を開き、各アクションの出力を確認します。よくあるのは、トリガー条件が厳しすぎる、コネクタの認証が切れている、実行回数制限に達したなどです。 - Q:更新者にファイルのリンクも送りたいのですが、どう取得しますか?
「ファイルのプロパティの取得」アクションの出力に「Web リンク」というプロパティがあります。これをメール本文にリンクとして貼り付けます。 - Q:OneDriveでも同じフローを作れますか?
はい、トリガーを「ファイルが作成または変更されたとき(OneDrive for Business)」に変更するだけで、基本的な設計は同じです。ただし、OneDriveの場合は個人フォルダなので、自分以外の更新が少ないかもしれません。
8. まとめ
Power Automateでファイル更新者へ自動返信するフローを設計する際には、トリガーの選定、更新者情報の正しい取得、自分自身への送信を除外する条件設定が重要です。失敗パターンを事前に把握し、適切なエラー処理を加えることで、安定した運用が可能になります。管理者と連携してコネクタの権限やライセンスを確認し、組織のポリシーに沿ったフローを構築しましょう。本記事を参考に、日々の業務効率化に役立ててください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
