はじめに
7/6に自分の環境では利用できるようになった、Microsoft Teamsの新しいトリガー『選択したメッセージ』ですが、これを使って比較的簡単な自動化を作ってみました。
前の投稿↓ Teamsのメッセージ選択時トリガーがPower Automateに追加されました! - MoreBeerMorePower
Teamsのチャット上でメッセージを選択し、設定したAdaptive Cardsに予定のタイトルと開始日、開始・終了時刻を入れると、メッセージを投稿した人とメンションされている人を含めた予定を作成するというフローです。
『選択したメッセージ』トリガーについては他にも、「メッセージを管理者に報告する」という内容でTomaszがブログを投稿していましたので、ご覧になってみてください。
For a selected message - new trigger in Power Automate • Tomasz Poszytek, Business Applications MVP
Adaptive Cardsをつくる
まずトリガーに追加できるAdaptive Cardsを作ります。
非常に簡単に、テキスト入力x1, 日付選択x1, 時間選択x2で最後に送信です。
すこし時間選択がし難い気もしますが、まずは標準のエレメントで作ります。
選択したメッセージのトリガーで利用するAdaptive Cardsには特徴があり、横幅をかなり広く指定することができます。 TeamsでAdaptive Cardsを送信すると横幅の狭さがモヤモヤするところですが、トリガーで利用する場合には幅を任意に指定できます。
また、指定した横幅よりもウィンドウが小さくなった場合には、横スクロールではなく、うまく各エレメントの幅を縮めて表示してくれます。
ということでこれでカード作成は完了。
フローを作る
選択したメッセージのトリガーはチームによらず実行できることもあり、出力結果が非常に多岐にわたります。
トリガー出力結果から頑張って探すのも大変なので、おすすめはトリガーの直後に「作成」アクションで必要な要素だけ抜き出すことです。
こうしておくと、後続のアクションでは特にネストを気にすることなく outputs('Compose')?['text']
のように結果にアクセスすることができます。
次に、選択したメッセージの送信者と、@メンションされた人たちのUserPrincipalNameで構成される配列を作ります。
これは予定の出席者を入れるときに使います。
手順すこしややこしい感じもしますが、基本的には@メンション部分がHTMLになっているので、タグからDisplayNameを取り出し、メッセージ送信者とくっつけることで、まずはDisplayNameの配列を作ります。
その後Apply to eachのループ処理でOffice 365ユーザーのコネクターを利用してUPNの配列に変換しています。
最後にAdaptive Cardsの内容と、Apply to eachで作られたUPNの配列から出席者を作ってイベント作成完了です。
フローのステップとしては比較的少なめで選択したメッセージから予定を作成することができました。
おわり
選択したメッセージトリガーは非常に幅広い可能性を持っています。 単純に、Adaptive Cardsを簡易入力フォームととらえれば、Teams上のどこからでも呼べるカードの出来上がり ですし、メッセージ内容に応じた処理もできます。
また、LUISを利用すれば、言語処理をしたうえで、コンテキストに合わせた処理を行うことも可能です。
ぜひロールアウトされましたら皆さんの作例をTwitterなどでつぶやいてください!!😍
愛好会でもお待ちしておりますー