19
13

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 3 years have passed since last update.

Power Automate の Teams コネクタでアダプティブカードを利用する際の TIPS①【アダプティブカードで入力した内容を受け取る】

Last updated at Posted at 2021-09-15

はじめに

みなさま、こんにちは!
日本マイクロソフトでサマーインターンをしております秋山と申します。
今回、 Power Automate から入力フィールドを含むアダプティブカードを送信し、ユーザがフィールドに入力した内容を受け取り、SharePoint Online のリストに自動で保存する簡単なフローを例に、 Power Automate と Teams をシームレスに連携させる方法を紹介します。
image.png

アダプティブカードとは

まず、アダプティブカードの説明は以下の通りです。(引用抜粋)

アダプティブ カードは、プラットフォームに依存せずに情報ブロックを共有および表示するための方法で、CSS または HTML をカスタマイズしてレンダリングする複雑さがなくなります。 クラウド アプリおよびサービスをオープンに入れ替えできる統合を使用して、JSON 形式でアダプティブ カードを作成します。
引用元:Microsoft Teams 向けアダプティブ カードの概要
https://docs.microsoft.com/ja-jp/power-automate/overview-adaptive-cards

こちらにより、例えば、Power Automate から Teams に通知やメッセージを送る際に、アダプティブカードを用いると、単にテキスト メッセージを送るだけではなく、画像を付与したり、ボタンや入力フィールドを配置して、入力フォームとしたりすることが可能になります。

Power Automateでフローを作成する

フローを作成する

Power Automate のページを開きます。
作成タブから「インスタント クラウドフロー」を選択します。
image.png
インスタントクラウドフローを構築の画面から「手動でフローをトリガーします」を選択し、「作成」ボタンを押します。
image.png

画面がこのようになっていることを確認してください。
image.png

Teamsに質問を投稿する

「新しいステップ」ボタンをクリックします。ここからステップを追加していきます。
検索窓に「teams」と入力すると、 Teams 関係のアクション一覧が表示されます。今回はその中から「アダプティブカードを投稿して応答を待機する」を選択します。

「アダプティブカードを投稿して応答を待機する」の各項目を設定していきます。
以下のように各項目を入力してください。

名前
投稿者 Flow bot
投稿先 Channel
Team 【投稿したいチーム】
Channel 【投稿したいチャンネル】

image.png

「メッセージ」の項目には今回アダプティブカードを設定しています。アダプティブカードは以下のような形になっています。複雑に見えますが、実はアダプティブカードデザイナーというものを使うことで、視覚的にカードをデザインし、コードを生成することができます。(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"
}

今回作成したアダプティブカードは以下のようなデザインになっています。

image.png

SharePointに項目を作成する

返答がきた際に、結果を SharePoint に記録していきます。
「タイトル」と「回答」の項目を持つ SharePoint のリストを事前に準備します。
image.png

Power Automate 側で、「+新しいステップ」ボタンを押し、ステップを追加していきます。
検索窓に「sharepoint」と入力すると、 SharePoint 関係のアクション一覧が表示されます。今回はその中から「項目の作成」を選択します。
その後、以下のように各項目を入力していきます。
image.png

「サイトのアドレス」、「リスト名」には自分が記録をしたい SharePoint Online のアドレスとリスト名を選択します。
「Title」には、今回「好きな食べ物は何ですか」と入力しました。こちらは、動的に変更することも可能です。

そして「回答」の部分には、アダプティブカードを投稿して応答を待機する」アクションの「thought」を入力します。この変数「thought」は、上記アダプティブカードの id の部分に書かれていたものになります。

(前後省略)
・・・
"placeholder": "回答を入力してください(回答は必須ではありません,答えたくないものはスルーしてください)",
            "separator": true,
            "isMultiline": true,
            "id": "thoughts" ←ココ
        },
・・・

実際にフローを実行してみる

右上の「テスト」をクリックし、「手動」で「テスト」を選択します。
image.png

しばらくすると準備が完了するので、「フローの実行」を押してテストを開始します。
すると、以下のような形でチャネルにアダプティブカードが投稿されるので、回答を入力してみてください。
image.png

Teams 上で回答を入力し、「送信」ボタンをクリックすると、回答した内容が、SharePoint Online のリストに自動で保存されていることが確認できます。

image.png

終わりに

こちらはあくまで一例ですが、間に Web アプリケーションなどを介さずに、 Power Automate から入力フォーム付きのメッセージを Teams に送信し、ユーザーが Teams 上で入力した内容を受け取り、その内容に応じた処理の自動化が可能になります。
つまり、アダプティブカードを使用することで、Teams と連携する業務の自動化の選択肢が広がります。
是非、こちらのTIPSを業務負担の軽減にお役立てください。

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

19
13
0

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
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?