Teamsのメッセージの見落とし、Power Automate×Plannerでなくせる...かも！！

### 【2021/6/19】追記
Teamsのデフォルトの機能として、Teamsメッセージからタスク登録が先日できるようになったので、[<b>こちら</b>](https://qiita.com/miya_sts/items/fdd95d752757d1eef454) の記事でまとめてみました。よろしければぜひご覧ください...！

#はじめに
Teamsを使っていると、いろんなチームにいろんなチャットがあって、どれを返信するのかわからなくなった経験、ありませんか...？「保存する」を使ってもいまいちだったり。。。
<b>チャットそのものをタスクとして登録・管理</b>できたら便利そう、というアイデアが沸いてきたので、Microsoft Power AutomateとPlannerを使って実装してみました！:sunny:
![TeamsPlanner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/7dab009b-6ac2-b9d8-00ef-0a226c6148c8.png)



## 目次
- [【1】作ったもの（概要）](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#1%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE%E6%A6%82%E8%A6%81)
- 【2】各フローの作り方
    - [【2-1】タスク登録用フロー作成方法](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#2-1%E3%82%BF%E3%82%B9%E3%82%AF%E7%99%BB%E9%8C%B2%E7%94%A8%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)
    - [【2-2】タスクリマインド用フロー作成方法](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#2-2%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%9E%E3%82%A4%E3%83%B3%E3%83%89%E7%94%A8%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)
- 【3】テストしてみる
    - [【3-1】タスク登録のテスト](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#3-1%E3%82%BF%E3%82%B9%E3%82%AF%E7%99%BB%E9%8C%B2%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88)
    - [【3-2】タスクリマインドのテスト](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#3-2%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%9E%E3%82%A4%E3%83%B3%E3%83%89%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88)
    - [【3-3】フローのデバック](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#3-3%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%AF)
- [【4】おわりに](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#4%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB)
- [【5】参考サイト](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#5%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88)



#【1】作ったもの（概要）
Teamsのチャットを、Plannerのタスクとして登録し、また、自分に割り当てられたタスクが進行中の間は、指定時刻にリマインドを送ってくれるフローを作成しています。大きく分けて「[タスク登録用フロー](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#2-1%E3%82%BF%E3%82%B9%E3%82%AF%E7%99%BB%E9%8C%B2%E7%94%A8%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)」と「[タスクリマインド用フロー](https://qiita.com/miya_sts/items/b5aa8a40d60f5abe526e#2-2%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%9E%E3%82%A4%E3%83%B3%E3%83%89%E7%94%A8%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)」の2つのフローから構成されます。
操作感は下記のとおりです。

1. アダプティブカードを使って、チャットをPlannerにタスクとして登録できます。
     ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/ddeabc1c-608c-018e-fea6-a12625ff8a28.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/58e051fc-2ad5-0806-dc15-6208a5e171dd.png)
→以下のようにPlannerにタスクが追加されます。（Plannerタスク内メモ欄のリンクから、該当チャットへジャンプすることが可能です...！）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/fc8da151-c535-3353-00f9-29bb10c310aa.png)


2. 毎日、指定日時になると、自身に割り当てられている処理中のタスク一覧が、メールで通知されます。先の手順で登録したPlannerタスク以外にも、手動で直接Plannerにて登録したタスクもリマインドされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/e39963c3-9078-9bee-ce7d-0b611a8c3475.png)


#【2】各フローの作り方
## 【2-1】タスク登録用フローの作り方
1. [Office.com](https://www.office.com/)にてサインイン後、左ペインよりPower Automateアプリを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/4da6e45a-bf5a-16d3-5dd9-2c77d0bde3a4.png)
※アプリ一覧に表示されない場合は、Power Automateのライセンスが有効になっていないことが考えられますので、適宜、組織のシステム管理者へお問い合わせください。
2. 左ペインの「+ 作成」より、「インスタント フロー」を選択します。フロー名を適当に付け、画面下部の「スキップ」を押下します。
3. 「コネクタとトリガーを検索する」場所で、”Teams”と入力し、「選択されたメッセージに対して」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/a8ae0f27-78b3-6264-aeba-d0feb12f3e82.png)
4. 「アダプティブカードの編集」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/238ba6ec-b493-a1c4-9ff9-85cc40ce5ea1.png)

5. 画面左上の「New card」をクリックし、カードをリセットします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/fbe65327-6841-55be-06ee-60aa90afa3ea.png)

6. Card Elementsより、アダプティブカードにドラッグ＆ドロップして、以下のようなアダプティブカードを作成します。
     ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/6e7e6230-68e4-8211-9f91-819ea0bfedd5.png)
    - なお、 Input関係は、Element Propertiesにて、Idをそれぞれ設定しておきます。（筆者の場合、上から、「taskName」「dueDate」「inputNote」を設定しています。）
         ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/849d1759-2571-355f-f441-c6a2a5b61c6e.png)

7.トリガー下の「+」ボタンを押し、「アクションの追加」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/32e5348f-13e0-f790-4c47-f3cecdc181c2.png)
8. 「Office 365 ユーザー」コネクタより、アクション「ユーザ－プロフィールの取得」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/05423a39-26ff-43b7-5fbc-366fb981ed80.png)
9. 「ユーザー(UPN)」の枠をクリックし、”動的なコンテンツ”内に表示される「操作元ユーザのID」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/a33b9c42-a5a9-628f-f5ce-69c7d0dddfd7.png)
10. さらに＋を押し、Plannerのアクションの「タスクを作成する」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/dc34fd57-bfc4-c010-34ee-b554d887d7db.png)
11. 以下のようにそれぞれの項目を埋めます。※予め、Plannerアプリ上で、個人用のToDo管理のプラン「myWorkList」を作成しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/f4f1c21c-9801-6dd2-cf92-ece255e23009.png)
12. 続いて、「タスクを作成する」の下に、「タスクの更新」「タスクの詳細の更新」をそれぞれ追加します。「タスクの更新」では、進捗状況を「In Progress」（進行中）にし、「タスクの詳細の更新」では、説明欄に「メッセージへのリンク」を追加しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/3b32322b-9647-76b6-dd8f-264502408f6a.png)
13. 必要に応じて、「メッセージをフローボットとしてユーザに投稿する」アクションを追加しておきます。（登録できたことを即確認したい場合は、追加しておくと良いです。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/c8bf294b-fe70-5185-6b7c-c5dd7efd693f.png)
14. 右上のフローチェッカーにて、エラーが表示されていないことを確認＆画面左上「戻るボタン」横のフロー名を好きな名称（筆者の場合は「Workリストへの登録」）に変更します。その後、自身のTeamsにて、チャット右上「…」マーク＞「その他の操作」と進み、自身の作成したフローアクションが表示されていることを確認します。


## 【2-2】タスクリマインド用フローの作り方
1. テンプレート[「すべての未処理のPlannerタスクのダイジェストをメールで送信」](https://japan.flow.microsoft.com/ja-jp/galleries/public/templates/9caab8ef716f45138b09b0544bd03798/%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E6%9C%AA%E5%87%A6%E7%90%86%E3%81%AE-planner-%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E3%83%80%E3%82%A4%E3%82%B8%E3%82%A7%E3%82%B9%E3%83%88%E3%82%92%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%A7%E9%80%81%E4%BF%A1/) を確認し、「続行」を押下します。
2. トリガー「Recurrence」をクリックし、詳細オプションを表示の上、以下のようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/3ddf4b97-a671-6c17-1998-65da16dd5a41.png)
3. アクション「Select」を選択の上、マップの値を以下のように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/c482412f-55a1-f3d3-9676-ebe032644982.png)
※ここで、期限日時、タスク詳細については、以下のような形で指定しておきます。
    - 期限日時: formatDateTime(item()?['dueDateTime'],'yyyy-MM-dd')
    - タスク詳細：concat('https://tasks.office.com/ｘｘｘｘｘｘｘ.onmicrosoft.com/Home/Task/',item()?['id'])　
        - ｘｘｘｘｘｘｘは、自身のOfiice365テナントの環境にあわせて設定します。Plannerのタスクのリンク等を見てみると分かります。
4. フロー末尾のアクション「Send an email」にて、件名と重要度を、自身の好みにあわせて設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/c69c667b-933a-1c6d-0cdf-000fe739a8a6.png)



# 【3】テストしてみる
ここまで作成した2つのフローにより、以下のようになります。
## 【3-1】タスク登録のテスト
- タスクとして登録したいメッセージの右上[・・・]より、「その他の操作」＞「＜自身が設定したフローの名前（筆者の場合は「Workリストへの登録」）＞」と進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/7b6e2fb1-68d5-9a23-1d36-7472634a063e.png)

-  アダプティブカードにて、各項目を埋めていきます。
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/5d530d08-011c-0f25-4ad2-e94fdcad9d02.png)

- Plannerにタスクが追加され、進行状況が「処理中（In Progress）」になっていることがわかります。また、メモ内のリンクより、該当チャットへジャンプすることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/fe70dbb2-17fb-c1d1-5bab-bb41aad0d9e9.png)


## 【3-2】タスクリマインドのテスト
- 設定した時刻とほぼ同時刻に、メールが送られます。また、タスク詳細に記載のリンクをクリックすることで、Plannerのタスクへ簡単にアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/359549a1-054c-69fe-53ef-8e5d9446ed7a.png)

## 【3-3】フローのデバック
あれ？思った通りに動いていない...？/実行はできたけど時間がかかったので処理を見直したい/...etc.という場合には、以下の手順でエラー箇所/処理遅延箇所の特定が可能です。
1. 該当フローの概要ページを開く。
2. 画面下の「28日間の実行履歴」にて、処理が走ったと思われる時刻をクリックする。（以下スクリーンショットの赤線部分） ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/2407e74f-437f-9305-5ae1-02fcff768c54.png)
3. 各アクションの右上に実行結果（エラー有無・処理時間）が表示されます。また、各アクションをクリックすることで、それぞれのアクションでの出力結果を確認可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330628/631e3a14-4481-c596-6497-32da1e9481d7.png)
 

# 【4】おわりに
Power Automate、ローコードでありながら、アイデア次第でいろいろなことができそうです...！ 今後も便利な機能作れたら随時公開予定ですので、よかったらフォローいただけると幸いです。

# 【5】参考サイト
- [PowerAutomate公式ページ](https://flow.microsoft.com/ja-jp/) 
- [Adaptive Cards Designer](https://adaptivecards.io/designer/)
    - その名の通り、アダプティブカードをデザインできるWebツールです。
- [Schema Explore](https://adaptivecards.io/explorer/)
    - アダプティブカードで使える要素とJSONのサンプルが豊富にあります。ここでのJSON構文をコピーして、Adaptive Cards Designにペーストしていくことで、独自のカードを作れます。
- [Microsoft 365 開発者プログラム](https://developer.microsoft.com/ja-jp/microsoft-365/dev-program)
    - Microsoft 365の試験テナントが欲しい方はお勧めです。無償です。開発用データセットを使って、いろいろと試すことができます。