1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Power Automate] SharePoint list の新規 item をメールでお知らせする

Posted at

はじめに

List に追加されたアイテムのお知らせに Power Automate を使ってみましたが、いろんな Q&A サイトやブログを検索しながらかなりの試行錯誤してしまったので、備忘録として調べた内容をまとめておきます。他に良い方法などあれば教えてください。

SharePoint list の新規 item をメールでお知らせ

まずは全体像から。Get items で list のアイテムを条件付き(24 時間以内に作成)で読み込んで、Apply to each で 1 つずつメール送付します。

スクリーンショット 2024-04-10 113728.png

メールでなくても Teams の Channel にポストしてもいいですね(今回は行いません)

24 時間以内に作成という条件

「サイトのアドレス」と「リスト名」は伏せますが、大事なのはフィルタークエリ。

condition.png

今回は「作成日時」を元にフィルターをかけますが、変数名(?)がわからなかったので、フィルターなしで実行した結果の(JSON 形式)から見つけました。

フィルタークエリですが、ge: ~ より大きい を使用します。日付を指定する場合はこんな感じ

Created ge 2024-04-10T00:00:00Z

フィルタクエリについてはこちらのページを参考にさせてもらいました👇
参考:(Power Automate)OData フィルタで日時を指定する方法について

日付の決め方

日付を動的(実行日時を基準に)決定させるところで、少し悩んで検索しまくりましたが、結果的には以下の式に。

formatDateTime(addDays(utcNow(), -1), 'yyyy-MM-dd')
  1. utcNow() で現在(実行されるとき)の日時を取得
  2. addDays() で -1 日、すなわち 24 時間前の日時に
  3. formatDataTime でクエリに使える文字列に変換

という感じです。

キャプチャ画像だと見にくいのですが、式の前後に ' があることにご注意を。ここで30分ほど解かしてしまいました。直書きするとこんな感じです。

Created ge '@{formatDateTime(addDays(utcNow(), -1), 'yyyy-MM-dd')}'

これで 24 時間以内に作成された item が取得できます。

あとはメールで送るだけ

email.png

です。

まとめ

item が作成されたタイミングで送付という方法もあると思いますが、手動で入力する List なので、作成し始めてから項目を全部埋めるまで時間もあるだろうし、少しして変更するかもしれないので、24 時間区切って送付したかった、ということで、今回の Flow となりました。

今回は日付を実行日時を基準に決定するところではまりました。同様の Flow を作成したい方の参考になりましたら幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?