Exchange Online(Outlook)に登録されている予定をPowerAutomateでTeamsのステータスメッセージに反映する話です。
きっかけ
会社でExchange Online(Outlook)とTeamsを使っています。
在宅勤務の予定はOutlookに登録することになっているのですが、個人的にTeamsのステータスメッセージにも毎朝登録していました。
(Outlookの予定を見てくれない人でもTeamsなら気づいてくれるパターンがあるので)
これを自動で出来たら便利かも?という思い付きからです。
「Microsoft 365で自動化といえばAutomate」ということで、Power Automateで実装したので、ポイントを書いていきます。
余談ですが、Automateは本当に色々できますよね。個人的にはかなり楽しんで使っています。
ステータスメッセージとは
Teamsの右上にあるこんなやつです。
設定時に「他のユーザーが自分にメッセージを送るときに表示する」にチェックを入れるとアピール力が強まります。
ステータスメッセージの設定
実はステータスメッセージの取得・設定自体はAPIで可能です。
ただ、このAPIを呼び出すようなアクションがAutomateにはありません。
(Graph APIでもないので、別記事で紹介した「「Office365 Groups」コネクタも使えない)
困ったなと思ったら海外のブログに解決策が載っていました。
読んでいただくとわかるんですが、要は「Sharepoint」コネクタでAPIを呼び出せるそうです。
※画像の例では出力
には「M/d」で日付が、EndTime
には「yyyy-MM-ddT14:59:00」が設定してあります。
こうすることで冒頭の画像のように「10/19 在宅勤務」を当日の23:59まで表示することができます。
注意
Sharepointコネクタを使う方法は正規の手順ではないため、突然使えなくなる可能性があります。
ステータスメッセージを取得する時に気をつけること
ステータスメッセージの設定は上に書いた通りでいいのですが、取得については少し仕込みが必要です。
APIを呼び出す際のBodyにIDを含める必要がありますが、
Micorosft 365のログインIDではなく、内部で自動採番されたID(例:01234567-89ab-cdef-0123-456789abcdef)になります。
これはマイプロフィールの取得
アクションで取れますので、Automateで実装する場合は以下のようにすると楽です。
完成したフロー
フローの全体像がこちらです。
設定済みのステータスメッセージがある場合は何もせず、デフォルトの予定表に「在宅勤務」の終日予定があった場合はステータスメッセージを設定するというものになっています。
このフローが毎日8時に実行されるので、在宅勤務を漏れなくアピールできるようになりました(笑)
おわりに
展望というほどではないですが、対象にしている予定が「件名=在宅勤務」の完全一致なので、そのあたりは改良の余地があると思っています。
皆さんもステータスメッセージを活用してみてください!