
みんなにアンケートをとりたいけど、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)で設定。

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