ささみ学習帳 - sasami's study book

ささみ学習帳

Microsoft365 や Power Platform について学んだこと・アイデアのメモ

Exchange Online 予定表に登録したイベントを Teams のステータスメッセージに設定する Power Automate クラウドフロー

このフローの目的

  • 勤務状況をTeamsのステータスメッセージに表示したい。
  • 勤務状況と別に固定メッセージも表示したい

前提条件

  • Exchange Online 予定表に 勤務状況を登録している
    • イベントの件名が一致するものをステータスメッセージに設定する対象とする

フロー全体図

フローの解説

Office 365 Outlook - 予定しているイベントが間もなく開始されるとき (V3) トリガー

イベント開始の数分(誤差あります)前にこのフローが実行されます。

変数 - 変数を初期化する アクション

ステータスメッセージに表示する固定メッセージをこの変数に格納します。

コントロール - 条件 アクション

まもなく開始されるイベントの件名が、ステータスメッセージに表示したい内容どうかを件名で判断しています。 大した数がなく頻繁に変わるものでもないのでフローに直接記述してますが、設定情報として別の場所に保存する方が望ましいかも。

ステータスメッセージを設定する (SharePoint - SharePoint に HTTP 要求を送信します アクション)

Teams のステータスメッセージを変更するアクションは用意されていませんが、SharePointコネクタの"HTTP 要求を送信します" アクションでAPIで設定することができます。

設定項目 設定値
サイトのアドレス https://presence.teams.microsoft.com ※カスタム値として設定します
方法 PUT
URI /v1/me/publishnote
ヘッダー Content-type : application-json
ボディ { "message": "本日は「@{triggerOutputs()?['body/subject']}」です。@{variables('固定メッセージ')}<pinnednote></pinnednote>", "expiry": "@{concat(triggerOutputs()?['body/end'],'Z')}"}
{
    "message": "本日は「@{triggerOutputs()?['body/subject']}」です。@{variables('固定メッセージ')}<pinnednote></pinnednote>",
    "expiry": "@{concat(triggerOutputs()?['body/end'],'Z')}"
}

messageの末尾に <pinnednote></pinnednote> と記述すると「他のユーザーが自分にメッセージを送るときに表示する」が有効になります。 expiry で ステータスメッセージの有効期間を設定できます。ここではトリガーイベントの終了時刻を設定しています。 ※ 協定世界時(UTC)で設定する必要があります。

参考にしたサイト

powerplatformnikki.com

qiita.com