【PowerAutomate】Teamsでアンケート作成・アダプティブカードで投稿
お疲れ様です。ほしコラム管理人の「ほし」です。
今回は、PowerAutomateで、チームのメンバーに対してアンケート依頼するフローを作成します。
アンケートについては、アダプティブカードを使用して実施したいと思います。
「 アダプティブカードって何? 」という方はMicroSoftのホームページから確認してみて下さい!
- チームに投稿すると「アンケートの回答率が悪い」
- Formsよりも自由にアンケート内容を作成したい
- Teams上でアンケートを完結させたい
上記のような悩みを抱える方は、ぜひ読んでみて下さい!
はじめに
今回作成するフローでは、特別に事前準備は必要ありません!
あえて準備するのであれば、投稿先の「チーム」と「チャネル」を準備しておいとよいと思います。
またチャットで投稿する場合は、「宛先一覧」などを準備しておいて下さい。
フローの実行イメージは、以下のようになります。
大まかな処理概要は以下のようになります。
- PowerAutomateでTeamsのチームにアダプティブカードを投稿
- アダプティブカードの反応に返信・取得
- アダプティブカードの更新(初期化する)
PowerAutomate 実行結果
PowerAutomateの実行結果を処理概要に沿って紹介していきます。
処理内容は、大きく分けて3つのみなので、必要な情報のみを利用していただけばと思います。
Teamsのチームにアダプティブカードを投稿
1つ目の処理である、特定のチームにアダプティブカードを投稿することができています。
これでアンケートの回答依頼を投げるという第1目標は達成できています。
今回のフローは、これで終わりではなく再度回答できるように初期化する処理があります。
アダプティブカードの反応に返信・取得
上記のアダプティブカードに返答してみます。
回答内容を選択して「提出」をクリックします。
返答した内容は、自動的にPowerAutomateで取得できるので、特別操作は必要ありません。
アダプティブカードに応答があると、以下のように返信されています
回答に対した返信は、事前に「JSON形式」で記載されている内容が返されます。
上記の返答された際に、再度回答できるようにアダプティブカードを初期化していきます。
アダプティブカードの更新(初期化)
回答者が複数になることを想定しているので初期化して、回答できる状態に戻します。
時刻の左側に「更新済み」になっていれば、再度初期化されていることが確認できます。
今回のフローでは、初期化した後に送信された回答を取得することはできませんが、
「コントロール」の「DoUntil」内で上記を実装すれば規定の回数まで回答を取得できると思います。
PowerAutomate 全体処理フロー
PowerAutomateで実装する、アダプティブカードで投稿するフローは以下のようになります。
処理概要でも説明した通り、大きな処理は3つになります。
この後3つの処理に設定する内容などを紹介していきます。
「待ち時間」は応答を取得した後に更新まで10秒間待機するように設定しています。
手動でフローをトリガーします
「手動でフロートリガーします」は、フローを実行する際に
日付、テキストなど様々な入力を与えてフローを起動することができます。
今回はアンケートの締切日(日付)を入力として設定するようにしています。
これで、フロー実行時に日付の選択をすることができます。
アダプティブカードを投稿して応答を待機する
「アダプティブカードを投稿して応答を待機する」では投稿後、応答されるまで処理は終了しません!
- 投稿者 : フローボット
- 投稿先 : チャネル・グループチャット・フローボットからチャット から選択して下さい
- メッセージ : JSON形式のテキストを入力して下さい。
- 更新メッセージ : 返答したいメッセージ内容を入力して下さい。
- チーム : 投稿先のチーム
- チャネル : 投稿先のチャネル
メッセージはJSON形式で書く必要があり、上記のようなメッセージを作成したい場合は、
以下のように入力していただければ簡単に作成できます。
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "【ご依頼】アンケートのご回答",
"id": "Title",
"spacing": "Medium",
"horizontalAlignment": "Center",
"size": "ExtraLarge",
"weight": "Bolder",
"color": "Accent"
},
{
"type": "TextBlock",
"text": "@{triggerBody()['date']}までに要対応",
"id": "acHeaderTagLine",
"separator": true
},
{
"type": "TextBlock",
"text": "今月の経費申請有無について",
"weight": "Bolder",
"size": "ExtraLarge",
"spacing": "None",
"id": "acHeader"
},
{
"type": "TextBlock",
"text": "以下の選択肢に従ってご回答お願いします。",
"id": "acInstructions",
"wrap": true
},
{
"type": "TextBlock",
"text": "選択肢",
"id": "acPollQuestion"
},
{
"type": "Input.ChoiceSet",
"placeholder": "Select from these choices",
"choices": [
{
"title": "1000円以上",
"value": "Choice 1"
},
{
"title": "5000円以上",
"value": "Choice 2"
},
{
"title": "10000円以上",
"value": "Choice 3"
}
],
"id": "acPollChoices",
"style": "expanded"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "提出",
"id": "btnSubmit"
}
]
}
「 “text”: “@{triggerBody()[‘date’]} 」は実行時に入力した日付を使用するように設定しています。
PowerAutomateのUIでは画像のように設定するだけで問題ありません!
・メッセージ内に「動的なコンテンツを挿入」
・「メッセージ」動的コンテンツを挿入する方法
チャットやチャネルのアダプティブカードを更新する
返答されたアダプティブカードを再度回答できるように初期化していきます。
- 投稿者 : フローボット
- 投稿先 : チャネル・グループチャット・フローボットからチャット から選択して下さい
- メッセージ ID : 「アダプティブカードから投稿して応答を待機する」のメッセージID
- チーム : 投稿先のチーム
- チャネル :投稿先のチャネル
- アダプティブカード : 「アダプティブカードを投稿して応答を待機する」のメッセージ
上記を設定するだけで、簡単にアダプティブカードを初期化することができます!
「アダプティブカード」の内容を変更すれば、異なるアダプティブカードを表示することもできます。
今回のフローでは、初期化したフローに再回答は実施できません!
というのもアダプティブカードを初期化した時点でフローが終了しているからです。
最後に
最後まで読んでいただきありがとうございます。
これでTeamsでアダプティブカードを投稿する方法を簡単に実装できます。
本ブログでは、現役エンジニアがPowerAutomateを使用した業務効率化の方法などを紹介しています。
今回紹介したTeamsだけではなく、ExcelやSharePointを使用した効率化について紹介しています。