Media > AI活用ユースケース > 総務 > 市役所の各課から届く物品の購入依頼メールから、品名・数量・予算科目・納期を抜き出して購入台帳にそろえ、見積の要否と予算の残りを知らせる

市役所の各課から届く物品の購入依頼メールから、品名・数量・予算科目・納期を抜き出して購入台帳にそろえ、見積の要否と予算の残りを知らせる

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

市役所の各課から届く物品の購入依頼メールから、品名・数量・予算科目・納期などを抜き出して購入台帳に1行ずつそろえます。契約規則に照らした見積の要否と、その予算科目の残りを、依頼課と契約担当に知らせます。

サマリー
生成AI
Azure OpenAI Service/Claude
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
医療/教育/自治体
対象部門
総務/購買
対象業務
データ入力・転記/台帳・マスタ管理
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
抽出
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
18h/月
想定削減
70%
年間削減
504h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 各課の担当者が、契約管財課の共有メールボックスへ購入依頼のメールを送る
  2. 契約管財課の担当が、メールと添付の依頼票を開いて読む
  3. 品名・規格・数量・予定金額・予算科目・納期・納品場所を、購入台帳に写す
  4. 予算科目や納期が書かれていなければ、依頼課へ聞き返しのメールを書く
  5. 財務会計システムの出力を開き、その課のその予算科目の残りを確かめる
  6. 予定金額と市の契約規則の金額の区分を照らして、見積の要否と見積を取る数を決める
  7. 依頼課に受付の連絡をし、業者へ見積の依頼を出す
導入後(After)
  1. 人各課の担当者が、これまでどおり共有メールボックスへ購入依頼のメールを送る
  2. 自動メールの到着をきっかけにフローが動き、本文と添付の有無を取り出す
  3. 自動AIが品名・規格・数量・単価・予定金額・予算科目・納期・納品場所を抜き出し、書かれていない項目を示す
  4. 自動予算科目の一覧と照らして科目を確かめ、予算の残りの一覧から残額を引く
  5. 自動予定金額と、同じ課・同じ品目の今月の依頼の合計を、契約規則の金額の区分に当てはめる
  6. 自動購入台帳(SharePoint リスト)に「受付前」の1行を作る
  7. 自動受付の連絡か、書き漏れの聞き返しの文面を下書きし、契約担当の承認に回す
  8. 人契約担当が、抜き出した項目と見積の区分、文面を確かめ、直して承認する
  9. 自動承認された文面を共有メールボックスから依頼課へ送り、台帳を「受付済み」か「聞き返し中」にする
  10. 人契約担当が、見積の取り方と契約の方法を決め、業者への手配を始める
各工程の詳しい説明を読む
  1. 各課の担当者が、契約管財課の共有メールボックスへ購入依頼のメールを送る
  2. 契約管財課の担当が、メールと添付の依頼票を開いて読む
  3. 品名・規格・数量・予定金額・予算科目・納期・納品場所を、購入台帳に写す
  4. 予算科目や納期が書かれていなければ、依頼課へ聞き返しのメールを書く
  5. 財務会計システムの出力を開き、その課のその予算科目の残りを確かめる
  6. 予定金額と市の契約規則の金額の区分を照らして、見積の要否と見積を取る数を決める
  7. 依頼課に受付の連絡をし、業者へ見積の依頼を出す

(a)書き方がばらばらで、写すのに時間がかかる。 本文に書く課、依頼票を添付する課、URLだけの課が混ざり、同じ項目を探す場所が依頼ごとに違います。 3番目の転記がいちばん時間を取ります。

(b)書き漏れの聞き返しが多い。 予算科目が「消耗品」とだけ書かれ、どの節・細節か分からない依頼、納期が「なるべく早く」の依頼、納品場所が書かれていない出先機関の依頼が毎月あります。聞き返しのメールを書き、返事を待つあいだ、その依頼は台帳の上で止まります。

(c)見積の要否が担当によってぶれる。 予定金額が規則の区分の境目に近い依頼で、「単価×数量」で見るか「同じ時期の同じ品目の合計」で見るかが担当によって違います。同じ品目を同じ月に分けて依頼してくる課もあり、見落とすと区分を下回る形に分かれたまま手配されます。

(d)予算の残りの確認が後回しになる。 財務会計システムの出力を開いて探す手間があり、忙しい時期は見積の依頼を先に出してしまいます。後から予算が足りないと分かり、依頼課と業者の両方に連絡し直すことになります。

  1. 【人】 各課の担当者が、これまでどおり共有メールボックスへ購入依頼のメールを送る
  2. 【自動】 メールの到着をきっかけにフローが動き、本文と添付の有無を取り出す
  3. 【自動】 AIが品名・規格・数量・単価・予定金額・予算科目・納期・納品場所を抜き出し、書かれていない項目を示す
  4. 【自動】 予算科目の一覧と照らして科目を確かめ、予算の残りの一覧から残額を引く
  5. 【自動】 予定金額と、同じ課・同じ品目の今月の依頼の合計を、契約規則の金額の区分に当てはめる
  6. 【自動】 購入台帳(SharePoint リスト)に「受付前」の1行を作る
  7. 【自動】 受付の連絡か、書き漏れの聞き返しの文面を下書きし、契約担当の承認に回す
  8. 【人】 契約担当が、抜き出した項目と見積の区分、文面を確かめ、直して承認する
  9. 【自動】 承認された文面を共有メールボックスから依頼課へ送り、台帳を「受付済み」か「聞き返し中」にする
  10. 【人】 契約担当が、見積の取り方と契約の方法を決め、業者への手配を始める

8番目が、この設計の分かれ目です。 依頼課へ出す連絡は、すべて契約担当が確かめてから送ります。市の名前で出る連絡を、AIの抜き出しだけで送らないためです。そのかわり、担当は依頼を読み直すのではなく、抜き出した項目と原文の該当箇所を並べた画面で確かめます。

5番目で同じ課・同じ品目の合計を出すのは、第3章の(c)のためです。 分けて届いた依頼を、規則の区分に当てはめる前に足し合わせて示します。分割に当たるかどうかを決めるのは契約担当です。 構成は、気づける材料を出すところまでにします。

02今回想定するシステム構成

構成図
各課の担当者 ── 購入依頼のメール
   │
   ▼【トリガー】When a new email arrives in a shared mailbox (V2)
Power Automate(クラウドフロー)
   ├──▶ 本文・件名・送信者・添付の有無を取り出す
   ▼
AI Builder のプロンプト(Run a prompt、JSON 出力)
   │   品名/規格/数量/単価/予定金額/予算科目/納期/納品場所
   │   書かれていない項目/原文の該当箇所
   ▼
Power Automate
   ├──▶ 予算科目の一覧(SharePoint リスト)で科目を確かめる
   ├──▶ 予算の残りの一覧(SharePoint リスト)から残額を引く
   ├──▶ 購入台帳から同じ課・同じ品目の今月の依頼を合計する
   ├──▶ 契約規則の金額の区分(SharePoint リスト)に当てはめる
   ├──▶ 購入台帳に「受付前」の1行を作る
   ▼
AI Builder のプロンプト ── 受付の連絡/聞き返しの文面の下書き
   ▼
Start and wait for an approval of text ──▶【契約担当が直して承認】
   ▼
Send an email from a shared mailbox (V2) ──▶ 依頼課へ
役割想定する製品代替候補
ワークフローPower Automate(クラウドフロー)Make、n8n、Zapier
生成AIAI Builder のプロンプト(Run a prompt、JSON 出力)Azure OpenAI(Microsoft Foundry)、Claude
連携SharePoint リスト(購入台帳・予算科目の一覧・予算の残りの一覧・金額の区分)Microsoft Lists
メールOffice 365 Outlook(契約管財課の共有メールボックス)Exchange Online の別の受付用メールボックス

入口は、Office 365 Outlook の When a new email arrives in a shared mailbox (V2) です。 公式の説明では、このトリガーは受信日時をもとに動き、設定したフォルダの中だけを見るとされています。また、ユーザーどうしで共有しているメールボックスでは、どちらかが相手のメールボックスへのフルアクセスを持っていないと動かないとされているので、Microsoft 365 の共有メールボックスとして作られているかを先に確かめます。

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 of text で挟みます。 AI Builder の公式の手順で、プロンプトの出力のあとに置く人の確認として案内されているアクションで、承認する人が文面を直してから応答できます。

返信は Send an email from a shared mailbox (V2) で送ります。 このアクションは Microsoft 365 の共有メールボックスの機能でのみ動くとされ、個人のメールボックスから変換した共有メールボックスでは動かないとされています。

03どうやって実装するのか

Step1

処理の起点を決める

共有メールボックスへのメールの到着を起点にします。 対象は受信トレイではなく、仕分けのルールで「購入依頼」フォルダへ移したメールにします。件名に「【購入依頼】」を含むもの、または各課の担当者が依頼の様式から送ったものをルールで移します。トリガーは設定したフォルダの中だけを見るので、問い合わせや業者からの連絡を巻き込みません。

ここで注意が1つあります。 公式の説明では、フォルダへ移したメールについて、古いメールにも断続的にトリガーが動くことがあるとされています。トリガーが受信日時をもとに動き、移しても受信日時は変わらないためです。メッセージIDで台帳を引き、すでに行があれば止める処理を最初に置きます。

添付の依頼票は、本文と同じ扱いにはしません。 Word や Excel の依頼票の中身を読むには別の処理が要るので、この構成では本文に書かれた項目だけを抜き出し、添付があることを台帳に印として残します。 添付にしか書かれていない依頼は、第7章の例外処理で扱います。導入に合わせて、依頼はメール本文の様式で送るよう各課に案内します。

Step2

入力データを集める

データ中身取得元
購入依頼のメール件名、本文、送信者、受信日時、添付の有無、メッセージID共有メールボックス
課の一覧送信者のアドレスと課の対応、出先機関の納品場所SharePoint リスト
予算科目の一覧款・項・目・節・細節のコードと名前、各課での呼び方SharePoint リスト
予算の残りの一覧課×予算科目ごとの予算額・執行済み額・残額と、出力した日財務会計システムの週1回の出力を SharePoint リストへ
金額の区分市の契約規則で決めた、見積を何者から取るか・随意契約の上限などの区分SharePoint リスト
今月の依頼同じ課・同じ品目の今月の依頼の行購入台帳

質を決めるのは、予算科目の一覧の「各課での呼び方」の列です。 各課は「消耗品費」「事務用品」「需用費で」とさまざまに書きます。呼び方の一覧が無いと、AIが科目を当て推量で決めます。 呼び方と正式な科目の対応を、財政課の担当と作ります。

予算の残りは、出力した日と一緒に持ちます。 週1回の出力なので、その後の執行は反映されていません。連絡の文面にも「〇月〇日時点」と必ず書きます。 残額を最新の数字として扱わないことが、第3章の(d)を防ぐうえで逆に大事です。

金額の区分は、市の契約規則の値を入れます。 地方自治法施行令は、予定価格が別表第五の額の範囲内で、地方公共団体の規則で定める額を超えないときに随意契約によることができるとしています。別表第五で財産の買入れの市町村の額は150万円です。市の規則の額はこの範囲内で市が決めるので、一覧には規則の値をそのまま入れます。 見積を何者から取るかの金額も、市の規則や要領の値を入れます。

Step3

データの取得方法を決める

取るものどこからどうやって
メールの中身共有メールボックストリガーの出力(件名・本文・送信者・メッセージID)
課・予算科目・金額の区分SharePoint リストGet items
予算の残りSharePoint リストGet items の Filter Query で課と科目のコードを絞る
今月の依頼購入台帳Get items の Filter Query で課・品目・受付月を絞る

Get items は Filter Query に OData の条件式を書けます。 課のコードと科目のコードで1行に絞ってから残額を読みます。台帳を全件読んでからフローの中で絞ると、年度の後半に遅くなります。

予算の残りの一覧は、財務会計システムから直接つなぎません。 財務会計システムは別の系統にあり、系統をまたぐデータの持ち出しは、市の情報セキュリティポリシーで決まった手順で行います。 週1回の出力を決まった担当が SharePoint のリストへ取り込む運用にし、この構成からは財務会計システムに触れません。

本文の暗号化に気をつけます。 公式の説明では、暗号化されたメールではトリガーの出力に本文が入らず、保護されている旨の注記になるとされています。暗号化して送られた依頼は、例外処理で人へ回します。

Step4

AIへ渡す前に整形する

  1. 重複の確認 … メッセージIDで購入台帳を引き、すでに行があれば止めます
  2. 依頼課の特定 … 送信者のアドレスを課の一覧と照らし、課のコードと既定の納品場所を決めます。一覧に無いアドレスは課を推測しません
  3. 本文の整形 … 署名、過去のやり取りの引用、定型の注意書きを落とします
  4. 添付だけの依頼の判定 … 本文が数行で、添付がある依頼は「添付のみ」の印を付けます
  5. 予算科目の呼び方の一覧を渡す … 予算科目の一覧の「各課での呼び方」をプロンプトに渡します
  6. 金額の区分は渡さない … 区分への当てはめはフローで行うので、AIには区分の値を見せません

6番目が、この構成の要です。 区分の境目の金額をAIに見せると、境目の近くの依頼で、予定金額を区分に合わせた数字に寄せることがあります。 AIには金額を写させるだけにし、区分はAIが見えないところで当てはめます。

Step5

AIに処理させる

させるのは、依頼の本文から決まった項目を写し出し、書かれていない項目と原文の該当箇所を示すことと、確認済みの項目から連絡の文面の下書きを作ることです。

項目させること判断できないときの扱い
品名・規格本文の記載を品目ごとに写す書かれていなければ not_stated
数量・単位数字と単位を写す「いくつか」「適量」は ambiguous
単価・予定金額書かれた金額を写す。税込か税抜かも写す「くらい」「前回と同じ」は ambiguous
予算科目呼び方の一覧から正式な科目を選ぶ一覧に無い書き方なら not_matched
納期日付として写す「なるべく早く」は ambiguous
納品場所書かれた場所を写す書かれていなければ not_stated
原文の該当箇所各項目の根拠の文を写す写せなければその項目を not_stated

not_stated と ambiguous を分けるのは、聞き返しの文面が違うからです。 書かれていないなら「ご記入ください」、曖昧なら「〇〇とありますが、具体的な数量をお知らせください」と返します。依頼課にとって、何を直せばよいかが一目で分かる聞き返しになります。

させないこと理由
金額を推し量ること見積の要否の根拠になる数字。書かれていなければ未記載
単価×数量の計算計算はフローで行う。AIの計算を判断の材料にしない
見積の要否・契約の方法を書くこと規則と契約担当が決める
予算の残りを書くことリストの値をフローが文面に差し込む
品目を似た品に置き換えること規格の違いが見積と納品の食い違いになる

1行目と2行目が、この構成の中心です。 「前回と同じものを10箱」と書かれた依頼で、AIは前回の金額をそれらしく埋めがちです。埋まった数字が区分の境目の下にあれば、見積が要らない依頼として流れます。

Step6

指示内容を固定する

あなたは市役所の契約管財課で、各課からの物品の購入依頼を受け付ける立場です。
依頼メールの本文に書かれていることだけを使って、決まった項目を写してください。
推測で埋めないでください。

【写す項目】品目ごとに次を写してください。
- item_name:品名 - spec:規格・型番・色・サイズ
- quantity:数量 - unit:単位
- unit_price:単価 - amount:予定金額 - tax:税込/税抜/不明
- budget_item:予算科目(下の「予算科目の呼び方の一覧」から正式名を選ぶ)
- due_date:納期 - delivery_place:納品場所

【status の付け方】各項目に status を付けてください。
- ok ........... 値が書かれており、そのまま写せた
- not_stated ... 書かれていない
- ambiguous .... 書かれているが、値として確定できない
                 (「くらい」「前回と同じ」「なるべく早く」「適量」など)
- not_matched .. 予算科目の書き方が一覧のどれにも当たらない

【厳守事項】
- 金額が書かれていなければ not_stated です。過去の依頼や相場から
  金額を埋めないでください。「前回と同じ」は ambiguous です。
- 単価×数量の計算をしないでください。amount は書かれていれば写し、
  書かれていなければ not_stated にしてください。
- 品名や規格を、似た品や一般的な名前に置き換えないでください。
- 見積が要るか、どの契約方法になるかは書かないでください。
- 予算の残りについては何も書かないでください。
- 各項目の evidence に、根拠にした本文の文をそのまま写してください。
- 本文が「添付のとおり」などで、項目が本文に無い場合は
  attachment_only を true にしてください。
- 購入依頼ではないメールなら、項目を写さず is_request を false に
  してください。
- Don't include JSON markdown in your answer.

【予算科目の呼び方の一覧】{budget_aliases}
【依頼課】{dept_name}(既定の納品場所:{default_place})
【件名】{subject}
【本文】{body}

「前回と同じ」を名指しで ambiguous にしているのは、いちばん多い書き方だからです。 一般的な指示だけでは、文脈から前回を「推定」して埋めます。例に出した書き方は、そのとおりに扱われやすくなります。

最後の英文の1行は、公式の案内に合わせたものです。 JSON が作れないというエラーが出るとき、この一文を足すよう案内されています。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 AI Builder のプロンプトの出力を JSON にし、例を書き換えて Custom の形に固定します。

{
  "is_request": true,
  "attachment_only": false,
  "items": [
    {
      "item_name": { "value": "", "status": "ok | not_stated | ambiguous", "evidence": "" },
      "spec": { "value": "", "status": "", "evidence": "" },
      "quantity": { "value": "", "status": "", "evidence": "" },
      "unit": { "value": "", "status": "", "evidence": "" },
      "unit_price": { "value": "", "status": "", "evidence": "" },
      "amount": { "value": "", "status": "", "evidence": "" },
      "tax": "税込 | 税抜 | 不明"
    }
  ],
  "budget_item": { "value": "", "status": "ok | not_stated | not_matched", "evidence": "" },
  "due_date": { "value": "", "status": "", "evidence": "" },
  "delivery_place": { "value": "", "status": "", "evidence": "" }
}

1つ目の理由は、金額の区分への当てはめをフローに任せられることです。 amount が ok ならその値を、not_stated で単価と数量が ok ならフローで掛け算した値を使います。どちらも無ければ区分を当てはめず、「金額未記載」として聞き返しに回します。

状態フローの扱い
予定金額と今月の同じ品目の合計が、見積の要らない区分に収まる受付の連絡の下書き。見積の区分を台帳に記録
見積が要る区分に入る受付の連絡に「見積を取ります」と書き、契約担当に見積の数を示す
今月の合計を足すと区分が上がる「同じ品目の依頼が今月ほかにあります」と契約担当にだけ示す
予算の残りが予定金額に足りない依頼課への文面に「〇月〇日時点の残額」を差し込み、契約担当に強調
not_stated・ambiguous・not_matched がある聞き返しの文面の下書き

2つ目は、品目が複数ある依頼をそのまま台帳の複数行にできることです。 items は品目ごとの要素を並べた配列で、キーのある要素の配列なので、プロンプトの JSON の形として定義できます(キーの無い配列は定義できないとされています)。

3つ目は、evidence で確認が速くなることです。 契約担当は、承認の画面で項目と原文の該当箇所を並べて見られます。メールを開き直さずに確かめられます。

Step8

システムへ連携する

つなぎ先方式内容
共有メールボックスWhen a new email arrives in a shared mailbox (V2)依頼の受け取り
SharePoint リスト(課・予算科目・予算の残り・金額の区分)Get items照合と残額の取得
購入台帳(SharePoint リスト)Get items、Create item、Update item重複の確認、今月の合計、行の作成と状態の更新
AI Builder のプロンプトRun a prompt項目の抜き出しと、文面の下書き
ApprovalsStart and wait for an approval of text契約担当による文面の確認と修正
共有メールボックスSend an email from a shared mailbox (V2)承認された文面を依頼課へ送る

文面の下書きは、2つ目のプロンプトで作ります。 渡すのは、契約担当が確かめる前の抜き出しの結果ではなく、フローが当てはめた区分と、リストから引いた残額と出力日です。数字はすべてフローが差し込んだものにし、AIには数字を作らせません。

財務会計システムと電子決裁には書き込みません。 予算の執行の手続きは、依頼課と契約管財課がこれまでどおり行います。この構成が出すのは、台帳の行と、依頼課への連絡までです。

Step9

人が確認する

依頼課へ出す連絡は、すべて契約担当が確かめてから送ります。 承認の画面で見るのは次の4つです。

  1. 品目・数量・金額が原文と合っているか … evidence と値を並べて見ます
  2. 予算科目が合っているか … 呼び方の一覧で選ばれた科目が、依頼の用途と合うかを見ます
  3. 見積の区分と、今月の同じ品目の合計 … 区分の境目の近くの依頼と、合計で区分が上がる依頼を重点に見ます
  4. 文面 … 聞き返しの内容が依頼課に分かるか、残額の日付が入っているかを見て、直して承認します

3番目で分割に当たるかを決めるのは契約担当です。 同じ品目でも、別の事業の予算で別の時期に要る依頼は分割ではありません。構成は「ほかにもあります」と示すだけにし、判断の言葉を書きません。

目標は、360件をならして1件3分です。 項目がそろった依頼は承認の画面で1分ほどで済みますが、聞き返しと区分の境目の依頼は確かめることが多くなります。3分を大きく超える月は、呼び方の一覧が足りていないか、本文の様式が各課に浸透していません。

Step10

例外に対処する

起きること対応
同じメールに二度トリガーが動くメッセージIDで台帳を引き、行があれば止める
送信者が課の一覧に無い課を推測せず、契約担当へ回す
添付にしか項目が書かれていないattachment_only。契約担当が添付を開き、台帳に手で入れる
本文が暗号化されているトリガーの出力に本文が入らない。契約担当へ回す
購入依頼ではないメールis_request が false。台帳に入れず、共有メールボックスに残す
予算科目が not_matched聞き返しの対象。呼び方の一覧に足すかを財政課と決める
予算の残りの一覧が古い出力日が7日より前なら、文面に残額を載せず「確認中」とする
承認の応答が来ない翌朝の一覧に「承認待ち」として載せる
JSON が作れないエラー同じ入力で1回だけ再実行。続けて失敗すれば契約担当へ

上の3行目がいちばん多い例外です。 導入の直後は、添付の依頼票で送ってくる課が残ります。件数を課ごとに数え、多い課から本文の様式を案内します。

Step11

記録を残す

  • メッセージID、受信日時、送信者、件名、本文の原文
  • AIが返したJSONの全文と、そのとき渡した呼び方の一覧の版
  • 当てはめた金額の区分と、今月の同じ品目の合計の値
  • そのとき使った予算の残りの一覧の出力日と残額
  • 承認した人、承認した時刻、承認前の文面と送った文面の違い
  • 契約担当が直した項目(品名・数量・金額・予算科目)

3つ目で今月の合計を残すのは、後から分割の扱いを問われたときのためです。 当時どの依頼が合算の対象として示されていたかが、台帳の行だけで説明できるようにします。

04実装レベルの3段階

最小構成:依頼の本文を手元のAIサービスに貼り、項目を写させる / 1件ごとの項目の抜き出し
半自動化:上記+メールの到着でフローが動き、台帳への記録・区分の当てはめ・残額の取得・文面の下書きと承認までを行う / 転記、照合、聞き返しと受付の連絡
本格構成:上記+業者への見積依頼の文面の下書き、納品と検収の記録の台帳への連携、月次の課別・科目別の集計 / 受付から見積依頼の手前までと、集計

半自動化で、1件10分が3分になり、この段階が本記事の想定です。 写すこと、探すこと、聞き返しの文面を書くことが自動になり、残るのは承認の画面での確認です。本格構成で減るのは、受付の後の見積依頼と集計の手間です。 段階を飛ばさないでください。 半自動化を1か月回すと、呼び方の一覧から漏れる書き方と、添付で送ってくる課が先に分かります。そこを直してから業者向けの文面を足すほうが、誤った品目で見積を依頼する事故を防げます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
360 件
1件あたり現在時間
10 分
1件あたり導入後時間
3 分
現在  360件 × 10分 ÷ 60 = 60 時間/月
導入後 360件 × 3分 ÷ 60 = 18 時間/月
月間削減時間
42h
削減率
70%
年間削減時間
504h
年間金額換算(時間単価3,000円)
151万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 物品の購入を契約管財課などの1つの課でまとめて手配している市町村で、各課からの購入依頼がメールで月に数百件届き、担当が本文と添付の依頼票を読んで購入台帳に写している場合。依頼に予算科目や納期の書き漏れが多く、聞き返しのメールに時間を取られている場合。Microsoft 365 を使っていて、購入台帳と予算の残りの一覧を SharePoint のリストに置ける場合。
向いていない
  1. 財務会計システムや電子決裁に物品の購入依頼の入力画面があり、各課がそこへ項目をそろえて入力する運用が定着している場合。購入依頼が月に数十件で、担当が全件を自分で読んで手配できている場合。なお、契約の方法(随意契約か入札か)、見積を何者から取るか、予算を執行してよいかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の購入依頼のメールから40件を選ぶ(うち数件は、書き漏れがあったものと、金額が曖昧だったものを入れる)
  2. 予算科目の呼び方の一覧を、財政課の担当と作る
  3. 呼び方の一覧と40件の本文を、Microsoft Copilot などの手元のAIサービスに貼り付ける
  4. 「品名・規格・数量・単価・予定金額・予算科目・納期・納品場所を写してください。書かれていなければ『記載なし』、曖昧なら『曖昧』としてください。金額を推測しないでください」と指示する
  5. 出てきた結果を、当時の購入台帳の行と突き合わせる

40件は必ずやってください。 フローを組む前に、「本文だけで項目がそろうのか」を確かめます。

出てきた内容判断
当時の台帳とおおむね同じ項目になったフローの組み立てに進む
予算科目の取り違えが多い呼び方の一覧を足す。構成は有効
添付にしか書かれていない依頼が多い本文の様式の案内が先。 AIの問題ではない

08実装時につまずきやすいポイント

問題対策
フォルダへ移した古いメールでトリガーが動くメッセージIDで台帳を引き、重複を止める
共有メールボックスでトリガーが動かないMicrosoft 365 の共有メールボックスか、フルアクセスがあるかを確かめる
変換した共有メールボックスから送れない送信のアクションは変換したものでは動かない。最初から共有として作る
「前回と同じ」から金額が埋まる名指しで ambiguous にし、推測を禁じる
区分の境目に金額が寄る区分の値をAIに見せない
予算科目の取り違え呼び方の一覧を財政課と育てる
残額を最新として連絡してしまう出力日を必ず文面に入れ、古ければ載せない
添付の依頼票が読めない本文の様式を案内し、添付のみは人が入れる
暗号化メールの本文が取れないトリガーの出力に本文が入らない。人へ回す
分割の判断まで自動にしたくなる合計を示すまでにし、判断は契約担当

上から4行目と5行目が、この構成の失敗のほとんどです。 どちらも、見積の要否の根拠になる金額を、AIが作ってしまうことから起きます。金額は書かれたものだけを写し、区分の当てはめはAIの見えないところで行うという線を守れば、運用に乗ります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 各課の購入予定の品目と金額、予算科目と残額、職員の氏名とメールアドレス、出先機関の所在地です。個人の住民の情報は扱わない前提です。

  1. 住民の情報を依頼に書かせない … 生活保護や福祉の課が、支援の対象者に関わる物品を依頼することがあります。依頼の本文に住民の氏名や事情を書かないよう、様式の注意書きで案内します
  2. cross-geo の扱いを確かめる … 日本の地域では既定のモデルが GA (cross-geo) と表示され、地域の外でデータを処理する場合があるとされています。市の情報セキュリティポリシーで、この情報をその形で処理してよいかを先に確かめます
  3. 系統をまたぐデータの持ち出しを手順どおりに行う … 予算の残りは財務会計システムからの出力です。取り込む担当と手順を決め、自動でつながないようにします
  4. 市の名前で出る連絡を自動で送らない … すべて契約担当の承認を経て送ります
  5. 契約の方法をこの構成に持たせない … 出すのは規則への当てはめの材料と、合計の値までです。随意契約によるか、見積を何者から取るかは、規則に基づいて契約担当が決めます

誤りが起きた場合のリスクは、金額を誤って写して見積の要らない区分に入れることと、古い残額で予算が足りると伝えることの2つです。 前者はAIに金額を推し量らせると起き、後者は残額の日付を落とすと起きます。どちらも設計で守ります。

10まず何から始めるか

1週目:2つの一覧を作る

財政課の担当と、予算科目の「各課での呼び方」の一覧を作ります。あわせて、市の契約規則と要領から、見積を何者から取るか、随意契約によることができる上限などの金額の区分を一覧にします。

2週目:40件で試す

先月の依頼から40件を選び、手元のAIサービスで項目を写させます。当時の台帳と突き合わせ、金額を推測で埋めていないかを最優先で見ます。

3週目:本文の様式を各課に案内する

依頼をメール本文の様式で送るよう、件名の決まりと一緒に各課へ案内します。添付で送ってくる課の数が、この時点の効果の上限を決めます。

4週目:メールから台帳までをつなぐ

Power Automate で、共有メールボックスのトリガーから AI Builder のプロンプト、台帳への記録までを作ります。最初の2週間は承認と返信をつながず、台帳の行と担当の手作業を見比べます。

2か月目: 区分の当てはめ、残額の取得、文面の下書きと承認、返信を足します。聞き返しの件数と、担当が直した項目を毎週数えます。3か月目以降: 1件10分が何分になったかを実測し、呼び方の一覧の手入れが月1回で済むようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-13/最終更新:2026-10-14
確認した内容情報源確認日
When a new email arrives in a shared mailbox (V2) が受信日時をもとに動き、設定したフォルダだけを見ること。フォルダへ移したメールで古いメールにも断続的に動くことがあること。ユーザー間の共有メールボックスではフルアクセスが要ること。暗号化メールではトリガーの出力に本文が入らないこと。Send an email from a shared mailbox (V2) が Microsoft 365 の共有メールボックスでのみ動き、変換したものでは動かないことMicrosoft Learn: Office 365 Outlook connector2026-10-13
2025年5月から Create text with GPT using a prompt の名前が Run a prompt になったこと。プロンプトの入力に前の手順の内容を入れられること。Start and wait for an approval of text で人の確認を挟み、文面を直して応答できることMicrosoft Learn: Use your prompt in Power Automate2026-10-13
出力に JSON を選べ、形が Auto detected か Custom で決まり、保存時の形が実行時に使われること。キーの無い配列は定義できないこと。JSON が作れないときに「Don't include JSON markdown in your answer」を足すよう案内されていることMicrosoft Learn: JSON output2026-10-13
日本で GPT-4.1 mini が GA (cross-geo) であり、cross-geo のモデルは地域外でデータを処理する場合があることMicrosoft Learn: Prompt model availability by region2026-10-13
Create item、Get items、Update item があり、Get items に Filter Query(OData の条件式)と Top Count があることMicrosoft Learn: SharePoint connector2026-10-13
地方自治法施行令第167条の2第1項第1号で、予定価格が別表第五の額の範囲内で地方公共団体の規則で定める額を超えないときに随意契約によることができること。別表第五で財産の買入れの市町村の額が150万円であることe-Gov 法令API: 地方自治法施行令2026-10-13

随意契約によるか、見積を何者から取るかは、市の契約規則に基づいて契約担当が決めてください。 本記事は上記の公式ページと法令で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1411)についてのご相談はこちらから。

AI活用について相談する
目次