仮払金と立替経費の未精算を毎月点検して、督促と精算処理の候補を出す
仮払金の残高一覧と経費精算システムの申請を毎月突き合わせ、精算されていない相手と金額を洗い出します。滞留の段階に応じた督促文の下書きと、長期滞留分の会計処理の候補を作り、担当者は送信するかどうかを決めるだけにします。
- 利用ツール
- ChatGPT/Claude/Gemini/Make/Power Automate/Zapier
- 対象業界
- IT・SaaS/商社/士業/建設/製造
- 対象部門
- 経理/財務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 生成
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 月次の締めの翌営業日に、会計システムから仮払金の残高一覧を出す
- 経費精算システムから当月と過去3か月分の申請一覧を出し、2つを表計算ソフトに貼る
- 仮払番号で突き合わせる
- 仮払番号が申請側に入っていない行を、社員番号と出張番号で手で探す
- 金額が一致しない行(一部精算、分割精算、取消)を目で判断し、突き合わない行を「未精算」として残す
- 未精算の行ごとに規程の期限から何日過ぎているかを数え、金額と合わせて誰に何と言うかを決める
- 督促のメールを書いて送る(相手によっては上長にも送る)
- 送ったことを表計算ソフトのメモ欄に書く(書かれないことも多い)
- 自動月次の締めの翌営業日、Schedule by Zapier が点検を起動する
- 自動仮払金の残高一覧と経費精算システムの申請一覧を取り込み、仮払番号、社員番号+出張番号、金額の順に突き合わせる
- 自動突き合った行(精算済み)を対象から外し、金額違い・分割精算・取消に当たる行を保留リストに分ける
- 自動申請が見つからない行を「未精算」として確定する
- 自動規程テーブルの精算期限日数を使って滞留日数を計算し、金額と合わせて段階(1〜5)を機械で判定する
- 自動段階1〜4は、その段階に合った督促文の下書きを Claude API で作る
- 自動段階5は督促文を作らず、会計処理の候補と根拠だけを整理する
- 自動下書きを Human in the Loop の承認待ちに載せる
- 人経理担当が下書きを読み、承認または却下する
- 自動承認された下書きだけを送信する(段階3以降は上長を同報)
- 人段階5の会計処理は、経理担当と上長が候補を見て決める
- 自動点検結果、送信履歴、保留リストを台帳に記録する
各工程の詳しい説明を読む
- 月次の締めの翌営業日に、会計システムから仮払金の残高一覧を出す
- 経費精算システムから当月と過去3か月分の申請一覧を出し、2つを表計算ソフトに貼る
- 仮払番号で突き合わせる
- 仮払番号が申請側に入っていない行を、社員番号と出張番号で手で探す
- 金額が一致しない行(一部精算、分割精算、取消)を目で判断し、突き合わない行を「未精算」として残す
- 未精算の行ごとに規程の期限から何日過ぎているかを数え、金額と合わせて誰に何と言うかを決める
- 督促のメールを書いて送る(相手によっては上長にも送る)
- 送ったことを表計算ソフトのメモ欄に書く(書かれないことも多い)
問題は4つあります。
(a)突き合わせが手作業で、毎月ゼロからやり直している。 仮払番号が転記されていない申請は社員番号と出張番号で探します。先月の結果は残らないので、翌月また同じ行を突き合わせます。
(b)同じ文面を全員に送っている。 1件ずつ変える時間が無いため定型文を使い回し、期限を3日過ぎた人にも90日過ぎた人にも同じ文が届きます。 3日の人は不快に思い、90日の人は反応しません。
(c)長期滞留の会計処理が誰も決めないまま残る。 90日を超えた未精算は、給与からの控除、費用への振替、回収不能としての処理のどれかの検討になります。本人・上長・経理・労務が関わるため、誰も切り出しません。
(d)1件10分で月90件。3名で分けても月15.0時間です。 締めの直後に決算と並行して発生するため後回しにされやすく、(c)が増えます。
- 【自動】 月次の締めの翌営業日、Schedule by Zapier が点検を起動する
- 【自動】 仮払金の残高一覧と経費精算システムの申請一覧を取り込み、仮払番号、社員番号+出張番号、金額の順に突き合わせる
- 【自動】 突き合った行(精算済み)を対象から外し、金額違い・分割精算・取消に当たる行を保留リストに分ける
- 【自動】 申請が見つからない行を「未精算」として確定する
- 【自動】 規程テーブルの精算期限日数を使って滞留日数を計算し、金額と合わせて段階(1〜5)を機械で判定する
- 【自動】 段階1〜4は、その段階に合った督促文の下書きを Claude API で作る
- 【自動】 段階5は督促文を作らず、会計処理の候補と根拠だけを整理する
- 【自動】 下書きを Human in the Loop の承認待ちに載せる
- 【人】 経理担当が下書きを読み、承認または却下する
- 【自動】 承認された下書きだけを送信する(段階3以降は上長を同報)
- 【人】 段階5の会計処理は、経理担当と上長が候補を見て決める
- 【自動】 点検結果、送信履歴、保留リストを台帳に記録する
自動化されるのは「突き合わせる」「数える」「段階を決める」「文面にする」の4つで、残るのは「承認する」と「会計処理を決める」の2つです。
9番目を自動化しないことが、この設計の中心です。 相手は社内の同僚で、機械が送った文面は「経理部が送った文面」として受け取られます。11番目も自動化しません。 給与からの控除、費用への振替、回収不能としての処理は本人の事情・規程・労務が絡む判断で、AIが出すのは候補と根拠までです。
02今回想定するシステム構成
仮払金残高一覧(会計システム)+ 申請一覧(経費精算システム。当月+過去3か月)
│
▼【トリガー】Schedule by Zapier(毎月・締めの翌営業日)
│
突き合わせ(仮払番号 → 社員番号+出張番号 → 金額 の順に照合)
├──▶ 一致 ──────────▶ 精算済み。対象から外す
├──▶ 金額違い・分割・取消 ─▶ 保留リスト(人が見る。督促しない)
└──▶ 申請が見つからない ──▶ 未精算として確定
│
▼ 滞留日数の計算(規程テーブルの日数)→ 段階の判定(機械で決める)
├──▶ 段階1〜4 ──▶ 督促文の下書き(Claude API)
└──▶ 段階5 ───▶ 会計処理の候補と根拠(判断はしない)
│
▼ Human in the Loop(Request Approval)
├──▶ 承認 ────▶ 本人へ送信(段階3以降は上長を同報)
├──▶ 却下 ────▶ 送信せず保留
└──▶ 期限切れ ─▶ 送信せず終了(End run)
│
▼ 点検台帳に記録(滞留一覧・送信履歴・処理候補)| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Zapier | Make、Power Automate |
| 処理 | Claude API | OpenAI API、Gemini API |
会計システムも経費精算システムもすでに業務で使っています。足すのはワークフローと処理の2つだけです。土台は3つあります。
1つ目の土台は Schedule by Zapier です。 Every Hour、Every Day、Every Week、Every Month の4つのトリガーイベントとカスタムの頻度があり、Every Month では実行する日(date of month)と時刻(time of day)を指定します。ただし設定した分のとおりの起動は保証されず、数分以内に動くとされます。また履歴の時刻は UTC 表示です。
2つ目は Human in the Loop です。 これはZap を途中で止めて、人が確認してから続きを動かすための仕組みで、イベントはCollect Data(情報を集める)、Request Approval(承認を求める)、New Approval Requested(他の Zap の承認要求で動く)の3つです。公式の案内でもAIが生成した内容のレビューや影響の大きい操作への確認が使いどころとして挙げられています。なお無料プランでは使えず、Professional、Team、Enterprise の各プランで使えます。
3つ目は Claude API の構造化出力です。 output_config.format に type を json_schema、schema に JSON Schema を指定すると、制約付きのデコードでスキーマに沿った応答が保証されます。 ただし enum や const は使える一方で、数値の制約(minimum、maximum)と文字列の長さの制約は使えません。 滞留日数も金額も縛れないので、そこはAIに出させず、ワークフロー側で計算した値を渡します。
03どうやって実装するのか
処理の起点を決める
月次の締めの翌営業日に、Schedule by Zapier の Every Month で起動します。 締めの日が月によって前後する場合は、日付を少し後ろに取り、前処理で締めの完了を確認します。
ただし月1回だけの起動には弱点があります。1回止まると、1か月分の点検が丸ごと抜けます。 そこで起動を2本立てにします。
| 起動 | 頻度 | 役割 |
|---|---|---|
| 月次点検 | Every Month(締めの翌営業日) | 全件の突き合わせ、段階判定、下書きの作成 |
| 期限前の案内 | Every Week(毎週月曜) | 期限が今週来る人への事前の案内 |
週次のほうが、じつは効きます。 期限前に「今週が期限です」と届けば、督促そのものが発生しません。なお実行の時刻を前提にした処理は書かず、履歴が UTC である点にも注意して台帳には日本時間で記録します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 仮払金の残高 | 仮払番号、社員番号、氏名、部門、仮払日、仮払額、残高、摘要 | 会計システム |
| 経費精算の申請 | 申請番号、社員番号、申請日、金額、仮払番号、出張番号、状態 | 経費精算システム |
| 規程テーブル | 種別ごとの精算期限の日数(出張の仮払、立替経費、接待費) | 社内規程から書き起こした表 |
| 段階テーブル | 滞留日数と金額の境目、文面の強さ、同報の有無 | 経理部門の表 |
| 社員マスタと前回の点検結果 | 上長、在籍状況(在籍・異動・退職)、前月に送った督促の段階と日付 | 人事システム、点検台帳 |
規程テーブルを持つことが、この構成の前提条件です。 「出張の仮払は帰着後10日」といった日数を種別ごとに表として持ちます。AIに「一般的には何日くらいか」を聞いて使うことは絶対にしないでください。 精算期限は会社ごとに違い、推測させると規程より厳しい督促や甘い放置が起きます。 段階テーブルも経理部門が先に決めます。退職予定・退職済みの未精算は、段階に関係なく最優先です。
データの取得方法を決める
仮払金の残高一覧: 会計システムから CSV で出力してスプレッドシートに置きます。月1回と週1回しか動かないので CSV で十分です。重要なのは形式ではなく、仮払番号または補助科目の単位で、誰のどの案件かが分かる粒度で出せるかどうかです。総額しか出せない会計システムでは成立しません。
経費精算の申請一覧: 当月だけでなく過去3か月分を取ります。 当月分だけだと、先月の仮払いを今月精算した人に督促を送ることになります。
規程テーブルと段階テーブル: スプレッドシートに置き、経理部門が見て直せるようにします。ワークフローの中に日数を書き込まないでください。
AIへ渡す前に整形する
- 表記の正規化 … 社員番号の桁揃え、金額の型、日付の書式を揃えます。CSV出力では金額にカンマや円記号が入り、そのままでは比較できません
- 突き合わせ … まず仮払番号で1対1に当て、残りを社員番号と出張番号の組で寄せます。出張番号も無い立替経費は発生日の近さと金額で候補を出し、確定させません
- 金額の照合 … 一致・一部精算・超過(立替えが仮払額を上回った)に分けます。1件の仮払に複数の申請がぶら下がる場合は合計してから比べ(1件ずつ比べるとすべてが金額違いになります)、取り消された出張の仮払いは返金の未処理として分けます
- 滞留日数の計算 … 規程テーブルの日数で期限日を出し、何日過ぎたかを計算します。この計算はすべて機械で行い、AIに日付の引き算をさせません
- 段階の判定と保留リストの切り出し … 段階テーブルの境目に当てはめ、「なぜその段階か」(滞留日数と金額)を必ず添えます。 候補止まり、金額違い、取消、同額の別件が同月に2件ある行は督促の対象から外し、人が見る一覧に回します
最後を省かないでください。 同じ社員が同じ月に同額の仮払いを2件受けているとき、機械はどちらが精算済みか判断できません。
AIに処理させる
AIにさせるのは、そろえた材料を、段階に合った日本語の文面にすることだけです。 数を数えること、期限を決めること、段階を判定すること、会計処理を選ぶことはさせません。
| 段階 | 当てはまる状態 | 文面の強さ | 上長への同報 |
|---|---|---|---|
| 段階1 | 精算期限の3日前から期限当日 | 案内。期限が近いことを伝えるだけ | なし |
| 段階2 | 期限を1〜14日過ぎている | 依頼。いつまでにお願いしたいかを書く | なし |
| 段階3 | 期限を15〜44日、または一定額以上で15日超 | 依頼と期日の指定。未処理だと何が困るかを書く | 上長を同報 |
| 段階4 | 期限を45〜89日過ぎている | 事実の通知と相談の依頼。経理から直接連絡する旨 | 上長と部門長 |
| 段階5 | 期限を90日以上過ぎている、または異動・退職が絡む | 督促文は作らない | 経理内で処理を検討 |
段階1は「お知らせ」で、相手を責める言葉を一切入れません。段階4は「お願い」ではなく「現状の共有」に変わります。 上長への同報を段階で切り替えるのも意図的な設計です。段階1と2で同報すると数日の遅れが上長への報告として届き、社内の雰囲気を悪くします。 逆に段階3を過ぎても本人にしか送らないと、手が回らない状態が続きます。同報は、圧力ではなく支援に切り替わる合図です。
AIに任せるのは、文面の組み立て、段階に合わせた調子、種別(前渡しか立替えか)の書き分け、申請手続きの案内、そして段階5の会計処理の候補と根拠の整理です。最後は候補と根拠の一覧であって、結論ではありません。
指示内容を固定する
段階1〜4の督促文を作るプロンプトです。
あなたは経理部の担当者を支援する立場です。社内の同僚あてに、仮払金または
立替経費の精算をお願いする連絡文の下書きを作ってください。
この文面は経理担当者が確認し、承認してから送信されます。
【この連絡の性格】
- 相手は社外の取引先ではなく社内の同僚で、目的は「お金を取り立てること」
ではなく「精算の手続きを済ませてもらうこと」です。
- 相手は悪意があって放置しているのではなく、忙しくて手が回っていない
場合がほとんどです。そう読める文面にしてください。
【厳守事項】
- 渡した数値以外の数を本文に書かないでください。金額、仮払日、精算期限日、
滞留日数は渡した値をそのまま使い、四捨五入も「約」への言い換えもしないこと。
- 精算期限の日数を推測せず、渡した deadline_days と deadline_date
だけを使ってください。「通常は◯日以内です」と書かないでください。
- 段階(stage)に合った強さで書いてください。強さを自分で変えないでください。
stage 1 … お知らせ。期限が近いことだけを伝える。督促の言葉を使わない。
stage 2 … 依頼。いつまでにお願いしたいかを一度だけ書く。
stage 3 … 依頼と期日の指定。未処理だと何が困るかを一文で添える。
stage 4 … 現状の共有と、経理から直接相談したい旨。要求を重ねない。
- 相手を責める表現、督促の回数を強調する表現を書かないでください。
- 会計処理(給与からの控除、費用への振替、回収不能としての処理)に
言及しないでください。stage 4 でも書かないでください。
- 本文で使った数値は、すべて facts_used に
「項目名・使った値・出どころ」の形で列挙してください。
【未精算の明細】{item}
【種別と精算期限(規程テーブルの値)】{rule}
【段階と、その段階になった理由(滞留日数と金額)】{stage_with_reason}
【申請の手順】{how_to_apply} 【前回までに送った督促の記録】{previous_notices}
「相手は悪意があって放置しているのではない」を明記していることに注目してください。 これを書かないと、督促文はどうしても取り立ての文体に寄ります。社外の売掛金の督促文をそのまま社内に使うと角が立つのは、このためです。
「会計処理に言及しない」も必要です。 段階4の文面に「このままですと給与からの控除を検討することになります」と入ると、それは経理部門としての通告になります。
段階5については、別のプロンプトで候補と根拠の整理だけをさせます。「処理を決めないでください」「〇〇が妥当です と書かないでください」「候補は渡した candidates の中からだけ挙げてください」「根拠が無い候補は根拠なしと明記してください」「人が確認すべき点を open_questions に列挙してください」を厳守事項に置き、明細と経過、候補、社内規程の該当条文を渡します。
加えて「本人の勤務態度、能力、意図についての記述を書かないでください」を必ず入れてください。 長期化した理由を書かせると、AIは「管理がずさん」「意識が低い」といった人物評を書きます。それが社内の記録に残ると、この仕組みは督促の道具ではなく人事評価の道具になります。
出力形式を固定する
督促文の出力は、output_config.format に json_schema を指定します。
{
"type": "object",
"properties": {
"item_id": { "type": "string" },
"stage": { "type": "integer", "enum": [1, 2, 3, 4] },
"kind": { "type": "string",
"enum": ["advance_unsettled", "reimbursement_unfiled", "refund_pending"] },
"subject": { "type": "string" },
"body": { "type": "string" },
"facts_used": { "type": "array", "items": { "type": "object",
"properties": { "item": {"type":"string"}, "value": {"type":"string"},
"source": {"type":"string"} },
"required": ["item","value","source"], "additionalProperties": false } },
"needs_human_attention": { "type": "object",
"properties": { "flag": {"type":"boolean"}, "reason": {"type":"string"} },
"required": ["flag","reason"], "additionalProperties": false }
},
"required": ["item_id","stage","kind","subject","body","facts_used",
"needs_human_attention"],
"additionalProperties": false
}
会計処理の候補は、candidates(候補・根拠・不足している根拠)、open_questions、decision の3項目にし、decision は const で not_made_by_ai に固定します。 これでAIが結論を書き込む場所を構造として塞げます。 stage の enum も同じ理由で、渡した値と違う値が返ってきたら下書きを捨てて再実行します。 facts_used は、本文の数値が台帳のどの値かを1行で照合するための項目です。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 会計システム/経費精算システム | CSV出力の取り込み | 仮払金の残高一覧と申請一覧(当月+過去3か月) |
| 規程・段階テーブル/社員マスタ/点検台帳 | スプレッドシートの参照と書き戻し | 精算期限の日数、段階の境目、同報の設定、上長の宛先、在籍状況、滞留一覧、送信履歴 |
| Claude API | API(Zapier のアクションから呼ぶ) | 督促文と会計処理候補の下書き作成 |
| Human in the Loop/メール | Request Approval のあと送信 | 送信前の承認、本人への連絡、段階3以降の同報 |
会計システムへの書き戻しは行いません。 仕訳を自動で起こすと承認の設計がまるごと会計システム側の話になります。
人が確認する
全件、人が承認してから送信します。承認なしで送る設計にしません。 Zapier の Request Approval では、次のように設定します。
| 設定項目 | この構成での設定 |
|---|---|
| 確認する内容 | 氏名、種別、金額、仮払日、精算期限日、滞留日数、段階、件名、本文、同報先 |
| 承認者の編集 | 許可する |
| 承認者と通知先 | 経理部の3名(メンバーに限定。1人が対応すれば完了)。共有メールとチャットのチャンネルへ通知 |
| 待ち時間 | 上限2日、1日後にリマインド(単位は分・時間・日・週から選べる) |
| 却下したときの動作 | Zap を止める(送信しない) |
| 上限を過ぎたときの動作 | End run(送信せずに終わる) |
最後の2行が、いちばん重要な設定です。 却下時と待ち時間超過時の動作には「そのまま続ける(Skip and continue)」と「終了する(End run)」が選べます。督促の送信では必ず End run を選んでください。 「そのまま続ける」にすると、誰も見ていない督促文が2日後に自動で送信されます。 承認を挟んだ意味がなくなります。
承認者の編集を許可すれば、承認の画面の中で文面を直せます。 承認されると Decision に approved が入り、後続はこれで分岐します。承認のときに見るのは3点です。
facts_usedの金額と日数が台帳の値と合っているか(本文の数字を1つずつ追わない)- 段階と文面の強さが合っているか(段階1に督促の言葉が混ざっていないか)
- この相手に、この文面を送ってよいか(休職中、異動直後、すでに個別に話している)
3つ目は機械にできません。社内の事情を知っている人だけが判断できる部分で、ここに時間を使えるようにするのが目的です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 仮払番号が申請に転記されていない | 社員番号と出張番号で寄せる。当たらなければ保留リストへ。機械で確定させない |
| 金額が一致しない(一部精算) | 差額を計算して保留リストへ。返金の依頼は人が確認してから |
| 本人が退職・異動している | 段階に関係なく最優先。上長と人事に連絡を回す |
| 承認が2日以内に行われなかった | End run で終了し送信しない。 翌月に段階が1つ上がって再び出る |
| 同額の別件が同月に2件ある | どちらが精算済みか機械では決まらない。両方を保留リストへ |
| 規程テーブルに種別が無い | 既定値を当てず保留にする。期限日数を推測させない |
| 渡していない数値が本文に書かれた | facts_used と突き合わせ、承認の前に弾く |
最後の行を仕組みで持ってください。 プロンプトの制約は必ずすり抜けます。本文から数値を機械で拾い、facts_used と突き合わせるだけの処理で防げます。
記録を残す
- 点検した対象の一覧(精算済み・未精算・保留の件数)と、突き合わせに使ったキー
- 規程テーブルと段階テーブルの、その時点の中身
- AIに渡した材料と、返ってきた下書き、
facts_used - 承認したか却下したか、誰が、いつ。却下したなら理由と、直した箇所
- 送信した日時と宛先・同報先、そして精算された日付
2つ目を残す理由は、あとで必ず聞かれるからです。 「なぜ先月は督促が来なくて、今月は上長にも来たのか」に、そのときの段階テーブルが無いと答えられません。 最後の行は効き目を示す数字で、何日で精算されたかを段階ごとに見ればどの段階の文面が効いているかが分かります。
04実装レベルの3段階
最小構成だけでも、10分が7分程度になります。 ただし突き合わせの4分と確認の2分は残るので、90件をこなす負担は変わりません。半自動化で7分から3分程度になります。 突き合わせと段階の判定が消え、承認の画面に下書きが並んだ状態から始められるためです。この段階の効果がいちばん大きく、本記事が想定するのもここです。 本格構成では工数は変わりませんが、(c)の「長期滞留が誰も決めないまま残る」が解けます。 月90件の規模では、この可視化の価値が工数削減と並びます。
05工数削減シミュレーション
導入後 90件 × 3分 ÷ 60 = 4.5 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 出張の仮払いや現場の小口の立替えが日常的に発生し、月次の締めのたびに未精算が数十件残る企業。仮払金の残高が補助科目か仮払番号の単位で取り出せ、申請一覧もCSVで取り出せること。社内規程に精算の期限が日数で書かれていること。
- 仮払いの制度を廃止し、法人カードと請求書払いに一本化している企業。仮払金の残高が総額でしか取れず、誰のどの案件か分からない場合(補助科目か仮払番号の整備が先)。未精算が月に数件で、経理担当が全部覚えていられる規模。経費精算システムの標準機能で足りる場合。
07最小構成で試す方法
- 未精算を20件だけ手で抜き出す(期限直後5件、30日前後10件、90日超5件)
- それぞれの種別と、規程の精算期限日数を書き出す
- 滞留日数を手で計算し、段階テーブルを紙の上で作る
- AIの画面に、明細・規程の日数・段階・申請の手順を貼り付ける
- 「この段階に合った強さで、社内の同僚あての精算のお願いの文面を作ってください。渡した数値以外の数を書かないでください。使った数値は出どころとともに一覧にしてください」と指示する
- 出てきた文面を、自分が普段送っている督促文と比べる
特に大事なのは、段階1と段階4の文面を並べて読むことです。同じに読めるなら、段階を分ける意味がありません。
| 下書きの状態 | 判断 |
|---|---|
| 段階ごとに強さが変わり、そのまま送れるものが半分以上 | 自動化する価値が大きい。トリガーと承認まで作る |
| 内容は合っているが、社内向けにしては硬い | 「相手は同僚」の指定と例文を足す |
| 段階の判定が決められない/誰のどの案件か分からない行が多い | 段階テーブルの決定と仮払番号の整備が先。 AIの問題ではない |
最後の行が出ることは珍しくありません。 失敗ではなく、準備として何が必要かが分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 会計システムから誰のどの案件か分からない | 補助科目か仮払番号の単位で出せるかを最初に確認する。総額しか出ないなら、そこを整えるのが先 |
| 当月分の申請だけで突き合わせている | 過去3か月分を取る。 当月だけだと精算済みの人に督促が飛ぶ |
| 分割精算がすべて金額違いになる | 仮払番号ごとに合計してから比べる |
| 出張の取消を精算と同じ扱いにしている | 返金の未処理として分ける。文面の中身が違う |
| 精算期限の日数をAIに聞いている | 規程テーブルを持つ。 規程の値だけが正解 |
| 段階テーブルを決めないまま作り始めた | 経理部門で先に決める。AIに段階を決めさせない。同報は段階3から |
| 承認の待ち時間を過ぎたら送信されていた | タイムアウトの動作を End run にする |
| Human in the Loop が選べない | 無料プランでは使えない |
| 月1回の起動が止まったことに気づかない | 未精算0件の月を検知する処理を別に入れる |
| Zap の履歴の時刻が9時間ずれて見える | 履歴は UTC 表示。台帳には日本時間で書く |
output_format を指定して動かない | output_config.format に移っている。SDK は v1.0 以降 TypeError |
| 金額の上限をスキーマで縛ろうとした | 数値の制約は使えない。 金額はワークフロー側で計算する |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 社員の氏名、社員番号、部門、上長、在籍状況、金額、出張先、摘要。社外の取引情報ではなく、自社の社員の情報です。
- 送信は必ず人が承認してから行う … Request Approval で止め、却下時とタイムアウト時の動作を「止める」「End run」にします。 督促文は経理部門からの連絡として受け取られ、誤った相手に送れば取り消しても記憶に残ります
- 会計処理の判断をAIにさせない … 給与からの控除、費用への振替、回収不能としての処理は本人の事情・社内規程・労務上の手続きが関わる判断です。AIが出すのは候補と根拠までで、
decisionはnot_made_by_aiで固定します。本記事はその判断を代替しません - 人物評を書かせない・残さない … 滞留の理由を書かせると、勤務態度や意識についての記述が出ます。社内の記録に残った時点で、この仕組みは人事評価の道具になります。 プロンプトで禁じ、出力の側でも弾いてください
- 外部AIへ渡す範囲を決める … 氏名と社員番号を渡す必要はありません。種別、金額、日付、滞留日数、段階だけを渡し、宛名は機械が差し込む設計にできます。摘要に取引先名が入る場合も、文面に不要なら渡しません
- 同報と閲覧の範囲を限定する … 上長は段階3から、部門長は段階4からと決め、それ以外の人に未精算の情報が流れないようにします。点検台帳の閲覧は経理部門に限定し、入力を学習に使わないことが契約で保証されるサービスを選んでください。 承認の記録は、あとで「なぜこの督促が送られたか」を説明するために残します
誤りが起きた場合のリスクは、精算済みの社員に督促を送ることと、社員の人物評が記録に残ることの2つです。 前者は保留リストを督促に混ぜない設計で、後者はプロンプトと出力の検査で防ぎます。どちらも設計の問題です。
10まず何から始めるか
1週目:規程テーブルを作る
社内規程から、種別ごとの精算期限の日数を書き出します。「いつから数えて何日か」まで確定させてください。 規程に無い種別が見つかれば、それ自体が成果です。
2週目:段階テーブルを決める
滞留日数と金額で、段階1から段階5の境目を決めます。同報を何段階目から入れるかも、ここで決めます。 経理部門だけで決めず、一度は上長の立場の人に「この日数で自分に同報が来たらどう思うか」を聞いてください。
3週目:20件で試す
未精算を20件選び、材料を手で集めてAIに渡します。段階1と段階4の文面を並べて読み、強さが違うかを確かめます。
4週目:突き合わせと承認を組む
Every Month で起動し、突き合わせと段階判定を通して承認待ちに載せるまで作ります。却下時とタイムアウト時の動作を必ず確認してください。 最初の月は段階1と段階2だけを対象にします。
2か月目以降: 段階3と段階4を加えて同報を有効にし、10分が何分になるかを実測します。直した箇所を必ず記録してください。 3か月目に週次の期限前案内を足すと、督促の件数そのものが減り始めます。 段階5の会計処理候補の管理はそのあとで、長期滞留の行が毎月同じまま残らなくなった時点でこの構成は完成です。 評価は送った件数ではなく、何日で精算されたかで見てください。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Every Hour/Every Day/Every Week/Every Month の4つのトリガーイベントとカスタムの頻度があり、Every Month では実行する日(date of month)と時刻(time of day)を指定すること。設定した分のとおりの起動は保証されず数分以内に動くとされること。履歴の時刻が UTC であること | Zapier ヘルプ: Schedule Zap workflows to run at specific intervals | 2026-09-22 |
| Zap を途中で止めて人が確認してから続きを動かす仕組みで、イベントが Collect Data/Request Approval/New Approval Requested の3つであること。使いどころにAIが生成した内容のレビューや公開・送信・報告への確認が挙げられること。無料プランでは使えず Professional 以上で使えること | Zapier ヘルプ: Use Human in the Loop to pause Zaps pending human review | 2026-09-22 |
確認してもらう内容、承認・却下のボタンの表示名(75文字まで)、承認者が内容を編集できるか、却下時に Zap を続けるか止めるかを設定できること。通知先としてメールアドレス、Slack のチャンネルまたは個人、他の Zap の起動を選べること。待ち時間の上限を値と単位(分・時間・日・週)で設定でき、上限超過時の動作として Skip and continue と End run を選べること。承認されると Decision に approved が入ること | Zapier ヘルプ: Request approval to keep your workflow running with Human in the Loop | 2026-09-22 |
output_config.format に type を json_schema、schema に JSON Schema を指定して使い、制約付きのデコードでスキーマに沿った応答が保証されること。使えるのが enum、const、$ref と $def(外部参照は不可)、文字列の書式、required、additionalProperties: false、使えないのが再帰的なスキーマ、数値の制約(minimum、maximum、multipleOf)、文字列の長さの制約であること。output_format が output_config.format に移り、SDK は v1.0 以降 TypeError になること | Claude API ドキュメント: Structured outputs | 2026-09-22 |
Zapier の各プランで使えるタスク数と Claude API の料金は、上記のページに記載がないため触れていません。また未精算を給与から控除する処理や費用へ振り替える処理の判断には、社内規程と労務上の手続きの確認が必要です。本記事はその判断を代替するものではありません。
実装ステータス:構成例。 公開仕様に基づく設計であり、当社で構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0164)についてのご相談はこちらから。
