🔄

Power Automate を使って、当番制業務の通知を自動化した

2024/11/26に公開

組織内で当番制にしている業務の通知を自動化しましたので、気になる方は見ていってください!

自動化に至った背景

私の所属している組織では、Teamsに「何でも質問箱」というチャネルがあります。

何でも質問箱は、「質問先がわからない」「メンションしてまで質問することにハードルを感じる」といった際に気軽に質問できる場として設置されています。

このチャネルで最近、誰からも返答されずに放置されている質問が見つかり始めたので、チャネルのパトロールを当番制(週次)にしました。公平になるよう全6チームでの当番制にしました。しかし、毎週Teamsで当番(チーム)に通知するのは大変だったため、自動化を検討しました。

対象読者

  • 当番制業務が忘れられがちになることを防止したい方
  • Power Automateを使った業務自動化に興味がある方

※Power Automateは、ブラウザ版(Office 365)を利用しています。

Power Automateのフロー作成

自動化対象の手動作業とそれを自動化したフローは下記です。

【普段の手動作業】

  1. Teamsのチャット履歴から前週の当番(チーム)を確認し、今週の当番を把握する。
  2. Teamsで今週の当番へ連絡する

【Power Automate フロー】

  1. 毎週月曜の10時に処理を実行(タイマートリガー)
  2. 当番チームの決定(日時の変換)
  3. 当番チームへ連絡(Teamsチャネルへメッセージ送信)

毎週月曜の10時に処理を実行(タイマートリガー)

まずは、作成画面から「Scheduled cloud flow」を選択肢てフローを作成します。

作成の際、フロー名や起動タイミングを設定します。(後でも変更できます)

今回は毎週月曜の10時なので、下図のように設定します。

当番チームの決定(日時の変換)

当番制の通知を組むために、通知の開始日から経過している期間で当番チームを決定するロジックを組みます。

まずは「Current time」で現在日時を取得します。 →「現在日の取得」
 次に「Convert time zone」を使って、現在日のAM0時を変数化します。 →「現在日の0時を取得」

最後に開始日からの経過週を計算し、経過週をチーム数で割った値を算出します。 →「当番チームのTeamNoを定義」

value
mod(div(int(first(split(dateDifference(parseDateTime('2024-10-07 00:00:00'),body('現在日の0時を取得')),'.'))),7),6)

当番チームへ連絡(Teamsチャネルへメッセージ送信)

TeamNoの定義まで終われば、あとは「Switch」アクションを使って各チームへの通知を実装するのみです。

まずは「Switch」アクションを配置し、先ほど定義したTeamNoを参照するようにします。

次に「+」アイコンから「Add Case」をして、チームごとの処理を実装していきます。
 各Caseは下図のようになります。

Caseには「Equals」というフィールドがあるので、ここに0番からTeamNoを振っていきましょう。

次にチームに通知するためのメンションタグを取得します。
 「Get an @mention token for a tag」アクションを配置し、下図のように設定します。
 TeamとTagのフィールドには、自組織の情報を入れてください。

次にTeamsへの通知を実装します。
 「Post message in a chat or channel」アクションを配置し、下図のように設定します。
 TeamとChannelは自組織の情報を入れてください。Messageは好きな文言に変更しても大丈夫ですが、「@mention tag」を忘れると当番チームにメンションが飛ばず気づかれないかもです。

あとはチーム数分のCaseを追加すれば完成です。

まとめ

今回、Power Automateを使って、組織内で当番制にしている業務の通知を自動化することに成功しました。

手作業だと面倒&忘れそうな作業であったため、作業時間短縮と当番制の安定化が実現できたかと思います。

個人的な感想として、通知している担当者の負担を軽減できたので良かったと感じています。
読者の皆さんも是非試してみてください!

Discussion