はじめに
みなさま、こんにちは!
日本マイクロソフトでサマーインターンをしております秋山と申します。
今回、 Power Automate から入力フィールドを含むアダプティブカードを送信し、ユーザがフィールドに入力した内容を受け取り、SharePoint Online のリストに自動で保存する簡単なフローを例に、 Power Automate と Teams をシームレスに連携させる方法を紹介します。
アダプティブカードとは
まず、アダプティブカードの説明は以下の通りです。(引用抜粋)
アダプティブ カードは、プラットフォームに依存せずに情報ブロックを共有および表示するための方法で、CSS または HTML をカスタマイズしてレンダリングする複雑さがなくなります。 クラウド アプリおよびサービスをオープンに入れ替えできる統合を使用して、JSON 形式でアダプティブ カードを作成します。
引用元:Microsoft Teams 向けアダプティブ カードの概要
https://docs.microsoft.com/ja-jp/power-automate/overview-adaptive-cards
こちらにより、例えば、Power Automate から Teams に通知やメッセージを送る際に、アダプティブカードを用いると、単にテキスト メッセージを送るだけではなく、画像を付与したり、ボタンや入力フィールドを配置して、入力フォームとしたりすることが可能になります。
Power Automateでフローを作成する
フローを作成する
Power Automate のページを開きます。
作成タブから「インスタント クラウドフロー」を選択します。
インスタントクラウドフローを構築の画面から「手動でフローをトリガーします」を選択し、「作成」ボタンを押します。
Teamsに質問を投稿する
「新しいステップ」ボタンをクリックします。ここからステップを追加していきます。
検索窓に「teams」と入力すると、 Teams 関係のアクション一覧が表示されます。今回はその中から「アダプティブカードを投稿して応答を待機する」を選択します。
「アダプティブカードを投稿して応答を待機する」の各項目を設定していきます。
以下のように各項目を入力してください。
名前 | 値 |
---|---|
投稿者 | Flow bot |
投稿先 | Channel |
Team | 【投稿したいチーム】 |
Channel | 【投稿したいチャンネル】 |
「メッセージ」の項目には今回アダプティブカードを設定しています。アダプティブカードは以下のような形になっています。複雑に見えますが、実はアダプティブカードデザイナーというものを使うことで、視覚的にカードをデザインし、コードを生成することができます。(https://www.adaptivecards.io/designer/)。
{
"type": "AdaptiveCard",
"msTeams": {
"width": "full"
},
"body": [
{
"type": "TextBlock",
"text": "好きな食べ物は何ですか",
"wrap": true,
"size": "Large",
"weight": "Bolder",
"id": "title"
},
{
"type": "Input.Text",
"placeholder": "回答を入力してください(回答は必須ではありません,答えたくないものはスルーしてください)",
"separator": true,
"isMultiline": true,
"id": "thoughts"
},
{
"type": "ActionSet",
"separator": true,
"actions": [
{
"type": "Action.Submit",
"title": "送信",
"style": "positive",
"id": "submit"
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2"
}
今回作成したアダプティブカードは以下のようなデザインになっています。
SharePointに項目を作成する
返答がきた際に、結果を SharePoint に記録していきます。
「タイトル」と「回答」の項目を持つ SharePoint のリストを事前に準備します。
Power Automate 側で、「+新しいステップ」ボタンを押し、ステップを追加していきます。
検索窓に「sharepoint」と入力すると、 SharePoint 関係のアクション一覧が表示されます。今回はその中から「項目の作成」を選択します。
その後、以下のように各項目を入力していきます。
「サイトのアドレス」、「リスト名」には自分が記録をしたい SharePoint Online のアドレスとリスト名を選択します。
「Title」には、今回「好きな食べ物は何ですか」と入力しました。こちらは、動的に変更することも可能です。
そして「回答」の部分には、アダプティブカードを投稿して応答を待機する」アクションの「thought」を入力します。この変数「thought」は、上記アダプティブカードの id の部分に書かれていたものになります。
(前後省略)
・・・
"placeholder": "回答を入力してください(回答は必須ではありません,答えたくないものはスルーしてください)",
"separator": true,
"isMultiline": true,
"id": "thoughts" ←ココ
},
・・・
実際にフローを実行してみる
右上の「テスト」をクリックし、「手動」で「テスト」を選択します。
しばらくすると準備が完了するので、「フローの実行」を押してテストを開始します。
すると、以下のような形でチャネルにアダプティブカードが投稿されるので、回答を入力してみてください。
Teams 上で回答を入力し、「送信」ボタンをクリックすると、回答した内容が、SharePoint Online のリストに自動で保存されていることが確認できます。
終わりに
こちらはあくまで一例ですが、間に Web アプリケーションなどを介さずに、 Power Automate から入力フォーム付きのメッセージを Teams に送信し、ユーザーが Teams 上で入力した内容を受け取り、その内容に応じた処理の自動化が可能になります。
つまり、アダプティブカードを使用することで、Teams と連携する業務の自動化の選択肢が広がります。
是非、こちらのTIPSを業務負担の軽減にお役立てください。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。