アダプティブカードでTeamsにアンケートを送る|アダプティブカードの作成とフローの作成手順

Power Automate

みんなにアンケートをとりたいけど、Forms以外にも方法があるのかな…

Teamsチャットにアンケートフォームを送るのはどうかにゃ?
ぼくは好きなチュールの味を聞きたいにゃ。

やりたいこと

PowerAutomateでTeamsチャットにアンケートフォームのアダプティブカードを投稿したい。

アンケート以外にもこんな時に◎

  • 社内トレーニングやセミナーの案内を送り、申し込みまで完結させたい
  • サポートリクエストを作成・更新できるフォームをつくりたい
  • 経費申請や休暇申請の承認ワークフローをつくりたい

アダプティブカードの作成

以前はMattさんのアイコンでサンプルが用意されていたのですが…

ということで、新しくなったアダプティブカードデザイナーで作っていきます。
(エレメントがすごく増えている…!)
左側ペインからエレメントを選び、中央のカードにドラッグ&ドロップすると配置できます。
配置したエレメントを選び、右側のプロパティで編集。
シンプルなカードであれば簡単に作成できるのがうれしいですね。
カードの作成を進めていくと、それに応じて下部にJSONが書かれていきます。

画面上部にある「Copy carad payload」でJSONをまるっとコピーできます。
詳細は後述してますが、コピーしたものをフローのアクション内にペーストすればOK。

ここで注意したいのがアダプティブカードのバージョン!
1.5まで対応していたので、今回は1.5で作成しました。
Teamsがアダプティブカードのバージョンに対応していないと「We’re sorry, this card couldn’t be displayed」となってしまうので要注意。

フローの作成

全体像はこんな感じ。

アダプティブカードを投稿して応答を待機する

個人チャットに対してボットから送られるようにしたいので、投稿者、投稿先、Recipientは下図のように…。
更新メッセージは、回答者が回答したあとにボットから送られるメッセージです。

メッセージのところに、作成したアダプティブカードのJSONをコピペ。

保存して実行してみます。

今回つくったカードのソースコードはこちら。
{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "お昼ごはん何食べる??",
            "wrap": true,
            "style": "heading",
            "fontType": "Monospace",
            "size": "Large",
            "weight": "Bolder",
            "color": "Good",
            "id": "title"
        },
        {
            "type": "Input.ChoiceSet",
            "label": "好きなものを選んでね♪",
            "choices": [
                {
                    "title": "カレーライス",
                    "value": "カレーライス"
                },
                {
                    "title": "カレーうどん",
                    "value": "カレーうどん"
                },
                {
                    "title": "カレーそば",
                    "value": "カレーそば"
                },
                {
                    "title": "タイカレー",
                    "value": "タイカレー"
                },
                {
                    "title": "インドカレー",
                    "value": "インドカレー"
                }
            ],
            "placeholder": "Placeholder text",
            "id": "choice",
            "style": "expanded"
        },
        {
            "type": "ActionSet",
            "id": "submit",
            "actions": [
                {
                    "type": "Action.Submit",
                    "title": "送信"
                }
            ]
        }
    ]
}

実行結果

Workflowsからアダプティブカードが届きました!

回答すると‥‥
更新メッセージが届きました。


実際には特定の1人に送るなんてことはないと思うので…、複数名に同時に送りたいときはセキュリティGや配布リスト、SPOリストに作成した社員名簿などなどからメンバーを取得し、ループ(Apply to each)で送ればOKですね◎


1人でも未回答の人がいるとずっと応答まち状態になり、実行中のフローが溜まっていってしまうので、タイムアウトを設定します。
ISO 8601形式で入力する必要があるので注意。
アクションの3点リーダーから[設定]を開き、タイムアウトに期間を入力します。
今回は12時間でタイムアウトさせたいので、PT12H(Period Time 12H)で設定。

パワーアップしたアダプティブカードで色んなカードを作ってみたくなりますね♪

コメント

タイトルとURLをコピーしました