PowerAutomateで定期連絡フローを作成してみた

## はじめに
皆さん、初めまして。
今回初めてQiitaの投稿をいたします。
Teamsで毎月送信するメッセージを自動化してみようと思います。
毎月Teamsで勤怠の打刻をする際にメッセージを打つのを簡単にしたいと思いPowerAutomate、Power Appsでやってみることにしました。



## Power Automateとは
Microsoftが提供するRPA（ロボティック・プロセス・オートメーション）ツールです。Power Automate使うことで、日常的な繰り返し作業を自動化し、業務の効率化を図ることができます。例えば、メールの自動返信やデータの入力、ファイルの保存などを自動化できます

## 今回作成するフローについて
私の職場において、Teamsで始業時間と退勤時に勤怠を報告する必要があるので、勤怠管理アプリを作成いたしました。
今回は毎月自動的にTeamsに投稿されるフローを作成いたしました。

## 毎月の定期連絡を自動化する

Power Automateで定期連絡の自動化フローを作成します。
Power Automateには、作成できるフローの種類がいくつかあり、その中に[スケジュール済みのクラウドフロー]というものがあります。

:::note info
毎月1回、定期的にお知らせしたいという場合には[スケジュール済みクラウドフロー]を作成していくのが良いです。
:::

### フローの選択
Power Automateの画面左メニューの[作成]を選択し、[スケジュール済みクラウドフロー]を選択します。
![スケジュール1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/e8872416-ce6a-3ea9-74d7-c25ebc8810f7.png)


- フロー名：任意のフロー名を入力
- 開始日：1日
- 時間：開始する時間（今回の場合は10時AM開始とする）
- 繰り返し回数：1か月

![フロー設2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/09ba83df-e816-57c5-f0d7-58580ff6d857.png)



### フロー編集
Recurrenceをクリックする。
![1フロー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/3b4ec6bd-62c0-32d1-59fd-a89d61e7f3fd.png)

クリックすると詳細画面が出てくるので、TimeZoneを下記に設定する。




- Time Zone：(UTC+09:00)大阪、札幌、東京
- Start Time 2024-12-13T01:00:00.000Z


![フロー2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/35f4f9f5-3b75-3b7b-e440-2d45c75f5d59.png)

:::note info
Start Timeは自動的に入力されます。
:::

#### 現在時刻を取得する変数の設定
⊕ボタンを押すと「アクションの追加」が選択できるので、クリックします。
![アクションの追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/decd874a-a486-11fb-dad6-bcd01e9242bb.png)
クリックすると検索することができるので、「変数」と入力します。
「変数」のアクションが表示されるので、「さらに表示」をクリックします。
![変数の初期化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/b4087e1d-4cff-03f3-a78d-c4c25cee9c2c.png)
「さらに表示」をクリックすると、変数を初期化するが表示されるので、選択します。
![変数の初期化2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/3236b76f-c716-95d4-afd1-940ab29e8353.png)

- Name：任意の変数名を入力
- Type：String
- Value：
```py:value1.json
convertTimeZone(utcNow(),'UTC','Tokyo Standard Time')
```
上記の項目後、追加ボタンを押すと変数を設定することができます。
![変数初期化_名前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/d2369616-734d-c793-1a76-2565ad9f06de.png)



#### 当月を取得する変数の設定
先ほどと同様にアクションの追加をクリックし、変数の初期化を選択します。
- Name：任意の変数名を入力
- Type：String
- Value：
```py:value2.json
formatDateTime(variables('NowDate'),'MM')
```
![変数の初期化MM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/41ab69d2-6cfc-1478-1afb-89d72f34b113.png)

#### 投稿するTeamsのチャネルの設定

アクションの追加をクリック後、検索に「Teams」と入力し、さらに表示を選択します。
![アクションTeams.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/1b3acd04-be13-fd4e-d496-4b41e6505bb5.png)

次に「タグの@mentionメンショントークン」を選択いたします。
![メンショントークン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/4a489c86-da9e-078c-ad3e-e47a7c429ebf.png)

チームを選択するとTeamsのチーム一覧が表示されるので、任意のチームを選択いたします。（私の場合は検証用）

- チーム：任意のTeamsのチャネルを選択
- タグ：対象となるメンション先を選択
![チームの選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/e5268b4b-7e41-1f5e-f3ce-ea54e1d630f3.png)

![teamsタグ3設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/f9970602-9fa5-0907-9487-ec10a3cadaa4.png)





#### 投稿するTeamsのメッセージの設定
先ほどと同様にアクションの追加→Teamsで検索し、「チャットまたはチャネルでメッセージを投稿する」を選択します。
![Teamsアクションチャネル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/43ddb527-be97-d663-41ad-5f7e6cc2ec4a.png)


下記の項目をそれぞれ入力いたします。

- 投稿者：ユーザーorフローボットを選択
- 投稿先：チャネルorグループチャットを選択
- チーム：先ほど設定したチームを入力
- チャネル：任意のチャネルを選択

:::note info
投稿先をチャネルとグループチャットで設定内容が変わります。
:::


![Teamsチャネルの投稿先の設定値入力.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/d277e0e3-846e-59a8-3d17-6769bd27e9d8.png)

次にメッセージに先ほど設定した、@トークンを設定いたします。
メッセージを選択し、動的コンテンツをクリックすると先ほど設定した「タグの@mentionトークンを取得する」が表示されているので選択します。その後、追加ボタンをクリックすると、メッセージに表示されます。

:::note warn
ユーザーをフローボットにすると@メンションタグが使えなくなります。
:::

次に件名を設定いたします。
先ほど設定した変数（MMDate）関数を用いて、件名→動的コンテンツを選択します。
MMDate関数を使うことで、対象となる月が表示されるようになります。

![オートメイト＿MMData関数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/104556e4-1cf8-7ff9-8220-ee5716594271.png)

####  フロー完成形
完成したフローは下記になります。
今回のフローでは合計5つのアクションを作成しました。
![フローの説明.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/b79034e7-6df5-81e8-29a9-c35bf643eda8.png)

## 実行
先ほど作成したフローを実行すると下記のようになりました。
毎月1日の10時に投稿されるように設定し、今月の月度が自動的にタイトルに反映することができました。
![パワーオートメイトteams投稿1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/2b555725-3d26-a8cb-2739-24e6fecf58cf.png)


## まとめ
Power Platformを用いて毎月自動的にTeamsに投稿するフローを作成いたしました。
今回は月ごとで設定しましたが、毎日投稿できるフローも作成できるので、皆さんも良い業務改善のソリューションをどんどん作っていきましょう！


## 次回
今回作成したフローとpowerappsを連携させることで勤怠管理アプリを作成することができました。次回の投稿ではそちらの内容を説明させていただきます。

![勤怠管理画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941779/8ba9d3b4-f115-de19-8034-d0a788ac35b9.png)