11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Power Automate】Teamsのステータスメッセージを自動で設定する

Posted at

Exchange Online(Outlook)に登録されている予定をPowerAutomateでTeamsのステータスメッセージに反映する話です。

きっかけ

会社でExchange Online(Outlook)とTeamsを使っています。
在宅勤務の予定はOutlookに登録することになっているのですが、個人的にTeamsのステータスメッセージにも毎朝登録していました。
(Outlookの予定を見てくれない人でもTeamsなら気づいてくれるパターンがあるので)

これを自動で出来たら便利かも?という思い付きからです。

「Microsoft 365で自動化といえばAutomate」ということで、Power Automateで実装したので、ポイントを書いていきます。
余談ですが、Automateは本当に色々できますよね。個人的にはかなり楽しんで使っています。

ステータスメッセージとは

Teamsの右上にあるこんなやつです。

image.png

設定時に「他のユーザーが自分にメッセージを送るときに表示する」にチェックを入れるとアピール力が強まります。
image.png

ステータスメッセージの設定

実はステータスメッセージの取得・設定自体はAPIで可能です。

ただ、このAPIを呼び出すようなアクションがAutomateにはありません。
(Graph APIでもないので、別記事で紹介した「「Office365 Groups」コネクタも使えない)

困ったなと思ったら海外のブログに解決策が載っていました。

読んでいただくとわかるんですが、要は「Sharepoint」コネクタでAPIを呼び出せるそうです。
image.png
※画像の例では出力には「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で実装する場合は以下のようにすると楽です。

image.png

完成したフロー

フローの全体像がこちらです。
設定済みのステータスメッセージがある場合は何もせず、デフォルトの予定表に「在宅勤務」の終日予定があった場合はステータスメッセージを設定するというものになっています。
このフローが毎日8時に実行されるので、在宅勤務を漏れなくアピールできるようになりました(笑)

image.png

おわりに

展望というほどではないですが、対象にしている予定が「件名=在宅勤務」の完全一致なので、そのあたりは改良の余地があると思っています。

皆さんもステータスメッセージを活用してみてください!

11
7
7

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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?