社内申請の不備を、AIとの対話で提出前に埋めさせて差し戻しを減らす
経費精算や出張申請などの社内申請を、提出する前にTeams上の対話で完成させます。どの様式で出すか、何を添付するか、誰の承認が要るかを1つずつ埋めさせ、総務への差し戻しを減らします。
- 利用ツール
- Amazon Kendra/Azure AI/ChatGPT/Claude/Make/Microsoft Copilot/n8n/OpenSearch/Power Automate
- 対象業界
- IT・SaaS/その他/士業/自治体/製造
- 対象部門
- 総務
- 対象業務
- 問い合わせ対応/書類作成
- 主な課題
- 入力作業が多い/問い合わせが多い/確認ミスが多い
- AIで行う処理
- 対話
- 主な効果
- 入力漏れ削減/工数削減/教育コスト削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- SaaS追加(小)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 申請者が、記憶か過去のメールを頼りに様式を選び、申請ワークフローシステムから提出する
- 総務の担当者が、届いた申請を開いて中身を読む
- その申請が、出された様式で合っているかを見る
- 必須項目と必要な添付がそろっているかを、様式と規程に照らして見る
- 金額と申請種別から、承認ルート表(Excel)を開いて承認者の並びを確かめる
- 不備があれば差し戻し、何が足りないかを本文に書いて送る
- 申請者から問い合わせが来れば、規程のどこに書いてあるかを説明する
- 再提出を待ち、届いたらもう一度2番から見直す
- 不備が無くなったものを、承認の回付に乗せる
- 人申請者がTeamsで、総務のエージェントに用件を話し言葉で書く(「先週のタクシー代を精算したい」)
- 自動用件から様式の候補を絞る。1つに決まらなければ、違いを聞いて絞り込む
- 自動決まった様式と、その根拠(どの規程の何条、どの様式か)を引用つきで返す
- 自動その様式の必須項目を、埋まっていないものだけ1つずつ質問する
- 自動添付が必要なものを、何を・何枚・どの形式でかまで伝える
- 自動申請種別・金額帯・部門から、承認ルート表を引いて承認者の並びを返す
- 自動規程に書かれていないことを聞かれたら、そこで止めて総務の担当へ回す
- 自動埋まった内容と根拠の一覧を、1つの下書きとして出す
- 人申請者が下書きを確認し、自分で既存の申請システムに入力して提出する
- 人総務が、提出された申請の内容そのものを見る
- 人不備が残っていたものだけ差し戻す
- 自動未回答(規程に無いと判断したもの)と、差し戻しの理由を記録する
- 人月に1回、総務がその記録を読み、様式と規程の書き方を直す
各工程の詳しい説明を読む
- 申請者が、記憶か過去のメールを頼りに様式を選び、申請ワークフローシステムから提出する
- 総務の担当者が、届いた申請を開いて中身を読む
- その申請が、出された様式で合っているかを見る
- 必須項目と必要な添付がそろっているかを、様式と規程に照らして見る
- 金額と申請種別から、承認ルート表(Excel)を開いて承認者の並びを確かめる
- 不備があれば差し戻し、何が足りないかを本文に書いて送る
- 申請者から問い合わせが来れば、規程のどこに書いてあるかを説明する
- 再提出を待ち、届いたらもう一度2番から見直す
- 不備が無くなったものを、承認の回付に乗せる
(a)差し戻しは1往復では終わりません。 添付漏れを指摘して再提出させると、今度は承認ルートが違う。1件ずつ指摘するので、往復が重なります。 最初から全部の不備を書けばよいのですが、6番の時点では申請の内容をまだ読み終えていないことがあります。
(b)説明が毎回ゼロから始まります。 同じ説明を、違う申請者に何十回も書いています。文面を使い回しても、どの条文に当たるかは申請ごとに違うので、結局その場で規程を開き直します。
(c)承認ルートの確認が、表を開くところから始まります。 承認ルート表はExcelで、申請種別ごとにシートが分かれています。金額帯の境目が「10万円以上」なのか「10万円を超える」なのかを、そのたびに読み直しています。
(d)そもそも別の様式で出されると、やり直しになります。 休暇の「届出」と勤務形態の「申請」のように、名前が似ていて出す先が違うものがあります。このときの差し戻しは、書き直しではなく出し直しです。 申請者の負担がいちばん重くなります。
(e)忙しい時期ほど確認が浅くなります。 月末と期末に申請は集中します。急ぐと5番の承認ルートの確認が省かれ、間違ったルートのまま回付されます。 気づくのは承認者のところで止まってからです。
- 【人】 申請者がTeamsで、総務のエージェントに用件を話し言葉で書く(「先週のタクシー代を精算したい」)
- 【自動】 用件から様式の候補を絞る。1つに決まらなければ、違いを聞いて絞り込む
- 【自動】 決まった様式と、その根拠(どの規程の何条、どの様式か)を引用つきで返す
- 【自動】 その様式の必須項目を、埋まっていないものだけ1つずつ質問する
- 【自動】 添付が必要なものを、何を・何枚・どの形式でかまで伝える
- 【自動】 申請種別・金額帯・部門から、承認ルート表を引いて承認者の並びを返す
- 【自動】 規程に書かれていないことを聞かれたら、そこで止めて総務の担当へ回す
- 【自動】 埋まった内容と根拠の一覧を、1つの下書きとして出す
- 【人】 申請者が下書きを確認し、自分で既存の申請システムに入力して提出する
- 【人】 総務が、提出された申請の内容そのものを見る
- 【人】 不備が残っていたものだけ差し戻す
- 【自動】 未回答(規程に無いと判断したもの)と、差し戻しの理由を記録する
- 【人】 月に1回、総務がその記録を読み、様式と規程の書き方を直す
9番目が、この設計の分かれ目です。 エージェントは申請システムに書き込みません。提出という行為を申請者の手に残すことで、「AIが出したから中身は知らない」が起きなくなります。 便利さを少し捨てて、責任の所在を守っています。6番目を表から引いているのも意図してのことで、承認ルートと閾値は規程にも書かれていますが、読んで解釈させると境目の1件で必ず間違えます。
13番目を入れていないと、この構成は半分しか働きません。 差し戻しが減るのは対話が埋めてくれるからですが、埋まらない項目が毎月同じなら、直すべきは様式の側です。 記録を読み直す時間を業務に組み込まないと、記録はたまるだけです。
02今回想定するシステム構成
申請者(全社員)「先週のタクシー代を精算したい」
▼【トリガー】Teams の1対1チャットで話しかける
Microsoft Copilot Studio(Teams と Microsoft 365 Copilot チャネル)
├──▶ ナレッジ(SharePoint)── 引用つきで根拠を返す
├──▶ 検索基盤 Azure AI Search ── 条単位に切った規程の索引
└──▶ Power Automate(ツールとして追加したフロー)
├─ 様式マスタを引く(必須項目・必要な添付)
└─ 承認ルート表を引く(申請種別 × 金額帯 × 部門)
▼
質問ノードで1つずつ埋める(様式 → 必須項目 → 添付 → 承認ルート)
▼
埋まった内容のまとめ + 根拠の一覧(どの規程の何条・どの様式)
▼
【申請者が確認して、自分で既存の申請システムへ出す】
▼
総務 ── 提出された申請の中身を見る(不備が残ったものだけ差し戻す)
└──▶ 月次:未回答と差し戻し理由を集計 → 様式・規程を直す| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Microsoft Copilot Studio | Claude API、OpenAI API |
| 検索基盤 | Azure AI Search | Amazon Kendra、OpenSearch |
| 連携 | Power Automate | Make、n8n |
既存の申請ワークフローシステムは、この構成につなぎません。 表の外に置いてあるのは、そのためです。提出は人が行うので、書き込み先が要りません。 つながないことで、誤って申請が二重に出る経路も、権限の設計も不要になります。
土台になるのは Copilot Studio のトピックです。 トピックは会話の一部を表し、1つのトピックには1つ以上のノードが含まれ、そのノードが会話のパスを決めます。 使えるノードには、メッセージ、質問、アダプティブ カード、条件、変数管理、トピック管理、ツール、生成回答、HTTPリクエストなどがあります。申請を様式ごとのトピックに分け、質問ノードで1項目ずつ埋めるのが基本形です。 トピックには入力と出力のパラメータを持たせられ、リダイレクトするときに値を渡せるので、「経費精算」で聞いた金額を「出張精算」に渡せば、同じことを二度聞かずに済みます。
どのトピックを選ぶかは、オーケストレーションの方式で変わります。 生成オーケストレーションでは、エージェントがトピック・ツール・ナレッジから最適な組み合わせを選び、各トピックに目的を説明する説明文を書きます。クラシック オーケストレーションでは、トリガーフレーズを設定し、自然言語の理解で最適なトピックを探します。完全に一致している必要はなく、「営業時間を確認する」に「店舗の開店時間を確認する」が当たる水準です。
知識源は SharePoint を中心に置きます。 URLに接続して結果を返し、エージェント利用者の Microsoft Entra ID 認証が働きます。 生成モードでは25個のURL、クラシック モードでは生成回答トピック ノードごとに4つのURLが上限です。Azure AI Search は、「第何条」を確実に返すために置きます。 規程をそのまま知識源にすると、根拠が文書の単位までしか戻らないことがあるためです。この部分の接続方法は個別実装が必要で、本記事では公開仕様を確認していません。
03どうやって実装するのか
処理の起点を決める
申請者がTeamsでエージェントに話しかけたときに始まります。 定時実行にはしません。申請が発生するのは申請者の都合であって、総務の都合ではないからです。
入口はTeamsの1対1のチャットに限ります。 グループチャットとチャネルでは、SharePoint のようにエンド ユーザー認証を必要とする知識源が使えません。これは設計上の制限で、意図しないデータの漏えいを防ぐためのものです。 規程の閲覧範囲が役職や所属で分かれている以上、1対1以外で動かす選択肢はありません。
Teamsで使うには、エージェントを少なくとも1回公開したうえで、Teams と Microsoft 365 Copilot チャネルに接続します。 そのあと、管理者の承認を得てTeamsアプリストアの「組織用に構築」の区画に載せ、アプリのセットアップ ポリシーで自動インストールとピン留めをしてもらえば、アプリ バーから直接開けます。
トリガーフレーズは、様式名で書かないでください。 申請者は「旅費精算申請書(様式第12号)」とは打たず、「タクシー代を精算したい」「はんこをもらいたい」と打ちます。利用者の応答を理解するようAIを訓練するには5〜10個のトリガーフレーズが必要とされ、長文ではなく短い語句が推奨されています。 1行に1つ書いたファイル(最大3MB)で追加できるので、過去の問い合わせメールの件名が素材になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申請者の用件 | 話し言葉の1〜2文 | Teamsの1対1チャット |
| 申請者の属性 | 所属、拠点、役職、上長 | 認証済み利用者の情報(Microsoft Entra ID) |
| 様式マスタ | 様式コード、様式名、用途、必須項目、必要な添付、提出先 | 様式マスタ(表形式) |
| 規程 | 条単位に切った本文と、条番号 | 規程の文書+条単位の索引 |
| 承認ルート表 | 申請種別 × 金額帯 × 部門 → 承認者の並び、表の版 | 承認ルート表(表形式) |
| 過去の差し戻し理由 | 様式ごと・理由ごとの件数 | 差し戻しの記録 |
質を決めるのは、太字にした3つです。 様式マスタに必須項目と必要な添付が入っていなければ、対話で聞くことが決まりません。「様式を選ぶ」まではできても、「何を埋めるか」が出てきません。 承認ルート表は、申請種別と金額帯と部門の組み合わせに承認者の並びが1つ決まる形にし、金額帯は境目をどちらに含めるかまで書き切ります。
データの取得方法を決める
規程と様式の説明は、Copilot Studio のナレッジとして読ませます。 SharePoint を知識源として追加すると、エージェント利用者の Microsoft Entra ID 認証が働き、その利用者がアクセスできるコンテンツのみが表示されます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 規程・様式の説明の本文 | SharePoint の知識源 | 引用つきで根拠を返す |
| 条番号つきの本文 | 条単位に切った索引(検索基盤) | 「第何条か」を特定する |
| 様式の必須項目・必要な添付 | Power Automate のフロー | 質問ノードで聞く項目を決める |
| 承認ルートと閾値 | Power Automate のフロー | 承認者の並びを機械的に引く |
| 申請者の所属・拠点 | 認証済み利用者の情報 | 拠点ごとのルートを選ぶ |
下の3行をナレッジに入れないのが、この構成の要点です。 ナレッジ(生成回答)は文章を読んで答えを作る仕組みで、表を読ませると、表の内容を根拠にした「それらしい答え」が返ります。 引き方は、公開したエージェント フローをツールとして追加し、オーケストレーターに実行時に呼ばせる方法を想定します。 前提として、フローには「エージェントがフローを呼び出すとき」のトリガーと「エージェントに応答する」アクションが必要です。追加のときに、いつそのフローを使うべきかを理解できる明確な説明を書きます。「承認ルートを取得する」だけでは規程の質問でも呼ばれるので、「申請種別と金額と部門が確定したあとに引く」と、呼ぶ条件まで書きます。
AIへ渡す前に整形する
- 様式マスタを作る … 様式コード、様式名、用途、必須項目、必要な添付、提出先を1行にします。ここが最大の準備作業です
- 承認ルート表を1枚の表に直す … シートが分かれているExcelを1行1組み合わせにし、金額帯は「以上」「未満」を明記します
- 規程を条単位に切る … 条番号を持たせます。切らないと、根拠が「就業規程に書かれています」で終わります
- 廃止された様式を索引から外す … 共有フォルダに残っている旧版が、いちばんよく引かれます
- 言い換えを集める … 「立替」「精算」「仮払」、「はんこ」「押印」「捺印」のような言い方を洗い出します
- 規程に書かれていない運用を洗い出す … 慣行で回っているものを、規程に書くか「総務へ回す」対象にするかを決めます
5番目は、クローズド リスト エンティティのシノニムとして登録できます。 各値に同義語を加えてマッチングのロジックを広げられ、1行1値・パイプ(|)区切り・最大3MBのファイルからアップロードできます。スマート マッチングを有効にすると、エージェントは曖昧な論理で入力を解釈し、スペルミスを自動修正し、マッチングのロジックを意味的に拡張します。 便利ですが、費目のように取り違えてほしくないリストでは、有効にするかを一度考えてください。
6番目を飛ばすと、導入後に必ず跳ね返ってきます。 規程に無い運用は、対話では答えが出ません。「答えられないもの」として先に名指ししておくことが、作り話を防ぐいちばん確実な方法です。
AIに処理させる
| させること | 中身 |
|---|---|
| 用件から様式を絞る | 候補が複数なら、違いを1つ聞いて絞る |
| 必須項目を1つずつ聞く | まだ埋まっていないものだけを聞く |
| 添付の要否を伝える | 何を・何枚・どの形式で |
| 根拠を示す | どの規程の何条か、どの様式かを引用つきで返す |
| 埋まった内容をまとめる | 本人が確認して出すための下書きにする |
| 答えられないものを名指しする | 規程に無いと判断したら、総務へ回す |
「まだ埋まっていないものだけ」を実現するのが、プロアクティブ スロット フィリングです。 利用者が一度に複数の情報を伝えたときに、どの情報がどのエンティティに属するかをエージェントが理解し、すでに埋まった項目の質問ノードを飛ばします。 「先週の火曜に客先に行ったタクシー代3,200円を精算したい」には日付・用途・金額が入っており、3つとも聞き直すエージェントは、その時点で使われなくなります。 逆に毎回必ず確かめたい項目は、「質問をスキップする」を「毎回尋ねる」にします。
| させないこと | 理由 |
|---|---|
| 承認ルートの決定 | 表から引く。惜しい承認ルートは間違った承認ルート |
| 金額の閾値の判断 | 1円の差で承認者が変わる。文章から推し量らせない |
| 規程に無いことへの回答 | 作り話になる。総務へ回す |
| 申請の提出 | 中身の責任は申請者にある |
| 申請内容の妥当性の判断 | その出張が必要か、その金額が妥当かは人が決める |
| 例外の承認 | 「今回だけ」は総務と上長が決めること |
| 廃止された様式の案内 | 索引から外す。エージェント側で見分けさせない |
上から2行目が、いちばん起きやすい失敗です。 「10万円以上は部門長の承認が必要」と規程にあれば、AIは10万円ちょうどの申請にも答えを出します。表を引かせれば、この揺れは起きません。
指示内容を固定する
エージェントの指示として、次の内容を書きます。
あなたは総務部の申請受付の担当者です。
社員が出そうとしている社内申請を、提出する前に対話で完成させることが役割です。
申請を代わりに提出することはしません。埋め終わった内容は本人が確認して出します。
【進め方】
1. 用件を聞いて、どの様式で出すべきかを様式マスタから1つに絞る。
2つに絞れなければ違いが分かる質問を1つだけし、3つ以上残れば総務へ回す。
2. 決めた様式の必須項目のうち、まだ埋まっていないものだけを1つずつ聞く。
すでに本人が書いた内容から読み取れる項目は、聞き直さない。
3. 必要な添付を、何を・何枚・どの形式でかまで伝える。
4. 承認ルートは、承認ルートを引くツールを呼んで得た結果だけを返す。
5. 最後に、埋まった内容と根拠の一覧をまとめて出す。
【根拠の示し方】
- すべての回答に、どの規程の何条か、どの様式かの引用を本文内に必ず含める。
- 引用を付けられない内容は回答しない。総務の担当へ回す。
【厳守事項】
- 承認者と承認の順番を、自分で考えないでください。
規程の文章から読み取れたとしても、ツールの結果以外を返さないでください。
- 金額の閾値を、自分で判断しないでください。
「10万円以上」「10万円未満」のどちらに当たるかは、ツールの結果に従ってください。
- 規程と様式マスタに書かれていないことを聞かれた場合は、
推測で答えず「規程に記載が見つかりません」と伝え、総務の担当へ回してください。
過去の慣行、他社の運用、一般的な商習慣を根拠にしないでください。
- 例外を認めてよいかを答えないでください。「今回だけ」の可否は総務が決めます。
- その申請が必要かどうか、金額が妥当かどうかを評価しないでください。
- 申請を提出しないでください。提出するのは本人です。
- 金額・日付・氏名を、本人が言っていない値で補わないでください。
【参照するもの】
様式マスタ:{form_master}/承認ルート:ツールの戻り値のみ/規程:ナレッジのみ
「ツールの結果以外を返さない」を2か所に書いているのには理由があります。 承認ルートは規程にも書かれているので、禁じるだけでは「規程によれば部門長です」と答えます。 答えの出どころを1つに固定することが目的です。
引用については、ドキュメントに具体的な助言があります。 指示でモデルに必ず出典を明記するよう書くことが推奨され、例として「すべての文に対して必ず出典への本文内引用を含める」が挙げられています。逆に、「JSONでのみ応答する」のような厳格な出力形式を強制すると、エージェントが必要とする引用マーカーが抑制されるとされています。対話は引用つきの文章で行い、構造化は最後に別のノードで作ります。
出力形式を固定する
対話が終わった時点で、次の形にまとめます。
{
"request_id": "",
"requester": { "upn": "", "department": "", "site": "" },
"form": { "code": "", "name": "", "source": "" },
"fields": [
{ "key": "", "value": "", "status": "filled | missing | unknown", "source": "" }
],
"attachments": [
{ "name": "", "count": 1, "status": "ready | missing", "source": "" }
],
"approval_route": {
"resolved_by": "table", "threshold_key": "",
"approvers": [], "table_version": ""
},
"unanswered": [
{ "question": "", "reason": "not_in_policy | ambiguous", "handoff": "soumu" }
],
"ready_to_submit": false
}
作り方は、値の解析ノードを使う想定です。 このノードはある型から別の型へ値を変換するもので、サンプルJSONからスキーマを取得して、レコード型の変数に変換できます。 フローの戻り値をこの形で受け、対話で埋めた変数と合わせて1つにします。
source に何を入れるかが、この形のいちばん大事なところです。 様式なら様式コード、記載事項なら規程の条番号を入れます。根拠の無い値がここで見つかります。 画面には項目ごとに source を並べ、申請者が「なぜこれが要るのか」を確かめられるようにします。
approval_route.resolved_by は必ず table です。 設計上、ここに table 以外が入ることはありません。入っていたら、モデルが承認ルートを作ったということなので、その場で止めます。 table_version を持つのは承認ルート表が改定されるからで、引いた時点の版が無いと、表が変わったのか引き方が誤ったのかを切り分けられません。
ready_to_submit を true にするのは、fields と attachments に missing が無く、approvers が空でなく、unanswered が空のときだけです。 埋まっているかどうかではなく、答えられなかった問いが残っているかどうかも見ます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Teams | Teams と Microsoft 365 Copilot チャネル | 申請者との1対1のチャット |
| 規程・様式(SharePoint) | Copilot Studio の知識源 | 引用つきで根拠を返す。利用者の Entra ID 認証が働く |
| 条単位の索引 | Power Automate 経由のツール | 「第何条か」を返す |
| 様式マスタ | Power Automate 経由のツール | 必須項目と必要な添付を引く |
| 承認ルート表 | Power Automate 経由のツール | 申請種別 × 金額帯 × 部門から承認者の並びを引く |
| 差し戻しの記録 | Power Automate | 未回答と不足項目を書き足す(月次の集計用) |
| 既存の申請システム | つながない | 提出は申請者が自分で行う |
いちばん下の行が、この構成の輪郭です。 申請システムに書き込まないので、誤って申請が出る経路がありません。 差し戻しの記録だけは書き込みますが、書く内容は未回答の問いと、最後まで埋まらなかった項目だけです。 対話の全文は書きません。
公開のたびに管理者の再承認が要るわけではありません。 再承認が必要なのはアイコンや説明といった詳細を変える場合だけとされているので、様式マスタや規程の入れ替えはいつでも反映できます。
人が確認する
この構成で人が確認する場所は、3つあります。
- 申請者が、下書きを確認して自分で出す … 必須です。埋まった内容と根拠の一覧を読み、自分の申請として出します。AIは提出しません
- 総務が、提出された申請の内容そのものを見る … 260件すべてです。この時間は減りません。 減るのは、様式・記載事項・添付・承認ルートの確認の時間です
- 総務が、月に1回、未回答と差し戻しの記録を読む … 何が答えられなかったか、どの様式で何の不備が残ったかを見ます
2番目を減らそうとしないでください。 その出張が必要か、その金額が妥当かは、規程を引いても出てきません。 第10章の削減率が50.0%にとどまるのは、ここを残しているからです。3番目は、月に1時間ほどの作業として組み込みます。 未回答の一覧には規程に書かれていない運用が名前つきで並び、そのいくつかは、規程に1行足せば翌月から答えられるようになります。
承認ルートを人が上書きしたときも記録します。 表から引いた並びを総務が変えたのなら、表が間違っているか、表に無い組み合わせが来たかのどちらかです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 規程に書かれていないことを聞かれる | 作らずに止める。 総務へ回し、未回答として記録する |
| 様式が2つに絞れない | 違いが分かる質問を1つだけする。3つ以上残れば総務へ |
| 金額が閾値の境目にある | 表の「以上」「未満」をそのまま示す。どちらに当たるかを文章から判断しない |
| ルート表に無い組み合わせ | 承認者を埋めずに総務へ回す。表の不足として記録する |
| 引用が返らず回答が止まる | 「根拠のない応答を許可する」をオフにしているため起きる。フォールバックから総務へ |
| グループチャットやチャネルで呼ばれる | 認証の要る知識源は使えない。 1対1のチャットへ案内する |
| 会話が途中で切れる | 埋まった内容を変数に残し、続きから再開する |
| 規程や様式が改定された | 索引を作り直し、改定日より前に出した下書きは無効にする |
| 権限の無い規程を聞かれる | 利用者の Entra ID 認証で、アクセスできるコンテンツのみが返る |
| 公開直後にシステムエラーが出る | Teamsが旧版を使い続けることがある。チャネルを切って戻し、再公開する |
上から5行目は、仕様として理解しておく必要があります。 「根拠のない応答を許可する」をオフにすると、エージェントは知識源やツールを使わなかったターンで生成した応答をブロックし、フォールバック トピックを起動します。 作り話を止めるための設定です。ただし、この動作は断続的になります。 モデルが正しい答えを生成しても引用を含めないことがあり、その場合は情報が見つからなかったかのように反応します。 指示に「必ず本文内引用を含める」と書き、出力形式で引用を潰さないことが、ここで効いてきます。
記録を残す
- 対話の記録(プロンプトと応答は統合監査ログにキャプチャされます)
- 埋まった内容のJSONと、そのとき参照した様式マスタと承認ルート表の版
unansweredの一覧 … 規程に無いと判断した問いの全文- 承認ルートを人が上書きした記録 … 何を、どう変えたか
- 様式ごと・理由ごとの差し戻しの件数(月次)
- 引用が返らずに回答が止まった回数
2番目で「そのときの版」を残すのは、改定があるためです。 承認ルート表を直すと、過去に出した下書きの承認者が今の表と合わなくなります。版が残っていないと、どの下書きを出し直させるべきかが決まりません。 そして3番目が、この構成でいちばん価値のある記録です。 規程に書かれていない問いが申請者の言葉のまま並ぶので、総務が想像で規程を直すのではなく、実際に聞かれた問いから直せます。
04実装レベルの3段階
最小構成は、総務が自分で確かめるための段階です。 申請者に配るものではありません。規程の切り方と様式マスタの必要性が、ここで見えます。 本記事が想定しているのは半自動化です。 1件12分が6分になるのはこの段階で、提出は申請者が行い、総務は申請の中身を見る作業に集中します。 本格構成へ急がないでください。 既存の申請システムに下書きを渡す連携は、提出という行為を申請者の手から離しかけます。 渡すのは入力欄を埋めた状態までにとどめ、送信ボタンは必ず人が押す形にしてください。
05工数削減シミュレーション
導入後 260件 × 6分 ÷ 60 = 26 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- Microsoft 365 を全社で使っており、社内申請が月200件以上ある企業。規程と様式が文書としてそろっており、SharePoint などに置かれていること。承認ルートと金額の閾値が表の形に直せること。拠点や雇用形態が分かれていて、申請者が規程を読まずに出す状態が常態化している場合。
- 申請が月数十件で、総務が申請者の顔と事情を全部把握している場合。規程が整備されておらず、承認ルートが「そのとき部長に聞く」で決まっている場合(まず文書と表の整備が先)。申請の大半が例外扱いで、規程どおりに出るものがほとんどない場合。なお、その申請を認めるかどうかという判断は、この構成では代替できません。
07最小構成で試す方法
- 先月差し戻した申請から20件を選ぶ(様式の取り違えと添付漏れを、それぞれ数件ずつ入れる)
- その20件について、当時どんな理由で差し戻し、何を説明したかを書き出す
- 規程と様式の説明をPDFのまま手元のAIサービスに読ませ、当時の申請者の用件を1文で与える
- 「この用件は、どの様式で出すべきですか。必須項目と必要な添付を挙げてください。規程のどこに書かれているかを必ず添えてください。書かれていない場合は『記載が見つかりません』と答えてください」と指示する
- 返ってきた様式・必須項目・添付を、当時の正解と突き合わせる
承認ルートは、この段階では試さなくて構いません。 表から引く設計なので、AIの精度とは関係がありません。試すのは、用件から様式にたどり着けるかどうかだけです。
| 出てきた内容 | 判断 |
|---|---|
| 20件中15件以上で様式が合った | Copilot Studio での構築に進む |
| 様式は合うが、必須項目が抜ける | 様式マスタが無いから。準備作業が見えたということ |
| 規程に無いことを、それらしく答えた | 指示の書き方で直る。構成は有効 |
| 規程のどこに書かれているかを示せない | 規程の切り方が先。 AIの問題ではない |
4行目が出ることは珍しくありません。 規程が1つの長いPDFなら、根拠は「就業規程です」までしか戻りません。条単位に切った文書で同じ20件を試し直すと、差の大きさがそのまま準備作業の価値になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 様式マスタが無いまま始める | 最初の作業はここ。 必須項目と必要な添付が無いと、対話で聞くことが決まらない |
| 承認ルートをAIに答えさせる | 表を引くフローをツールとして追加する。resolved_by が table 以外なら止める |
| 出力形式をJSONに固定して引用が消える | 厳格な出力形式を強制すると引用マーカーが抑制される。 対話は文章、構造化は別ノードで |
| 引用が返らず回答が止まる | 「根拠のない応答を許可する」をオフにすると起きる。指示に「必ず本文内引用を含める」と書く |
| グループチャットで使えない | 認証の要る知識源は、グループチャットとチャネルでは使えない。1対1のみ |
| トリガーフレーズが様式名になっている | 申請者は様式名で話さない。5〜10個を、利用者の言い回しで作る |
| 規程が1ファイルのままで条が返らない | 条単位に切る。切らないと根拠が文書名で止まる |
| 金額帯の「以上」「未満」が曖昧 | 表に書き切る。境目の1件が毎回差し戻しになる |
| 規程に無い運用を聞かれる | 書くか、総務へ回す対象にするかを先に決める。作らせない |
| 公開後にシステムエラーが出る | Teamsが旧版を使い続けることがある。チャネルを切って戻し、再公開する |
| 詳細を変えるたびに再承認を求められる | アイコンや説明を変えたときだけ再提出が要る。中身の更新に再提出は不要 |
| 全部の申請を1つのトピックに詰め込む | 様式ごとにトピックを分け、リダイレクトで変数を渡す |
上の2行が、この構成の失敗のほとんどです。 どちらも「表にすべきものを、文章のまま扱った」という同じ形をしています。規程を読めば答えが出そうに見えるものほど、表にして引くべきです。
3行目と4行目は、引用まわりの表と裏です。 出力形式で引用を潰すと根拠が出なくなり、根拠が出ないと回答が止まります。引用を出させる指示と、引用を邪魔しない出力形式は、セットで設計してください。
下の2行は、運用が始まってから効いてきます。 更新のたびに管理者の承認を待つ必要は無いので、様式マスタと規程は気づいたその日に直せます。 トピックを分けておけば、直す範囲も1つの様式で閉じます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 申請者の所属・拠点・役職・上長、出張先と訪問先、購入しようとしている品目と金額、押印を求めている契約の相手方、そして休暇や勤務形態の変更の理由です。ふだん総務にしか見えていない情報が、そのまま対話の記録になります。
- 休暇の理由が対話に残ることを、先に決めてください … 体調や家庭の事情が書かれる可能性があります。それが総務のエージェントの記録に残ってよいかは、人事と決めることです
- 知識源のアクセス権は、利用者の権限で決まります … SharePoint を知識源にすると、利用者の Microsoft Entra ID 認証が働き、その利用者がアクセスできるコンテンツのみが表示されます。 役員向けの規程や拠点限定の運用ルールの権限を、導入前に確かめてください
- グループチャットとチャネルでは動かしません … 認証を必要とする知識源は、そこでは使えません。設計上の制限で、意図しないデータの漏えいを防ぐためのものです
- 対話は監査の対象になります … Copilot Studio は Microsoft Purview の「Copilot のエクスペリエンスとエージェント」に含まれます。プロンプトと応答は統合監査ログにキャプチャされ、対話の方法とタイミング、アクセスされたファイルへの参照、秘密度ラベルが記録されます
- どれだけ残すかを、保持の側で決めます … アイテム保持ポリシーで、プロンプトと応答を自動的に保持または削除できます。1年前の休暇の相談が残り続ける必要があるかを、総務と法務で決めてください
- AIは承認しません。提出もしません … 出すのは下書きと根拠だけです。申請を出すのは本人、認めるのは承認者、例外を決めるのは総務です
- 「根拠のない応答を許可する」をオフにします … ただし、この設定は一般的な知識をまったく使わないことを保証するものではないとされています。指示と出力形式の両方で守ります
誤りが起きた場合のリスクは、間違った承認ルートで回付されることと、規程に無い運用を「認められている」と受け取られることの2つです。 前者は承認ルートをAIに答えさせると起き、後者は答えられないものを止めないと起きます。どちらも、AIに何をさせないかを決めきれていないことから出ています。
10まず何から始めるか
1週目:差し戻しの理由を数える
先月の差し戻しを、様式ごと・理由ごとに数えます。上位5つの理由で、差し戻しの大半が説明できるはずです。 あわせて、申請件数の多い上位5つの様式を選びます。600名が使う様式のすべてを一度に扱う必要はありません。
2週目:様式マスタと承認ルート表を作る
上位5つの様式について、様式コード、用途、必須項目、必要な添付を1行にまとめます。承認ルート表は、申請種別 × 金額帯 × 部門で1行1組み合わせの形に直し、金額帯の「以上」「未満」を書き切ります。 ここが、この導入のいちばん重い作業です。
3週目:20件で試す
先月差し戻した20件の用件を、手元のAIサービスに与えて様式と必須項目を答えさせます。規程のどこに書かれているかを示せるかを、最優先で見ます。
4週目:Teamsに出さずに作る
Copilot Studio で、上位5つの様式のトピックを作り、質問ノードで必須項目を埋めさせます。承認ルートを引くフローをツールとして追加し、表以外から答えが出ないことをテストで確かめます。 この時点ではまだ公開しません。
2か月目: 総務3名と、申請の多い部署の10名程度に配って使ってもらいます。未回答の記録を毎週読み、規程に無い問いを拾います。 3か月目以降: 管理者の承認を得て全社に配り、残りの様式を足します。月に1回、差し戻しの理由を数え直し、様式の項目名と規程の書き方を直す会を持ちます。 1件12分が何分になったかを実測し、同じ理由の差し戻しが翌月も出ていないかを見た時点で完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| ノードの種類。生成オーケストレーションはトピックの説明で、クラシックはトリガー フレーズで選ぶこと。トリガー フレーズは5〜10個必要で短い語句が推奨され、1行1フレーズのファイル(最大3MB)で追加できること | Microsoft Learn: トピックの作成と編集 | 2026-09-23 |
| 知識源の入力数の上限(SharePointは生成モードで25個のURL、クラシック モードでは生成回答ノードごとに4つ)。SharePointが利用者の Entra ID 認証を使い、アクセスできるコンテンツのみを表示すること。「根拠のない応答を許可する」をオフにすると、知識源やツールを使わなかったターンの応答がブロックされ、引用が返らない生成が断続的に起きること。本文内引用を必ず含めるよう指示することが推奨され、厳格な出力形式の強制が引用マーカーを抑制すること | Microsoft Learn: 知識源の概要 | 2026-09-23 |
| クローズド リスト エンティティで値と同義語を定義でき、1行1値・パイプ区切り・最大3MBのファイルでアップロードできること。スマート マッチングの働き。プロアクティブ スロット フィリングで質問ノードがスキップされること | Microsoft Learn: エンティティとスロット フィリングの使用 | 2026-09-23 |
| 値の解析ノードが型を変換し、サンプルJSONからスキーマを取得してレコード型の変数にできること | Microsoft Learn: 変数を操作する | 2026-09-23 |
| 公開済みのエージェント フローをツールとして追加でき、オーケストレーターが実行時に呼ぶこと。専用のトリガーと応答アクションが要ること。いつ使うべきかの明確な説明を書くこと | Microsoft Learn: エージェントからエージェント フローを呼び出す | 2026-09-23 |
| チャネルへの接続に少なくとも1回の公開が必要なこと。アプリ ストアへの掲載と、管理者のポリシーによる自動インストールとピン留め。詳細を変えたときだけ再承認が必要なこと。グループ チャットとチャネルでは認証を必要とする知識源が設計上使えず、1対1でのみサポートされること | Microsoft Learn: Teams と Microsoft 365 Copilot のエージェントを接続して構成する | 2026-09-23 |
| Copilot Studio が「Copilot のエクスペリエンスとエージェント」に含まれること。プロンプトと応答が統合監査ログにキャプチャされ、対話の方法とタイミング、アクセスされたファイルへの参照、秘密度ラベルが記録されること。アイテム保持ポリシーで保持または削除できること | Microsoft Learn: 生成AIアプリに対する Microsoft Purview の保護 | 2026-09-23 |
承認ルートと金額の閾値をどう定めるかは、自社の規程と決裁権限の取り決めによります。 本記事は、その表を機械的に引く構成だけを扱っています。検索基盤の接続方法は個別実装が必要で、公開仕様の確認は行っていません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0187)についてのご相談はこちらから。
