社員の出張の事前申請を Power Automate で受け、旅費規程の日当・宿泊の上限・交通の手段に照らして確認が要る点を挙げてから承認に回す
社員が出発前に出す出張の事前申請を受け、旅費規程に照らして確認が要る点を挙げてから上長の承認に回します。日当と宿泊の上限は規程の表で計算し、交通の手段や前泊の理由はAIが条文の要件と照らします。
- 生成AI
- Azure OpenAI Service/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- IT・SaaS/商社/製造
- 対象部門
- 経理/総務
- 対象業務
- 内容確認・チェック
- 主な課題
- 人手が足りない/判断に時間がかかる/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 社員が Microsoft Forms で事前申請を出す
- 経理部の担当が回答の一覧を開き、新しい申請を読む
- 社員の一覧で等級を確かめ、規程の表から日当と宿泊の上限を引いて、見込み額と比べる
- 交通の手段(グリーン車・航空機・タクシー)と前泊・後泊について、理由が規程の条文に当たるかを読む
- 理由が足りなければ申請者にメールで聞き、返事を待つ
- 確認した内容をメモにして、上長へ承認の依頼をメールで送る
- 承認された申請を台帳のスプレッドシートに写す
- 人社員が、これまでどおり Microsoft Forms で事前申請を出す
- 自動回答の送信をきっかけにフローが動き、回答の中身を取り出す
- 自動社員の一覧から等級と拠点を引き、規程の表から日当と宿泊の上限を計算して見込み額と比べる
- 自動交通の手段・前泊・後泊・日程に、規程の条文の要件が当たる項目があるかをフローが洗い出す
- 自動当たった項目だけをAIに渡し、申請の理由に要件を満たす記述があるかを判定させ、根拠の文と聞き返しの文案を出させる
- 自動計算の結果とAIの判定から、`clear`(確認点なし)か `check`(確認点あり)かを規則で決める
- 自動`check` のものは、経理部の担当に承認の依頼(確認点の一覧付き)を出す
- 人経理部の担当が確認点を見て、申請者へ聞き返すか、問題なしとして通す
- 自動`clear` のものと、経理が通したものを、確認点の要約付きで上長の承認に回す
- 人上長が出張の要否を判断して承認する。結果は台帳に記録される
各工程の詳しい説明を読む
- 社員が Microsoft Forms で事前申請を出す
- 経理部の担当が回答の一覧を開き、新しい申請を読む
- 社員の一覧で等級を確かめ、規程の表から日当と宿泊の上限を引いて、見込み額と比べる
- 交通の手段(グリーン車・航空機・タクシー)と前泊・後泊について、理由が規程の条文に当たるかを読む
- 理由が足りなければ申請者にメールで聞き、返事を待つ
- 確認した内容をメモにして、上長へ承認の依頼をメールで送る
- 承認された申請を台帳のスプレッドシートに写す
(a)計算に時間がかかる。 等級と地域の区分で上限が変わり、日帰りか宿泊か、出発と帰着の時刻で日当の扱いも変わります。判断らしい判断は無いのに、表を2つ開いて見比べるだけで3分かかります。
(b)理由の読み方が人によって違う。 「移動時間の短縮のため」とだけ書いて航空機を選んだ申請を、通す担当と聞き返す担当がいます。規程は「所要時間が大きく短くなる場合」としか書いておらず、どこまで書かれていれば足りるかは担当の経験に寄っています。
(c)確認の漏れが精算で見つかる。 月末に申請が集中すると4番目が流し読みになり、精算の段で「前泊の理由が無い」「グリーン車の条件に当たらない」と分かることがあります。出張は終わっているので、差額を本人負担にするか例外で認めるかの話になり、本人も経理も重い思いをします。
- 【人】 社員が、これまでどおり Microsoft Forms で事前申請を出す
- 【自動】 回答の送信をきっかけにフローが動き、回答の中身を取り出す
- 【自動】 社員の一覧から等級と拠点を引き、規程の表から日当と宿泊の上限を計算して見込み額と比べる
- 【自動】 交通の手段・前泊・後泊・日程に、規程の条文の要件が当たる項目があるかをフローが洗い出す
- 【自動】 当たった項目だけをAIに渡し、申請の理由に要件を満たす記述があるかを判定させ、根拠の文と聞き返しの文案を出させる
- 【自動】 計算の結果とAIの判定から、
clear(確認点なし)かcheck(確認点あり)かを規則で決める - 【自動】
checkのものは、経理部の担当に承認の依頼(確認点の一覧付き)を出す - 【人】 経理部の担当が確認点を見て、申請者へ聞き返すか、問題なしとして通す
- 【自動】
clearのものと、経理が通したものを、確認点の要約付きで上長の承認に回す - 【人】 上長が出張の要否を判断して承認する。結果は台帳に記録される
8番目が、この設計の分かれ目です。 経理部が開くのは check の申請だけです。clear のものは計算の結果と「確認点なし」の要約を付けて、そのまま上長へ回ります。全件を経理が開く設計にすると、80.0時間はほとんど減りません。
02今回想定するシステム構成
出張の事前申請(Microsoft Forms) │ ▼【トリガー】When a new response is submitted Power Automate(クラウドフロー) ├──▶ Get response details:回答の中身を取り出す ├──▶ 社員の一覧から等級・拠点を引く ├──▶ 規程の表から日当・宿泊の上限を計算(AIを通さない) ├──▶ 条文の要件が当たる項目を洗い出す(グリーン車・航空機・タクシー・前泊・後泊・休日をはさむ日程) ▼ AI Builder のプロンプト(Run a prompt、JSON 出力) │ 項目ごとに:要件を満たす記述があるか/根拠の文/聞き返しの文案 ▼ Power Automate ── clear / check を規則で決める ├── check ──▶ Approvals:経理部の担当(確認点の一覧を Markdown で) ▼ Approvals:上長(計算の結果と確認点の要約) ▼ 出張申請の台帳(SharePoint リスト)に記録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Power Automate(クラウドフロー) | Make、n8n、Zapier |
| 生成AI | AI Builder のプロンプト(Run a prompt、JSON 出力) | Azure OpenAI(Microsoft Foundry)、Claude |
| 連携 | SharePoint リスト(規程の表・条文の要件・社員の一覧・出張申請の台帳) | Microsoft Lists |
| 承認 | Approvals(Start and wait for an approval) | Teams の承認アプリ |
| フォーム | Microsoft Forms(出張の事前申請) | SharePoint リストの入力画面 |
入口は、Microsoft Forms の When a new response is submitted です。 このトリガーが返すのは回答のIDだけなので、Get response details で回答の中身を取り出します。 経理部のグループで作ったフォームはドロップダウンに出てこないため、フォームの編集画面のアドレスにある「FormId=」の後ろの部分を手で入れる必要があるとされています。
AIは、AI Builder のプロンプトを Run a prompt で呼びます。 2025年5月から「Create text with GPT using a prompt」の名前が Run a prompt に変わっています。出力は JSON にでき、例を書き換えて Custom にすると、保存したときの形が実行時にも使われます。
承認は、Approvals の Start and wait for an approval です。 承認を出して、完了するまでフローを止めて待つアクションです。承認の詳細欄は Markdown で書けるとされているので、確認点を箇条書きと表で並べられます。
03どうやって実装するのか
処理の起点を決める
フォームの回答が送信されたことを起点にします。 When a new response is submitted は送信ごとに動くので、出張の直前に出された申請も、その場で確認点が付いて承認に回ります。 1日1回の定時実行にはしません。翌日の出張の申請が、翌朝の処理では間に合わないからです。
出発日が近い申請は、急ぎの印を付けます。 出発日が送信の翌稼働日以内なら、承認の題名の先頭に【急ぎ】を付け、経理部の担当には Teams でも知らせます。規程の確認は省きません。 急ぎの申請ほど前泊やタクシーの理由が書かれていないことが多いからです。
同じ出張の申請が二重に出ることがあります。 申請者が日程を直して出し直したときです。台帳に、同じ申請者・同じ出張先・同じ出発日の行が直近7日以内にあれば、新しい申請を「差し替えの可能性」として扱い、経理部の担当に前の申請を取り消すかを確かめてもらいます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 事前申請 | 出張先、用務、訪問先、出発・帰着の日時、区間ごとの手段・座席の区分・見込み額、宿泊の泊数・宿泊地・見込み額、前泊・後泊の理由、その他の理由 | Microsoft Forms の回答 |
| 社員の一覧 | 社員番号、等級、所属の拠点、上長 | SharePoint リスト |
| 規程の表 | 等級×日帰り・宿泊ごとの日当、等級×地域の区分ごとの宿泊の上限、地域の区分の一覧 | SharePoint リスト |
| 条文の要件 | 項目(グリーン車・航空機・タクシー・前泊・後泊・休日の日程)ごとに、条番号、条文、要件を満たすとみなす記述の例と、足りない記述の例 | SharePoint リスト |
| 過去の確認の記録 | 同じ申請者・同じ区間で、以前に経理が通した理由 | 出張申請の台帳 |
質を決めるのは、条文の要件のリストです。 条文だけを渡すと、「所要時間が大きく短くなる場合」の「大きく」をAIが自分の感覚で読みます。「足りる記述の例:新幹線と在来線の乗継ぎで片道5時間、航空機で2時間半」「足りない記述の例:時間短縮のため」のように、経理部が通してきた判断を例として書きます。 第3章の(b)の担当ごとのぶれは、ここで止めます。
過去の確認の記録は、同じ聞き返しを繰り返さないために渡します。 毎月同じ現場へ航空機で行く技術者に、毎回同じ理由を聞き返すのは無駄です。以前に経理が通した理由と同じ内容なら、根拠にその記録を挙げて met にできるようにします。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| 回答の中身 | Microsoft Forms | Get response details(トリガーの Response Id を渡す) |
| 等級・拠点・上長 | 社員の一覧 | Get items の Filter Query で申請者のメールアドレスを絞る |
| 日当・宿泊の上限 | 規程の表 | Get items(等級と地域の区分で絞る) |
| 条文の要件 | 条文の要件のリスト | Get items(前処理で当たった項目だけ) |
| 過去の確認の記録 | 出張申請の台帳 | Get items の Filter Query で申請者と区間を絞り、Top Count で直近5件 |
条文の要件は、当たった項目だけを渡します。 グリーン車の区間が無い申請に、グリーン車の条文を渡す必要はありません。渡す条文が少ないほど、関係の無い条文を根拠に挙げる誤りが減ります。
等級は申請の欄からではなく、社員の一覧から引きます。 申請者に等級を選ばせると、選び間違いがそのまま上限の計算に入ります。本人が書いた値と一覧の値が違えば、一覧の値で計算し、違いを確認点に載せます。
AIへ渡す前に整形する
- 日当の計算 … 出発と帰着の日時から日帰りか宿泊かと日数を出し、等級の日当を掛けます。計算はフローの式で行い、AIに渡しません
- 宿泊の上限の比較 … 宿泊地を地域の区分の一覧で区分に置き換え、等級×区分の上限と1泊の見込み額を比べます。区分に置き換えられない宿泊地は確認点にします
- 条文の要件が当たる項目の洗い出し … 座席の区分がグリーン車の区間、手段が航空機・タクシーの区間、出発日の前日の宿泊(前泊)、用務の翌日の宿泊(後泊)、日程に土日・祝日をはさむもの、を拾います
- 理由の欄の空の確認 … 当たった項目があるのに、前泊・後泊の理由とその他の理由の欄がどちらも空なら、AIに渡さずに
not_statedとして確認点にします - 金額の形の確認 … 見込み額が数字でない、0円、極端に大きい(規程の上限の3倍超など)ものは「値の確認」の印を付けます。AIに直させません
- 個人名の扱い … 申請者の氏名と訪問先の担当者名はプロンプトに渡しません。訪問先は会社名だけを渡します
1番目と2番目をAIの外に置くのが、いちばん大事です。 金額の比較をAIにさせると、表の読み違いや桁の取り違えが起きたときに気づけません。フローの式なら、同じ入力には必ず同じ答えが出ます。
AIに処理させる
させるのは、前処理で当たった項目ごとに、申請の理由の文に条文の要件を満たす記述があるかを判定し、根拠の文と、足りないときの聞き返しの文案を書くことです。
| 項目 | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| グリーン車 | 等級か乗車時間の条件に当たる記述があるか | 記述が無ければ not_stated |
| 航空機 | 距離か所要時間の短縮の条件に当たる記述があるか | 「時間短縮のため」だけなら insufficient |
| タクシー | 公共の交通機関が無い・深夜・重い荷物のいずれかの記述があるか | 記述が無ければ not_stated |
| 前泊 | 用務の開始時刻と、始発では間に合わない旨の記述があるか | 開始時刻が無ければ insufficient |
| 後泊 | 用務の終了時刻と、当日中に戻れない旨の記述があるか | 終了時刻が無ければ insufficient |
| 休日をはさむ日程 | 休日に用務がある旨か、休日を私用に使う旨の記述があるか | どちらとも読めなければ ambiguous |
not_stated と insufficient を分けるのが要です。 前者は理由が何も書かれていないこと、後者は書かれているが要件に届かないことです。聞き返す中身が違います。 前者には「理由を書いてください」、後者には「始発の時刻と用務の開始時刻を書いてください」と、足りない要素を名指しして聞き返せます。
| させないこと | 理由 |
|---|---|
| 日当・宿泊の上限の計算 | 表で決まる。フローの式で行う |
| 出張を認めるかの判断 | 上長が決める |
| 規程を超える手配を例外として認めるかの判断 | 経理部長が決める |
| 所得税の非課税の範囲に収まるかの判断 | 顧問税理士と経理部が決める |
| 申請に無い事情を補うこと | 「おそらく早朝の会議」などと補わない |
最後の行が、いちばん起きやすい失敗です。 前泊の申請で用務の開始時刻が書かれていないと、AIは「訪問先が遠方のため、早朝の用務と考えられる」と補って met にします。補った瞬間、聞き返すべき点が消えます。
指示内容を固定する
あなたは商社の経理部で、出張の事前申請を旅費規程に照らして確かめる立場です。
申請に書かれていることだけを使って判定してください。推測で補わないでください。
【判定する項目】
下の「確認する項目」に挙がったものだけを判定してください。
挙がっていない項目について書かないでください。
【status の選び方】
- met .......... 条文の要件を満たす記述が申請にある
- insufficient . 理由は書かれているが、要件を満たすのに必要な要素が足りない
- not_stated ... 理由が書かれていない
- ambiguous .... 記述が要件に当たるとも当たらないとも読める
迷ったときに met を選ばないでください。
【厳守事項】
- 条文の要件と「足りる記述の例」「足りない記述の例」に照らして判定してください。
- 申請に書かれていない事情を補わないでください。
「遠方のため早朝と考えられる」のように推し量って met にしないでください。
- 用務の開始・終了の時刻、乗車時間、距離が書かれていなければ、
それを「書かれていない」として扱ってください。
- 過去の確認の記録に、同じ区間・同じ理由で通したものがあれば、
その記録番号を evidence に書いて met にしてかまいません。
理由が違う場合は使わないでください。
- evidence には、判定の根拠にした申請の文か記録番号をそのまま写してください。
- insufficient と not_stated のときは、申請者への聞き返しの文案を
question に書いてください。足りない要素を名指しし、1〜2文にしてください。
- 金額、日当、宿泊の上限について書かないでください。
- 出張を認めるべきか、規程の例外にすべきかを書かないでください。
- Don't include JSON markdown in your answer.
【確認する項目】{target_items}
【条文の要件】{rule_clauses}
【申請】出張先:{destination}/用務:{purpose}/訪問先:{visit_company}
出発:{depart_at}/帰着:{return_at}
区間:{segments}
宿泊:{lodging}
前泊・後泊の理由:{stay_reason}
その他の理由:{other_reason}
【過去の確認の記録】{past_approvals}
「挙がっていない項目について書かない」を最初に置きます。 何も言わないと、申請の全体を見て「宿泊費がやや高い」のような所見を足してきます。金額の比較はフローが済ませているので、AIの所見と食い違うと承認者が迷います。
「推し量って met にしない」を例文付きで書くのは、それがいちばん自然に出る誤りだからです。 禁止の言葉だけだと「推測ではなく一般的な事情として」と言い換えて補います。具体的な言い回しを挙げて禁じます。
最後の英文の1行は、公式の案内に合わせたものです。 JSON が作れないというエラーが出るとき、この一文を足すよう案内されています。
出力形式を固定する
次の形のJSONで受け取ります。 AI Builder のプロンプトの出力を JSON にし、例を書き換えて Custom の形に固定します。
{
"checks": [
{
"item": "green_car | airplane | taxi | pre_stay | post_stay | holiday_schedule",
"segment_no": "",
"status": "met | insufficient | not_stated | ambiguous",
"clause_no": "",
"evidence": "",
"question": ""
}
]
}
キーの付いた要素の配列にしているのは、公式の制約に合わせたものです。 JSON の形は、キーの無い配列(["abc", "def"] のような形)を定義できないとされています。項目ごとに item を持たせた要素の配列にします。
JSON にする理由の1つ目は、clear と check を規則で決められることです。
| 判定 | 条件 |
|---|---|
clear | 上限の比較がすべて範囲内で、checks がすべて met(または当たる項目が無い) |
check | 上限を超える見込み額がある/checks に met 以外が1つでもある/等級の食い違い・値の確認の印がある |
2つ目は、承認の詳細欄に並べ替えて載せられることです。 check の申請は、経理部の担当への承認の詳細欄に、上限の比較の表と、checks を status の重い順に並べた箇条書きを Markdown で載せます。question は「申請者へ聞き返す」を選んだときのメールの下書きに使います。
3つ目は、項目ごとの結果を後から数えられることです。 どの項目が insufficient になりやすいかを月ごとに数えると、申請フォームのどこに入力欄を足せばよいかが分かります。前泊が多ければ「用務の開始時刻」の欄を足します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Microsoft Forms | When a new response is submitted、Get response details | 申請の受け取り |
| 社員の一覧・規程の表・条文の要件(SharePoint リスト) | Get items | 計算と照合の材料を引く |
| AI Builder のプロンプト | Run a prompt | 項目ごとの判定と聞き返しの文案 |
| Approvals | Start and wait for an approval | 経理部の担当の確認と、上長の承認 |
| 出張申請の台帳(SharePoint リスト) | Create item、Update item | 申請、計算の結果、判定、承認の結果の記録 |
| Outlook | メールの下書き | 申請者への聞き返し |
承認は2段にします。 check の申請は、まず経理部の担当に「通す/申請者へ聞き返す」を選んでもらい、通したものだけを上長へ回します。上長の承認の詳細欄には、計算の結果と「確認点なし」または「経理部確認済み:確認点と結論」の要約を載せます。 上長は規程の照合をやり直さず、出張の要否だけを判断します。
承認の通知の送り元に注意します。 公式の説明では、承認のメールは標準のメールアカウントから送られ、自分で送ったリンク付きのメールからは承認できないとされています。また、承認者の詳細にはフローの作成者が常に表示されるので、経理部の共用アカウントでフローを作ります。担当者個人のアカウントで作ると、その人の名前が全社の承認に出続けます。
経費精算システムには書き込みません。 事前申請の結果は台帳に残し、精算の段で経理部が参照します。精算システムとつなぐのは、この構成が安定してからの別の話です。
人が確認する
人が見るのは、次の3つの場面です。
- 経理部の担当が
checkの申請を開いたとき … 確認点と根拠の文を読み、通すか、申請者へ聞き返すかを決めます。 聞き返すときはquestionの下書きを直して送ります - 上限を超える見込み額がある申請 … 例外として認めるかを経理部長が決めます。AIの判定とは別に、金額の表だけで判断します
- 上長の承認 … 出張の要否を判断します。規程の照合は経理部の結論を信じます
clear の申請は経理部が開きません。 その代わり、毎週20件を無作為に選んで経理部の担当が読み直し、 met の判定が経理部の判断と合っているかを確かめます。合わない項目は、条文の要件のリストの「足りない記述の例」に戻します。
目標は、480件をならして1件2.5分です。 clear の申請は上長に回るだけで経理部の手は動かず、check の申請は確認点を読んで判断するので数分かかります。check が全体の3〜4割という想定でならすと2.5分です。 抜き取りの読み直しもここに含みます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 理由の欄がすべて空で、当たる項目がある | AIに渡さず not_stated として check へ |
| 宿泊地が地域の区分に置き換えられない | 上限の比較を「区分不明」として check へ |
| 申請の等級と社員の一覧の等級が違う | 一覧の値で計算し、食い違いを確認点に載せる |
| 見込み額が数字でない・極端に大きい | 「値の確認」の印を付けて check へ。AIに直させない |
checks に確認する項目に無い item が入る | その要素を捨て、ログに残す |
| JSON が作れないエラー | 同じ入力で1回だけ再実行。続けて失敗すれば全項目を ambiguous として check へ |
| 同じ出張の申請が出し直された | 「差し替えの可能性」として経理部が前の申請を取り消すかを決める |
| 承認が返ってこない | 2稼働日で再通知。出発日の前日なら経理部の担当にも |
| 出発後に申請が出された | 事後申請として check に回し、題名に【事後】を付ける |
上の4行が大半を占めます。 どれもAIの問題ではなく、申請フォームの入力欄と社員の一覧の整い方の問題です。理由の欄が空の申請が多ければ、フォームの側で当たる項目があるときに理由を必須にするほうが効きます。
記録を残す
- フォームの回答ID、申請の原文、受け取った時刻
- 日当と宿泊の上限の計算に使った等級・地域の区分・規程の表の版、計算の結果
- 前処理で当たった項目と、AIに渡した条文の要件の版
- AIが返したJSONの全文と、
clear/checkの判定 - 経理部の担当の選択(通す/聞き返す)と、聞き返しの内容と返事
- 上長の承認の結果、承認者、日時
- 抜き取りで読み直した申請と、判定が合わなかった項目
2つ目と3つ目で版を残すのは、規程が改定されるからです。 日当や宿泊の上限は数年ごとに見直され、改定の前後をまたぐ申請を後から見たとき、どちらの表で計算したかが残っていないと、精算の段の照合ができません。
5つ目は、条文の要件のリストを育てる材料です。 経理部の担当が「通す」とした insufficient は、例が厳しすぎる印です。「聞き返す」とした met は、例が甘すぎる印です。
04実装レベルの3段階
半自動化で、1件10分が2.5分になり、この段階が本記事の想定です。 計算と照合と依頼メモが自動になり、経理部の手が動くのは check の申請だけになります。本格構成で減るのは工数より、聞き返しの文面を書く手間と、規程の手入れの判断にかかる時間です。
05工数削減シミュレーション
導入後 480件 × 2.5分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 営業や技術の社員の国内出張が多く、月に数百件の出張の事前申請を経理部が旅費規程と照らして確かめてから承認に回している商社・製造業・IT企業。規程に役職ごとの日当と宿泊の上限、交通の手段の条件(グリーン車・航空機・タクシー)があり、申請の理由の書き方がばらばらで、確認が担当者の経験に寄っている場合。Microsoft 365 を使っていて、規程の表と条文を SharePoint のリストに置ける場合。
- 出張が月に数十件で、上長の承認だけで足りている場合。出張手配のサービスで予約の段階から規程の上限が機械的にかかり、申請の時点で選べる手段と宿泊が限られている場合。なお、規程を超える支給を認めるか、支給額が所得税の非課税の範囲に収まるかという判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の事前申請から40件を選ぶ(うち数件は、精算の段で規程に当たらないと分かった申請を入れる)
- 総務部と経理部で、グリーン車・航空機・タクシー・前泊・後泊の条文ごとに「足りる記述の例」「足りない記述の例」を2つずつ書く
- 条文と例と、40件の区間・宿泊・理由の欄を、Microsoft Copilot などの手元のAIサービスに貼り付ける
- 「項目ごとに、要件を満たす記述があるかを判定してください。書かれていない場合と、足りない場合を分けてください。書かれていない事情を補わないでください。金額は見ないでください」と指示する
- 出てきた判定を、当時の経理部の確認の結果と突き合わせる
40件は必ずやってください。 フローを組む前に、「条文と例で判定がそろうのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の経理部の判断とおおむね同じになった | フローの組み立てに進む |
| 前泊を補って通してしまう | 指示の「補わない」に例文を足す。構成は有効 |
| 航空機の判定が当時の判断と揺れる | 「足りる記述の例」が足りない。経理部の判断を例に足す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| グループのフォームがトリガーの一覧に出ない | フォームの編集画面のアドレスの「FormId=」の後ろを手で入れる |
| 金額の比較をAIにさせて桁を取り違える | 計算はフローの式で行い、AIに渡さない |
前泊の理由を補って met にする | 「推し量らない」を例文付きで書く |
| 「時間短縮のため」が人によって通ったり通らなかったりする | 条文ごとに足りる・足りない記述の例を書く |
| 関係の無い条文を根拠に挙げる | 前処理で当たった項目の条文だけを渡す |
| AIが金額の所見を足してくる | 「挙がっていない項目について書かない」「金額について書かない」と書く |
| キーの無い配列で JSON の形を作れない | 項目ごとに item を持たせた要素の配列にする |
| 承認の詳細にフロー作成者の名前が出続ける | 経理部の共用アカウントでフローを作る |
| 等級の選び間違いが上限の計算に入る | 社員の一覧から引き、食い違いを確認点にする |
| 規程の改定の前後で計算が合わない | 規程の表に版と適用開始日を持たせ、出発日で選ぶ |
上から2行目と3行目が、この構成の失敗のほとんどです。 計算は式で行い、事情の補いは禁じます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 社員の等級、出張の日程と行き先、訪問先の会社名、用務の内容、交通と宿泊の見込み額です。日程と行き先は、社員の行動の記録でもあります。
- 氏名と訪問先の担当者名をAIに渡さない … 判定に名前は要りません。台帳にだけ残し、プロンプトには会社名と日程だけを入れます
- cross-geo の扱いを確かめる … 日本の地域では既定のモデルが GA (cross-geo) と表示され、地域の外でデータを処理する場合があるとされています。訪問先の会社名や用務の内容を地域外で処理してよいか、社内の規程と取引先との守秘の取り決めを先に確かめます
- AIの判定を人事の評価に使わない …
insufficientの多さは申請の書き方の問題で、本人の働き方の評価に使う材料ではありません。 集計はフォームと規程の手入れのためだけに使います - 税務の判断をこの構成に持たせない … 所得税基本通達9-3は、非課税とされる旅費を、旅行の目的・目的地・行路・期間の長短・宿泊の要否・職務内容や地位などからみて通常必要とされる範囲内のものとし、役員と使用人の全てを通じて適正なバランスが保たれた基準かどうかを勘案するとしています。規程の額そのものが妥当か、超える支給をどう扱うかは、顧問税理士と経理部が決めます
- 台帳の閲覧範囲を絞る … 出張の日程と行き先の一覧は、社内でも広く見せるものではありません。SharePoint のリストの権限を、経理部・総務部と各申請者の上長に絞ります
誤りが起きた場合のリスクは、規程に当たらない手配が確認されないまま承認されることと、要件を満たす申請を聞き返して出張の準備を遅らせることの2つです。 前者はAIが事情を補うと起き、後者は例が厳しすぎると起きます。補いの禁止と、抜き取りの読み直しで両方を見張る設計にしています。
10まず何から始めるか
1週目:条文の要件のリストを作る
総務部と経理部で、グリーン車・航空機・タクシー・前泊・後泊・休日をはさむ日程の条文を1行ずつリストにし、それぞれに「足りる記述の例」「足りない記述の例」を2つずつ書きます。規程の表に版と適用開始日の列を足します。
2週目:40件で試す
先月の申請から40件を選び、手元のAIサービスに条文と例と一緒に貼って判定させます。当時の経理部の確認と突き合わせ、揺れた項目の例を足します。
3週目:フォームと社員の一覧を整える
フォームに「用務の開始時刻」「用務の終了時刻」の欄を足し、社員の一覧に等級と上長の列がそろっているかを確かめます。承認のフローを作る経理部の共用アカウントを用意します。
4週目:フォームから2段の承認までをつなぐ
Power Automate で、フォームの送信から上限の計算、当たる項目の洗い出し、AI Builder のプロンプト、経理部と上長への承認、台帳への記録までを作ります。最初の2週間は、clear の申請も経理部が読み、判定と見比べます。
2か月目: clear の申請を経理部を通さずに上長へ回す運用に切り替え、毎週20件の抜き取りを始めます。3か月目以降: 聞き返しの下書きと項目別の月次集計を足し、1件10分が何分になったかを実測します。抜き取りで判定が合わない項目が落ち着き、条文の要件のリストの手入れが月1回で済むようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| When a new response is submitted と Get response details があり、トリガーが Response Id を返すこと。グループのフォームはドロップダウンに出ず、「FormId=」の後ろを手で入れる必要があること。組織のアカウントでのみ動くこと | Microsoft Learn: Microsoft Forms connector | 2026-10-15 |
| 2025年5月から Create text with GPT using a prompt の名前が Run a prompt になったこと。プロンプトの入力に前の手順の内容を入れられること。Approvals を使って人の確認を挟めること | Microsoft Learn: Use your prompt in Power Automate | 2026-10-15 |
| 出力に JSON を選べ、Custom の形が保存時に固定され実行時に使われること。スキーマを直接編集できず、キーの無い配列は定義できないこと。JSON が作れないときに「Don't include JSON markdown in your answer」を足すよう案内されていること | Microsoft Learn: JSON output | 2026-10-15 |
| 既定のモデルが GPT-4.1 mini で、温度の既定が0であること。Power Automate でプロンプトを使うとプロンプトビルダーのクレジットを消費し、AI Builder のクレジットが先に使われること | Microsoft Learn: Change the model version and settings | 2026-10-15 |
| 日本で GPT-4.1 mini が GA (cross-geo) であり、cross-geo のモデルは地域外でデータを処理する場合があること | Microsoft Learn: Prompt model availability by region | 2026-10-15 |
| Start and wait for an approval が承認の完了まで待つこと。詳細欄で Markdown が使えること。承認の詳細にフローの作成者が常に表示されること。承認のメールは標準のアカウントから送られ、自分で送ったリンク付きのメールからは承認できないこと | Microsoft Learn: Standard approvals connector | 2026-10-15 |
| 非課税とされる旅費が、旅行の目的・目的地・行路・期間の長短・宿泊の要否・職務内容及び地位等からみて通常必要とされる範囲内の金品であり、役員・使用人の全てを通じた適正なバランスと、同業種・同規模の他の使用者等との比較を勘案すること(所得税基本通達9-3) | 国税庁: 所得税基本通達 第9条関係 | 2026-10-15 |
規程を超える手配を例外として認めるか、支給額が非課税の範囲に収まるかは、経理部長と顧問税理士が決めてください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1643)についてのご相談はこちらから。
