滞留している売掛金の督促の優先順位を決めて連絡文の下書きを作る
毎月の消込が終わった後に残る期日超過の売掛金を入力に、取引先ごとの入金実績から入金の見込み日と遅れの異常さを計算し、社内で決めた式で督促の順番を並べ、連絡文の下書きまで作ります。
- 利用ツール
- Azure OpenAI Service/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python/Zapier
- 対象業界
- IT・SaaS/商社/建設/製造
- 対象部門
- 経理/財務
- 対象業務
- 分類・仕分け/書類作成/集計・分析
- 主な課題
- 人手が足りない/判断に時間がかかる/期限・対応漏れが起きる
- AIで行う処理
- 予測
- 主な効果
- 判断支援/属人化解消/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 消込が確定した翌営業日に、販売管理システムから期日超過の売掛残高を一覧で出す
- Excelに貼り、金額の大きい順に並べ替える
- 上から順に、その取引先の過去の入金履歴を開いて「いつもの遅れかどうか」を見る
- 請求書の控えと、納品・検収の記録を確認する
- 営業担当に「この先、入りそうか」を照会する
- 返答を待ち、督促のメール文を作って送る、または電話をかける
- 送った内容と相手の回答を、Excelの備考欄に書く
- 翌月、更新された一覧をまた上から見直す
- 自動消込が確定した翌営業日に、期日超過の明細と過去2年の入金実績を取り出す
- 自動取引先ごとに、支払期日からの遅延日数の分位点(中央値・75%点・90%点)を計算する
- 自動明細1件ごとに入金の見込み日を出し、「通常の遅れ」か「いつもと違う遅れ」かを区分する
- 自動営業とのやり取りと請求の備考から、滞留の理由の候補を読み取る
- 自動社内で決めた式で優先度点を計算し、高い順に並べる
- 自動取引先の区分に応じた語調で、連絡文の下書きを作る
- 人債権管理担当が上位から、区分と理由が合っているかを見て下書きを直す
- 人営業担当が送付前に内容を確認する(主要取引先は必須)
- 人担当者が自分の名前で送る
- 自動送付日、文面、回答、次に確認する日を債権台帳へ記録する
各工程の詳しい説明を読む
- 消込が確定した翌営業日に、販売管理システムから期日超過の売掛残高を一覧で出す
- Excelに貼り、金額の大きい順に並べ替える
- 上から順に、その取引先の過去の入金履歴を開いて「いつもの遅れかどうか」を見る
- 請求書の控えと、納品・検収の記録を確認する
- 営業担当に「この先、入りそうか」を照会する
- 返答を待ち、督促のメール文を作って送る、または電話をかける
- 送った内容と相手の回答を、Excelの備考欄に書く
- 翌月、更新された一覧をまた上から見直す
問題は4つあります。
(a)金額順は回収の順番と合っていない。 毎回5日遅れるが必ず払う大口が上位を占め、初めて遅れた中堅企業が下に埋もれます。手が足りないので、下位の明細は翌月へ持ち越されます。
(b)滞留の理由が一覧に載っていない。 「検収でもめている」「請求書の再発行待ち」「先方の担当者が交代した」といった事情は、営業とのメールや請求の備考欄の中にあります。毎回1件ずつ履歴をたどることになります。
(c)営業への照会が返ってこない。 800社を営業25名に照会しても、返るのは一部です。返らない先は「不明」のまま督促するか、放置するかになります。
(d)文面の語調が人によって違う。 ベテランは相手との関係を見て書き分けますが、新任は一律の文面を送ります。10年取引のある主要取引先に、初回から厳しい文面が届くことがあります。
- 【自動】 消込が確定した翌営業日に、期日超過の明細と過去2年の入金実績を取り出す
- 【自動】 取引先ごとに、支払期日からの遅延日数の分位点(中央値・75%点・90%点)を計算する
- 【自動】 明細1件ごとに入金の見込み日を出し、「通常の遅れ」か「いつもと違う遅れ」かを区分する
- 【自動】 営業とのやり取りと請求の備考から、滞留の理由の候補を読み取る
- 【自動】 社内で決めた式で優先度点を計算し、高い順に並べる
- 【自動】 取引先の区分に応じた語調で、連絡文の下書きを作る
- 【人】 債権管理担当が上位から、区分と理由が合っているかを見て下書きを直す
- 【人】 営業担当が送付前に内容を確認する(主要取引先は必須)
- 【人】 担当者が自分の名前で送る
- 【自動】 送付日、文面、回答、次に確認する日を債権台帳へ記録する
自動化されるのは「履歴を集める」「見込みを計算する」「理由を読み取る」「並べる」「下書きを作る」の5つです。残るのは「送ってよいかを判断すること」と「送ること」です。
02今回想定するシステム構成
販売管理システム(売掛残高) 会計システム(消込結果・入金実績)
└──────────┬───────────────┘
▼ CSVエクスポート(消込確定の翌営業日)
処理エンジン(Python / pandas)
├─ 期日超過の明細を抽出し、滞留日数を出す
├─ 取引先ごとの遅延日数の分位点(中央値 / 75% / 90%)
└─ 入金の見込み日と「通常 / いつもと違う遅れ」の区分
▼
生成AI ── やり取り・請求の備考から滞留の理由を読み取る
▼
優先度点 = 金額点 × 遅れの異常さ点 × 回収の難しさ点(人が決めた式)
▼
生成AI ── 取引先の区分に応じた語調で連絡文の下書きを作る
▼
督促リスト(優先度順)──【人】債権管理担当 →【人】営業担当が承認
▼
担当者が自分の名前で送付(自動送信しない)→ 債権台帳へ記録| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理エンジン | Python(pandas で遅延日数の集計と見込みの計算) | Google Apps Script |
| 生成AI | Claude API(構造化出力) | Azure OpenAI Service、Gemini API |
| ワークフロー | Make | Power Automate、Zapier、n8n |
| 債権データの取得 | 販売管理システム・会計システムのCSVエクスポート | 各社のAPI連携(製品による) |
販売管理システムや債権管理の製品に、督促状の出力や滞留一覧の機能が付いていることがあります。先にそちらを確認してください。 自前で組む価値があるのは、優先順位の付け方を自社の基準で決めたい場合です。
03どうやって実装するのか
処理の起点を決める
毎月、消込が確定した翌営業日の朝を主な起点にし、加えて週1回、滞留中の明細の状態を更新します。Make では、実行間隔を「at regular intervals」「once」「daily」「weekdays(月〜金)」「weekly」「monthly」「specified dates」「on demand」から選べます。既定は15分ごとで、最短の間隔は契約プランによって変わります。この業務は月次と週次で足ります。
消込が確定していない状態で走らせないでください。 入金済みの請求を督促すると、取引先に誤った連絡が届きます。消込確定フラグを見て、未確定なら処理を止める分岐を必ず入れます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 期日超過の明細 | 請求番号、取引先コード、支払期日、請求額、未入金残高 | 販売管理システム |
| 入金実績 | 入金日、入金額、充当した請求番号(過去24か月) | 会計システム |
| 取引先マスタ | 支払条件、支払方法、取引開始日、年間取引額、担当営業 | 販売管理システム |
| 取引先の区分 | 主要/通常/新規/少額(社内で定義)と、督促の履歴 | 債権管理台帳 |
| やり取りの記録 | 営業と取引先のメール、請求の備考 | メール、販売管理システム |
データの取得方法を決める
明細と入金実績: 販売管理システムと会計システムからCSVでエクスポートします。APIの有無と仕様は製品によって異なるため、この部分は利用環境に応じた個別確認が必要です。
入金実績は請求番号つきで取り出す必要があります。 「いつ入金があったか」だけでは、支払期日から何日遅れたかを計算できません。UC-0007のような消込が請求単位で動いていることが前提で、残っていない場合は消込の整備が先です。
やり取りの記録: 請求番号または取引先コードで、直近3か月のメールと備考を集めます。
AIへ渡す前に整形する
- 滞留日数の算出 … 支払期日が金融機関の休業日なら翌営業日に寄せてから、処理日との差を出します。この調整をしないと、土日の分だけ全社が「遅延」に見えます
- 通常の入金ではないものの除外 … 相殺、値引き、返品、債権譲渡、手形の期日到来待ちは遅延とは別の事象です。滞留一覧から外します
- 取引先ごとの分布を作る … 過去24か月の入金実績から、取引先ごとに「支払期日から何日で入金されたか」の中央値・75%点・90%点・最長を出します。pandas の
DataFrameGroupBy.quantileはqに0から1の値(既定は0.5=中央値)を渡して分位点を返し、値が2点の間に落ちる場合の扱いをinterpolation(linear/lower/higher/midpoint/nearest)で選べます - 実績の少ない先を分ける … 入金実績が5件未満の先は分位点が当てになりません。「実績なし」にし、金額と支払条件だけで扱います
- AIへ渡す対象の絞り込み … 「いつもと違う遅れ」と滞留31日以上の明細だけにします
AIに処理させる
役割を3つに分けます。ここを混ぜると、検算できない数字が督促リストに載ります。
| 処理 | 内容 | 使うもの |
|---|---|---|
| 入金の見込み日 | 支払期日に、その取引先の遅延日数の中央値と75%点を足す | 統計処理(分位点) |
| 遅れの異常さ | 今回の滞留日数が、その取引先の分布のどこにあるかを区分する | 統計処理(分位点) |
| 滞留の理由 | やり取りと備考から「検収待ち」「再発行待ち」などを読み取る | 生成AI |
| 優先度点 | 金額点 × 遅れの異常さ点 × 回収の難しさ点 | 計算のみ |
| 連絡文の下書き | 取引先の区分に応じた語調で、事実と依頼を書く | 生成AI |
入金の見込みを生成AIに出させないでください。 「いつ払いそうか」は、その取引先の過去の遅延日数の分布が答えです。分位点で出せば、なぜその日付になったかを実績で説明できます。誤差が大きければ機械学習へ進む道もありますが、まず分位点で足りるかを測ってください。
優先順位もAIに決めさせません。 式を人が決めます。
優先度点 = 金額点 × 遅れの異常さ点 × 回収の難しさ点
金額点 1:100万円未満 → 5:3,000万円以上(社内の基準額で5段階)
遅れの異常さ点 1:中央値以内 / 2:75%点以内 / 3:90%点以内
4:90%点超 / 5:過去最長を超えた
回収の難しさ点 1:請求書の再発行待ち / 2:担当者の変更 / 3:検収でもめている
4:理由が読み取れない / 5:こちらの連絡に反応がない
この重みは自社で決めます。 3つを掛けるのは、「金額は大きいが毎回の遅れの範囲内」という明細を上位に置かないためです。式を表に出せば、なぜこの順番なのかを営業にも説明できます。
指示内容を固定する
滞留の理由を読み取らせる部分です。
以下のやり取りと備考から、この請求が未入金のままである理由を読み取ってください。
【厳守事項】
- 書かれていることだけを根拠にしてください。推測で理由を作らないでください。
- 根拠になる箇所を quote に原文のまま引用してください。
引用できない理由は挙げないでください。
- 理由が読み取れない場合は reason を "unknown" にしてください。
- 取引先の信用、倒産の可能性、取引を止めるべきかを書かないでください。
【理由の区分】検収待ち / 請求書の再発行待ち / 担当者の変更 /
支払条件の認識違い / 先方の社内決裁待ち / 連絡に反応なし / unknown
【やり取り・備考】{correspondence}
連絡文の下書きを作らせる部分です。
取引先への連絡文の下書きを作ってください。
【厳守事項】
- 与えられた事実(請求番号、請求額、支払期日、滞留日数、理由)だけを使うこと。
- 法的手続き、遅延損害金、取引停止、信用に関する記述をしないこと。
- 断定的な催告ではなく、状況の確認を依頼する文にすること。
- 理由が "unknown" の場合は理由に触れず、確認のお願いだけを書くこと。
- 300文字以内で、【区分】の語調に従うこと。
【区分と語調】
主要:まずこちらの確認不足の可能性に触れ、照会の形にする
通常:事実を示し、入金予定日の回答を依頼する
新規:支払条件の認識違いの可能性に触れ、条件を再掲する
少額:簡潔に。請求書の再送を申し出る
「法的手続きと遅延損害金を書かせない」の1行が要です。 これらは自社の債権管理規程に沿って人が判断する事項で、文面に一度入ると取引関係に戻れません。「取引を止める」「信用が不安だ」も書かせません。 与信の判断は UC-0032 の領域で、この仕組みの外です。
出力形式を固定する
{
"items": [
{
"invoice_no": "", "customer_code": "",
"customer_tier": "main | normal | new | small",
"outstanding_amount": 0, "overdue_days": 0,
"expected_payment_date": "",
"delay_flag": "usual | unusual | no_history",
"reason": "", "quote": "", "excluded_reason": "",
"amount_score": 0, "anomaly_score": 0, "difficulty_score": 0,
"priority_score": 0,
"draft_message": "", "needs_sales_review": true
}
]
}
点数の内訳を3つとも返させるのは、順位の根拠を画面に出すためです。Claude API の構造化出力は output_config.format にJSONスキーマを指定します(旧 output_format は非推奨)。ただし minimum / maximum などの数値制約と minLength / maxLength などの文字列制約は指定できません。 点数が想定の範囲に収まっているかは、受け取ったあとに検算してください。
システムへ連携する
| 出力先 | 内容 |
|---|---|
| 督促リスト | 優先度順。金額、滞留日数、見込み日、区分、理由、引用を並べる |
| 連絡文の下書き | メールの下書きとして保存する。送信はしない |
| 債権台帳 | 送付後に、送付日・文面・回答・次に確認する日を記録する |
ワークフローに送信のアクションを置かないでください。 設定を1か所変えれば送れてしまう構成にすると、承認の運用が形骸化します。営業への確認依頼は、優先度の上位と主要取引先に限って通知します。全件を投げると、Beforeの「返ってこない」が残ります。
人が確認する
全件、人が確認します。自動送信はしません。 誤った督促は、入金済みの請求や、検収が終わっていない請求への催促につながります。どれも、次の受注に響きます。
| 対象 | 確認 |
|---|---|
| 主要取引先、優先度が上位、滞留61日以上 | 営業担当の承認を必須にする |
| 通常・新規の先で、理由が読み取れているもの | 債権管理担当が文面を確認して送る |
| 少額かつ滞留30日以内 | 下書きをそのまま使い、一括で確認する |
理由が unknown、または no_history | 送らない。先に状況を確認する |
最後の行を省かないでください。 理由が分からないまま送ると、こちらの請求漏れや検収の未了が原因だった場合に、取引先へ非を押しつけることになります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 消込が未確定のまま処理が走った | 処理を止めて通知する。 未確定のデータで督促しない |
| 入金済みなのに滞留として出た | 確定フラグと突き合わせ、不一致なら人へ回す |
| 実績が5件未満で分位点が出せない | no_history にする。金額だけで上位に置かない |
| 相殺・値引き・返品・債権譲渡、手形の期日前 | 通常の滞留と分け、自動処理の対象外にする |
| 同じ取引先の明細が10件以上ある | 1件ずつ送らず、取引先単位で1通にまとめる |
| 倒産・支払停止の情報が入った | 自動処理から外し、社内規程の手順へ移す。AIに判断させない |
記録を残す
- 各月の滞留一覧(請求単位)と、計算に使った分位点
- AIが読み取った理由と、根拠として引用した原文
- 優先度点の内訳(金額点・遅れの異常さ点・回収の難しさ点)
- AIの下書きと、人が修正して実際に送った文面の両方
- 送付日、送付者、相手の回答、次に確認する日
4つ目を別々に残してください。 後で交渉になったとき、どこまでが機械の出力で、どこからが自社の意思表示だったのかが分かる必要があります。
04実装レベルの3段階
半自動化の時点で、削減の大半が取れます。 履歴をたどる時間と文面を書く時間が消えるためです。本格構成で増えるのは、送りっぱなしにならないことです。次に確認する日が台帳に入り、期限が来たら再びリストに上がります。
05工数削減シミュレーション
導入後 250件 × 4分 ÷ 60 = 16.7 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 取引先が300社以上あり、支払条件が取引先ごとに違う企業。毎月の消込後に期日超過の明細が100件以上残る。入金の消込が請求単位で記録されており、過去2年分の入金実績を請求番号つきで取り出せること。督促の可否を最終的に決める担当者が社内にいること。
- 取引先が数十社で、担当者が全社の支払状況を把握できている場合。前受金や自動口座振替が中心で滞留そのものが少ない業態。入金消込が請求単位で残っておらず、どの請求が未入金かを特定できない場合(まず消込の整備が先)。回収を債権回収会社や弁護士へ全面的に委託している場合。
07最小構成で試す方法
AIを使わずに、分位点だけで試せます。先にこれをやってください。
- 過去24か月の入金実績から、取引先ごとに遅延日数の中央値と90%点を出す
- 先月の滞留250件に当てて、「通常の遅れ」と「いつもと違う遅れ」に分ける
- 「いつもと違う遅れ」の件数を数え、その後1か月で入金されたかを突き合わせる
| 結果 | 判断 |
|---|---|
| 「いつもと違う遅れ」が30〜60件 | この区分で足りる。 上位から順に処理する運用に変える |
| 100件を超える | 分位点の期間が短いか、支払条件のマスタが実態と違う。先にマスタを直す |
| 「通常の遅れ」の先が入金されない | 分位点だけでは足りない。理由の読み取りを足す |
この時点で督促の順番が変わるなら、AIを入れる前に運用を変える価値があります。
AI部分は、理由が分かっている滞留を20件選び、やり取りを貼って理由を読み取らせます。見るのは正解率ではなく、「根拠を引用できないのに理由を断定していないか」です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 入金済みの請求へ督促してしまった | 消込の確定フラグを見て、未確定なら処理を止める。これが最優先 |
| AIが根拠なく理由を断定した | 原文の引用を必須にする。引用できない理由は unknown に落とす |
| 下書きに遅延損害金や法的手続きが書かれた | プロンプトで禁止し、出力側でも該当語を検知して警告する |
| 主要取引先に厳しい文面が送られた | 区分ごとに語調を分け、主要取引先は営業の承認を必須にする |
| 優先順位の根拠を営業に説明できない | 式と点数の内訳を表示する。AIに順位を決めさせない |
| 送ったあと放置され、再督促の時期を逃した | 次に確認する日を台帳の必須項目にし、期限で再びリストに上げる |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 取引先の社名、請求額、未入金残高、支払遅延の実績、営業とのやり取り、先方担当者の氏名。取引先の支払遅延の実績は、その取引先の信用に関する情報です。
- 外部AIへ渡す範囲を決める … 見込み日と点数の計算は社内の処理で完結します。 生成AIへ渡すのは、理由の読み取りに必要な文面と、下書きに必要な事実(請求番号・金額・期日・滞留日数・区分)だけです
- 先方担当者の氏名 … メールには個人名が含まれます。渡す場合は自社のプライバシーポリシーとの整合を確認してください
- 学習利用とアクセス権限 … 入力を学習に使わないことが契約で保証されるサービスを選び、滞留一覧と督促の履歴の閲覧を債権管理と担当営業に限定します
- 与信の判断に使わない … 遅延の区分を根拠に取引条件を変えたり出荷を止めたりしないでください。与信は UC-0032 の領域で、人が判断し根拠を説明できる形にする必要があります
- 重い判断をAIにさせない … 倒産の兆候、反社会的勢力との関係、取引の停止は出力項目に持たせません。該当しそうな情報が入ったら社内規程の手順へ移します
- 自動実行してよい範囲 … 督促文の送信は自動化しません。運用が安定しても変えません
法的な段階へ進む場合は、この仕組みの外です。 内容証明は、いつ、いかなる内容の文書を誰から誰あてに差し出したかを、差出人が作成した謄本によって日本郵便が証明するサービスです。証明されるのは内容文書の存在であり、内容が真実であるかどうかではありません。 支払督促は、債権者の申立てにより裁判所書記官が発する手続で、相手の住所地を管轄する簡易裁判所へ申し立てます。債務者は2週間以内に督促異議を申し立てることができ、異議があれば通常訴訟へ移行します。
どの段階でどの手続きに進むかは、自社の債権管理規程と顧問弁護士の確認が必要です。 AIに内容証明や申立書の文面を作らせる構成にはしないでください。この記事が扱うのは、その手前の連絡文の下書きまでです。
10まず何から始めるか
1週目:入金実績が請求単位で取り出せるかを確認する
「入金日と充当した請求番号」の対応を、過去24か月分取り出せるかを確認します。取り出せなければ、この構成は作れません。 先に消込の整備を検討してください。
2週目:分位点で滞留を分けてみる
取引先ごとの遅延日数の中央値と90%点を出し、先月の滞留250件を「通常の遅れ」と「いつもと違う遅れ」に分けます。件数が30〜60件に収まるかを見てください。
3〜4週目:優先順位の式を財務と営業で決める
3つの点数の重みを決め、先月の実績に当てます。上位20件が営業から見ても妥当かを確認してください。 ここを合意しないまま実装すると、リストが使われません。
2か月目: 理由が分かっている滞留20件で、読み取りの精度と下書きが使えるかを測ります。連絡文は営業に見せて、自分の名前で送れる文面かを確認します。
3か月目以降: 定期実行、承認依頼の通知、債権台帳への記録を作ります。並行して、滞留61日以上の件数が減っているかを月次で見てください。工数の削減幅より、この件数のほうが導入の成否を表します。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
DataFrameGroupBy.quantile がグループごとの分位点を返すこと。q は0から1の値で既定は0.5(中央値)、2点の間に落ちる場合の扱いを interpolation の5種類から指定できること | pandas: quantile | 2026-09-15 |
構造化出力が output_config.format にJSONスキーマを指定する方式であること(旧 output_format は非推奨)。数値制約と文字列長の制約が使えないこと | Claude Docs: Structured outputs | 2026-09-15 |
| スケジュールに「at regular intervals」「once」「daily」「weekdays」「weekly」「monthly」「specified dates」「on demand」があること。既定が15分ごとで、最短の間隔はプランによって変わること | Make: Schedule a scenario | 2026-09-15 |
| 内容証明が、いつ・いかなる内容の文書を誰から誰あてに差し出したかを差出人の謄本によって日本郵便が証明するサービスであること。証明されるのは内容文書の存在であり、内容が真実であることではないこと | 日本郵便: 内容証明 | 2026-09-15 |
| 支払督促が債権者の申立てにより裁判所書記官の審査を経て発せられること。相手の住所地を管轄する簡易裁判所へ申し立てること。債務者は2週間以内に督促異議を申し立てられ、異議があれば通常訴訟へ移行すること | 裁判所: 支払督促 | 2026-09-15 |
販売管理システムと会計システムからのデータ取得方法は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 取引先とのやり取りや支払遅延の実績を外部AIサービスへ入力してよいかは、自社の情報管理規程と取引先との契約によります。法務部門に確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0081)についてのご相談はこちらから。
