今回の記事では、詳細なユーザー情報(表示名・姓名・会社名・部署名・役職など)を検索/表示させるフローの作成方法を紹介しています。
アダプティブカードの仕組みを利用することで、シンプルかつ使いやすいフローを実装することができます。
完成イメージ
Power Automateのフロー実行画面からフロー実行ボタンを押します。
TeamsのWorkflows (ワークフロー) チャットにユーザー選択画面が表示されるため、名前やメールアドレスを入力して検索・選択します。
ユーザー情報の詳細 (氏名・メールアドレス・会社名・部署・役職名など) が返信されます。
どんな情報を表示させるかはカスタマイズ可能です。
フローの作成
フローの全体像
フローの全体像は以下の通りです。
| No. | アクション名 | 説明 |
|---|---|---|
| #1 | フローを手動でトリガーする | フロー実行ボタンが押されたタイミングでフローが開始されます |
| #2 | アダプティブ カードを投稿して応答を待機する | フロー実行ボタンを押した人にアダプティブカード (ユーザー検索/選択カード) を送信し、入力を受け付けます |
| #3 | ユーザー プロフィールの取得 (V2) | 直前のアクション(#2)で選択されたユーザーについて、詳細なユーザー情報を取得します |
| #4 | 作成 | 直前のアクション(#3)で取得した情報から、必要な項目・情報をピックアップします |
| #5 | HTML テーブルの作成 | 直前のアクション(#4)で作成した内容を、見やすいようHTML形式に変更します |
| #6 | チャットまたはチャネルでメッセージを投稿する | フロー実行ボタンを押した人に、直前のアクション(#5)の結果をチャットします |
フローの作成・トリガー設定
まずはフローを作成していきます。
Power Automateポータルの「作成」メニューから、「インスタント クラウド フロー」を選択します。
ポップアップが表示されるため、フロー名とトリガーを選択します。
トリガーは「フローを手動でトリガーする」を選択、フロー名は任意ですが「社員情報検索」としました。
アクションの配置・設定
フロー開発画面が表示されるため、アクションを配置・設定していきます。
「+」ボタンを押し、Teamsコネクタの「アダプティブ カードを投稿して応答を待機する」アクションを選択します。
投稿者は「フロー ボット」を、投稿先は「フロー ボットとチャットをする」を選択します。
メッセージには以下のJSONを入力します。
右上の青いコピーボタンでJSONをコピーし、メッセージ欄に貼り付けてください。
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "社員情報検索",
"size": "Large",
"weight": "Bolder",
"wrap": true
},
{
"type": "Input.ChoiceSet",
"id": "selectedUser",
"label": "社員を選択",
"choices.data": {
"type": "Data.Query",
"dataset": "graph.microsoft.com/users"
},
"isRequired": true,
"errorMessage": "社員を選択してから検索してください。",
"placeholder": "名前を入力して検索..."
}
],
"actions": [
{
"type": "Action.Submit",
"title": "検索",
"style": "positive"
}
]
}
Recipientには動的なコンテンツを使用し、「ユーザー メール」を選択します。
続いて、Office 365 ユーザーコネクタの「ユーザー プロフィールの取得 (V2)」アクションを選択します。
ユーザー (UPN)には、動的なコンテンツから「body/data/selectedUser」を選択します。
続いて、「作成」アクションを配置します。
入力の中には、以下のJSONをコピーして貼り付けてください。
[
{
"項目名": "表示名",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/displayName']}"
},
{
"項目名": "姓",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/surname']}"
},
{
"項目名": "名",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/givenName']}"
},
{
"項目名": "ニックネーム",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/mailNickname']}"
},
{
"項目名": "メールアドレス",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/mail']}"
},
{
"項目名": "会社名",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/companyName']}"
},
{
"項目名": "部署",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/department']}"
},
{
"項目名": "役職",
"値": "@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/jobTitle']}"
}
]
表示するユーザー情報を変えたい場合は、こちらの入力欄の内容をご自身で変更してください。
続いて、「HTML テーブルの作成」アクションを追加します。
Fromには、動的なコンテンツから「出力」を選択します。
次が最後のアクションになります。
Teamsコネクタの「チャットまたはチャネルでメッセージを投稿する」アクションを追加します。
投稿者には「フロー ボット」を、投稿先には「フロー ボットとチャットをする」を選択してください。
Recipientには、動的なコンテンツから「ユーザー メール」を選択します。
※間違えやすいため、必ず「フローを手動でトリガーする」の中の「ユーザー メール」を選択してください
メッセージ欄には、直前のアクションの結果を入れていきます。
まず入力欄の右上にある「</>」アイコンを押し、中に入っている文字をすべて削除します。
中に入っている文字が削除できたら、動的なコンテンツから「Output」を選択して完成です。
最後にフローを保存しておきましょう。
実行用リンクの取得
ここでは、今後フローを実行しやすいよう実行用のリンクを取得しておきます。
左上の「戻る」ボタンを押して、フロー詳細画面に移動します。
画面上部のURL欄を確認すると、最後が「/details」となっていることが分かります。
これを手動で「/run」と変更することで、実行用のURLを取得することができます。
お気に入り登録したり、メモとして保存しておくと次回以降の実行が楽になります。
フローのテスト
フローを実行してみます。
TeamsのWorkflows (ワークフロー) チャットにユーザー選択画面が表示されるため、ユーザー名やメールアドレスを入力して検索・選択します。
ユーザー情報の詳細 (氏名・メールアドレス・会社名・部署・役職名など) が返信されます。
メッセージが届かない場合、エラーが発生していないかを確認してください。
アクション名や動的なコンテンツの設定ミスが見つかる可能性があります。
まとめ
今回は、アダプティブカードを利用してユーザー情報を検索・表示させるフローを実装しました。
表示するユーザー情報は必要に応じて変更できるため、試行錯誤しながらご利用ください。
また、アダプティブカードを利用したフローとして以下の記事も用意していますので、ぜひご覧ください。



































