Microsoft Formsで社内申請の受け口を作る知識マップ(知識グラフ)
この記事は、メールや口頭で届く社内依頼が抜け漏れ・書式のばらつき・状態不可視・集計不能という構造的な問題を抱えることを整理し、Microsoft Formsを受け口にPower Automateで記録と通知を自動化する型を提案する。フォームの公開範囲は回答者名の自動記録やファイルアップロード質問が使える組織内限定を原則とし、組織外に開くと回答が匿名になりなりすましや重複送信を防げなくなる。Formsは送信後の編集や状態管理の機能を持たないため、Power AutomateでSharePointリストへ転記して台帳とし、受付完了メールとチーム通知で「届いています」を返す構成が定石になる。個人フォームは作成者退職時のデータ消失リスクがあるため、グループのフォームとして作ることも合わせて推奨している。
Microsoft Forms
質問フォームを作成し組織内または一般公開で回答を集められるMicrosoftのフォームサービス。送信後の編集や進捗確認の機能がなく応答一覧の管理機能も弱いため、受け口専用の道具として位置付けられる。
Power Automate
Microsoft Formsなどのトリガーから、SharePointへの転記や通知などのアクションを自動化するMicrosoftのクラウドフローサービス。Formsコネクタにはトリガー「新しい応答が送信されるとき」とアクション「応答の詳細を取得」がある。
クラウドフロー
メール・口頭依頼の受付課題
依頼が受信トレイ・チャット・口頭・付箋という別々の経路で届くため全件のリストがどこにも存在せず、書式が揃わず往復が増え、状態が見えず、集計もできないという構造的な問題。
依頼受付の構造的問題
組織内限定公開
フォームの公開範囲を「自分の所属組織内のユーザーのみが回答可能」または「組織内の特定のユーザーが回答可能」にする設定。回答者名の自動記録・1人1回の制限・ファイルアップロード質問が使え、社内の申請・依頼の受け口ではこの設定が原則とされる。
組織内限定
匿名回答(組織外への公開)
公開範囲を「すべてのユーザーが回答可能」にした場合に生じる状態。回答者はサインインせず送信でき、誰が出したかは記録されない。
匿名フォーム
「名前を記録」オプション
組織内限定のフォームで有効化すると、回答者の名前とメールアドレスを回答に自動記録するForms の設定。
回答者名の自動記録
ファイルアップロード質問
組織内限定フォーム専用で追加できる質問形式。1質問で最大10ファイル、1ファイルの上限は10MB・100MB・1GBから選択し、ファイルはOneDrive for Businessまたはグループの SharePoint サイトに保存される。
Formsの添付質問
SharePointリストの受付台帳
Formsの回答をPower Automateで転記し、状態・担当者・対応メモなど管理用の列を追加した台帳としてのSharePointリスト。
受付台帳リスト
Forms単体では通知されない問題
Formsは回答が届いても既定では誰にも知らせず、フォーム所有者向けの通知設定も宛先や文面を選べないという制約。
Formsの通知欠如
グループ(チーム)のフォーム
個人ではなくMicrosoft 365グループ(チーム)に紐づけて作成するフォーム。Power AutomateのトリガーのフォームID一覧に表示されず、フォーム編集画面URLのFormId=以降をフォームIDとして手入力する必要がある。
グループフォーム
個人フォームの所有者リスク
個人が作成したフォームがその人のアカウントに紐づき、退職などでアカウントがテナントから削除されると、フォーム関連データが削除から30日後に消えるリスク。
個人フォームの退職リスク
Forms単体の状態管理機能の欠如
Formsの応答一覧には状態列や担当者を持たせる機能がなく、「未対応だけ表示する」などの更新管理ができないという制約。台帳としての機能を持たない。
応答一覧の管理機能の弱さ
Formsの回答件数・機能上限
職場・学校アカウントのフォームが最大5,000,000件の回答を受け取れる一方、50,000件を超えると概要グラフ・個別回答の閲覧・印刷が使えなくなりCSVエクスポートのみになる上限。
回答件数の上限
分岐(branching)
選択肢の回答に応じて次に表示する質問やセクションを切り替えるForms の機能。分岐先は後方の質問へしか飛ばせない。
Formsの分岐
1行テキストの255文字問題
Formsの1行テキスト(短い回答)質問に255文字を超える入力があると、Power Automateのフローが動作しないことがある既知の問題。長文が入り得る質問は複数行テキスト(長い回答)にする対策が必要。
短い回答の255文字問題
フローの動作不良
想定した入力に対してPower Automateのフローが動いたり動かなかったりする不具合状態。
フローが動いたり動かなかったりする状態
JSONの解析(Parse JSON)アクション
Formsのファイルアップロード質問がJSON文字列で返す応答を、スキーマを与えて分解するPower Automateのアクション。ファイルの回答は配列で返るため、first(body('Parse_JSON'))?['id']のように先頭要素を取り出す。
承認アクション(開始して承認を待機)
受付フローから上長承認などにつなぐPower Automateのアクション。承認要求に添付できるファイルは5MBまでで、それを超える添付は承認者がPower Automateポータルの承認一覧で確認する。
承認フローアクション
匿名回答のなりすまし・重複送信リスク
組織外にも開いたフォームでは、なりすましや同一人物による重複送信をフォーム側では防げないリスク。
匿名フォームの完全性リスク
Formsで依頼の入口を1つにまとめることで、受付経路が分散し全件のリストが存在しないという構造的な問題を緩和する
受付の瞬間に記録と通知を自動化することで、状態が見えない・集計できないという問題を緩和する
Formsは公開範囲の設定として組織内限定公開を持つ
公開範囲は組織内限定公開と組織外への公開(匿名回答)のどちらか一方しか選べない
「名前を記録」は組織内限定のフォームでのみ有効化できる
ファイルアップロード質問は組織内限定フォームでのみ追加できる
組織外にも開いたフォームではファイルアップロード質問が使えない
組織外にも開いたフォームでは回答者が記録されないため、「名前を記録」は成立しない
社内の申請・依頼の受け口には組織内限定公開を原則とすることを本記事は推奨している
本記事の受付フローでは、Power AutomateはFormsコネクタのトリガー「新しい応答が送信されるとき」でフローを起動する
本記事が推奨する構成では、Power Automateは受け付けた依頼をSharePointリストへ転記して台帳として管理する
Formsが既定では通知しないという制約に対し、Power Automateからの受付完了メールやチーム通知を本記事は推奨している
個人フォームの所有者リスクに対し、本記事はグループ(チーム)のフォームとして作ることを推奨している
応答一覧に状態管理の仕組みがないFormsの限界に対し、本記事はSharePointリストへの転記を台帳として使うことを推奨している
50,000件を超えると概要グラフや個別回答の閲覧が失われるFormsの上限に対しても、本記事はSharePointリストへの転記を推奨している
Formsは回答に応じて質問を出し分ける分岐の機能を持つ
Formsの1行テキスト(短い回答)質問に255文字を超える入力があると発生する既知の問題
1行テキストに255文字を超える入力があると、Power Automateのフローが動いたり動かなかったりする
Power Automateでファイルアップロード質問の回答を扱う場合、回答はファイル名やIDを含むJSON文字列で返るため、JSONの解析でスキーマを与えて分解する必要がある(Parse JSONアクション自体は他の用途でも使う汎用アクション)
依頼の承認を伴う受付フローでは、承認アクション(開始して承認を待機)へつなぎ、Formsの回答内容を承認要求に差し込める
アップロードされたファイルを承認要求に添付する場合、先にJSONの解析でファイルを特定してから添付フィールドへ渡す
個人が作成したフォームは、その人のアカウントに紐づいてしまう
組織外にも開いたフォームでは、なりすましも重複送信もフォーム側では防げない