PA45 第24回|ハンズオン手順
Teamsのスタンプ👍で、出欠を自動集計Teamsの投稿に👍を押すと、押した人の名前が台帳にたまり、今の参加人数が届きます。ボタンもフォームも作りません。順番どおりに進めればできます。
今日つくるもの: 「懇親会出欠」チャネルの投稿に
👍 を押すと、押した人が
参加者として台帳に記録され、
今の参加人数がフローボットから届くフロー。
👍 リアクション→
🪪 名前を取得→
📝 台帳に記録→
🔢 参加者を数える→
📣 現在N名を通知
🔰 初参加の方へ: ここから始めても大丈夫です。1人でも完成します——自分の投稿に自分で👍を押せば、自分が参加者として記録され、人数「1名」まで動きます。ほかの人を集める必要はありません。
STEP 0
準備(チャネルと台帳を作る)
出欠を集める「場所」と、記録する「台帳」を先に用意します。ここは1回だけ。
- Teams で、出欠を集めるチーム(例:PA45)に 「懇親会出欠」チャネルを作ります。
- チーム名の右「⋯」→「チャネルを追加」→名前は 懇親会出欠/種類は 標準。
- SharePoint で、記録用の 「出欠台帳」リストを作ります。
- サイト →「新規」→「リスト」→「空白のリスト」→名前は 出欠台帳。
- 「出欠台帳」に列を1つ追加します。「回答」(種類=1行テキスト)。氏名は既定の「タイトル」列をそのまま使います。
- 「日時」は作らなくてOK。SharePointが「作成日時」を自動で記録します(式を1つ減らせます)。
💡 なぜ「標準」チャネル? 出欠は参加者みんなが👍を押すもの。プライベートにすると押せる人が限られるので、全員が見える「標準」にします。
STEP 1
👍が押されたら動くトリガー
Power Automate で「最初から作成」→ 自動フローを選び、トリガーを検索します。
- トリガーの検索で Microsoft Teams を開き、「チャットでメッセージに応答があったとき」を選びます。
- 4つの設定を、下のとおりに入れます。ここが今日いちばんの山場です。
追跡する絵文字👍(1つだけ)トリガー頻度すべてのリアクション(複数)トリガー対象のユーザー全員メッセージの種類チャネル
- 「メッセージの種類=チャネル」を選ぶと、下にチーム/チャネルの欄が出ます。先にチーム(例:PA45)→ 次にチャネル(懇親会出欠)を選びます。
⚠️ チャネルが選べない…と思ったら(詰まりポイント):
- チームを先に選ぶ。チームが空だとチャネルは選べません。
- チャネル欄の文字部分をクリックしない(別の入力候補=動的コンテンツが開いてしまいます)。欄の右はしのピッカー(アイコン)から選びます。
- 固まる・出てこない時は ページを再読み込みすると直ることが多いです。
なぜこの2つを変える? すべてのリアクション(複数)にしないと1人目で止まり、全員にしないと自分以外の👍を拾えません。出欠を全員分あつめるための必須設定です。/追跡する絵文字は1つだけ(この回は👍に統一)。
STEP 2
「押した人」の名前を取り出す
トリガーが教えてくれるのは、押した人のID(記号の並び)だけ。これを氏名に変換します。
- +新しいステップ→ Office 365 ユーザーの 「ユーザー プロファイルの取得 (V2)」を追加します。
- 初めて使う時はサインインして接続を作成します(自分のアカウントで1回だけ)。
- 「ユーザー (UPN)」の欄に、動的コンテンツから ユーザー ID(トリガーの userId)を入れます。
💡 ここがこの回の学び: システムは人をIDで扱います。「IDしか来ない → 名前に直す」という一手間は、いろんな自動化で出てくる定番です。次のステップで、この表示名を台帳に書きます。
STEP 3
出欠台帳に1行 記録する
押した人を、STEP 0で作った「出欠台帳」に1行 書き込みます。
- +新しいステップ→ SharePointの 「項目の作成」を追加します。サイトアドレスとリスト 出欠台帳 を選びます。
- 2つの欄だけ埋めます。どちらも式は使いません。
タイトル(氏名)表示名回答参加
- 「タイトル」は動的コンテンツから 表示名(STEP 2で取った名前)を選ぶ。
- 「回答」は文字で 参加 と入力するだけ。
💡 「日時」は入れません: SharePointが「作成日時」を自動で記録してくれるので、フローで日時を入れる必要はありません(式が1つ減ります)。回答の列が出てこない時は「すべて表示」を押すと出ます(表示名で選べばOK)。
STEP 4
「参加」の人をぜんぶ集める
人数を数えるために、台帳から「参加」の行だけを取り出します。
- +新しいステップ→ SharePointの 「複数の項目の取得」を追加します。リストは 出欠台帳。
- 詳細の 「フィルター クエリ」に、下を入れて「参加」だけにしぼります。
フィルター クエリ(コピーして貼る)
answer eq '参加'
💡 answer って?(覚えておくと役立つ) これは「回答」列の内部の名前です。フィルターだけは表示名(回答)ではなく内部名(answer)を使います。内部名は列を作った時に決まり、列の設定画面(FldEdit)の URL の Field= で確認できます。※これは「式(fx)」ではなくフィルターの書き方なので、フローで使う式が length() 1つだけ、という点は変わりません。
STEP 5
参加人数を数える
取り出した「参加」の行が何件あるかを数えます。このフローで式(fx)を使うのは、ここだけです。
- +新しいステップ→ 「作成」(データ操作)を追加します。
- 「入力」に、式(fx)で下を貼り付けます。件数=人数になります。
式(fx に貼る・人数を数える)
length(body('複数の項目の取得')?['value'])
おまじないの意味: length(…) は「いくつあるか数える」命令。body('複数の項目の取得')?['value'] が「さっき集めた参加の一覧」です。合わせて「参加の一覧が何件か」=参加人数になります。
STEP 6
「◯◯さんが参加! 現在N名」を通知
最後に、押してくれた人の名前と、今の参加人数を知らせます。
- +新しいステップ→ Microsoft Teamsの 「チャットまたはチャネルでメッセージを投稿する」を追加します。
- 投稿者=フロー ボット。投稿先は、まずは確実な 「フロー ボットとのチャット」(自分あて)にしておくと、当日つまずきません。
- メッセージに、名前(STEP 2の表示名)と人数(STEP 5の出力)を差し込みます。
メッセージの例
👍 [表示名] さんが参加! 現在 [作成の出力] 名
📣 チャネルに出したい時は: 投稿先を「チャネル」→ チーム=PA45 → チャネル=懇親会出欠 に変えると、みんなが見える所に「現在N名」が出ます(STEP 1と同じチーム先→チャネルのコツで選びます)。
STEP 7
保存して、テストする
- 右上の 「保存」→ フローをオンにします。
- 「懇親会出欠」チャネルに何か1件 投稿して、その投稿に 👍 を押します。
- 数秒待つと、各ステップに緑のチェック ✓。出欠台帳に自分の行が増え、フローボットから「👍 ◯◯さんが参加! 現在1名」が届きます。
💡 1人でもここまで動きます。 自分の投稿に自分で👍でOK(このチャネルの全員=自分も含まれます)。実際に使う時は、いつものチームのチャネルで使えば、みんなの👍がそのまま集まります。
うまくいかないとき:
- フローが動かない → トリガーのチャネルを選んだか/フローがオンか。
- 名前が入らない → STEP 2で userId を渡したか/接続がつながっているか。
- 台帳に入らない → STEP 3で「すべて表示」から回答・日時を選んだか。
- 人数が出ない → STEP 5の式を fx で入れたか(ふつうの入力ではなく式)。