請求処理を自動化するとき、どこに「人が押すボタン」を置くか
この記事の内容
弊社では、毎月の請求まわりの処理を仕組み化しています。金額の集計から振込用データの作成までを扱う領域で、Node.js で書いた処理と Discord Bot の組み合わせで動かしています。
この領域の自動化で最初に決めたのは、どこを速くするかではなくどこで止められるようにするかでした。お金が絡む処理は、速さより取り消せることのほうが価値が高いからです。
お金の自動化は、速さより「止められること」
自動化の効果が大きい業務ほど、間違えたときの損害も大きくなります。請求まわりはその典型です。全自動にすれば人手はゼロになりますが、誤った金額がそのまま振込データになる経路も同時に完成します。
そこで、処理を2段階に割り、間に人の承認を挟む形にしました。
| 段階 | やること | この時点で確定するもの |
|---|---|---|
| 第1段階 | データを集計し、金額の確認カードをDiscordに投稿する | 何も確定しない(振込用ファイルは作らない) |
| 承認 | 人が内容を見て、絵文字リアクションで承認する | この内容で進めるという意思表示 |
| 第2段階 | 承認された内容から振込用ファイルを生成する | 金額と振込データが確定する |
この形なら、仕組みが間違えても「変な確認が飛んできた」で終わります。承認しなければ何も起きません。
承認した金額と、振り込む金額を一致させる
2段階にするときに、見落とすと危ない点があります。承認した時点のデータと、確定処理が読むデータが同じである保証です。
確認カードを出したあとで元データを読み直す作りにすると、承認から確定までの間に元のファイルが更新された場合、承認していない金額が振り込まれます。承認画面には正しい数字が出ていたのに、実際の出力は違う、という事故が起こり得ます。
対策として、確認カードを作る時点の内容をそのまま凍結して保存し、確定処理は元データを読み直さず凍結した内容から生成する形にしました。これで「承認した金額=振り込む金額」が構造的に保証されます。
内容を直したら、承認をやり直す
明細に不足があって修正した場合、古い確認カードへの承認が生きていると、直す前の内容で確定してしまいます。そこで、内容を作り直したときは新しい確認カードに切り替わり、古いカードへの承認は無視されるようにしています。
承認ボタンは「表示されている明細をそのまま確定する」という意味に固定する。この一文を守るだけで、承認まわりの事故はほぼ防げます。
AIの読み取りは、そのまま信用しない
請求書のPDFから振込先情報を読み取って自動登録する機能も作りましたが、実運用では信用しない前提にしています。実際にテストしたところ、次のような誤りが出ました。
- 似た名前の金融機関コードの取り違え
- 実在しない支店コードの生成
- 法人格の略号を含む口座名義カナの誤読
やっかいなのは、空欄なら検証で止まるのに、それらしく間違っている値は素通りすることです。空欄は異常として検出できますが、形式が正しい誤りは検出できません。
そのため、新規の取引先を登録するときは、請求書を人が読み、金融機関コードを公式の一覧で照合してから登録する運用にしています。AIには下書きを作らせ、確認は人がやる。この分担は変えていません。
自動化しないと決めた3つ
人が必ず操作するもの
- 金額の確定:承認ボタンは人だけが押す
- 外部への送信:取引先に届くものは、内容を人が見てから出す
- データの削除:消す操作は自動処理から外す
この3つは、どれも取り消せない操作です。逆に言えば、取り消せる操作はかなり大胆に自動化して構いません。集計、照合、下書き、通知は間違えてもやり直せます。
運用してみて分かったこと
仕組みそのものより、周辺で気をつける点のほうが多いというのが正直な感想です。
- 常駐させる処理には必ず時間制限を入れる:外部との通信で応答が返らないと処理全体が固まり、承認しても無反応になります
- 失敗したときは、その状態で止める:エラーのまま再試行し続けると、通知が連投されて誰も見なくなります
- 月の指定を省略できるようにしない:対象月を推測させると、古い月を処理してデータを壊すことがあります(実際に起こしました)
よくある質問
承認をチャットツールで行う利点は何ですか?
専用の管理画面を作らずに済むことと、承認の履歴がそのまま残ることです。誰がいつ承認したかがログとして残るので、後から経緯を追えます。新しいツールを覚える必要がないのも実務上は大きい点です。
1人で運用していても、承認ゲートは必要ですか?
必要だと考えています。承認ゲートは他人をチェックするためではなく、自分の作業を一度止めるための仕組みです。1人だと確認する人がいない分、むしろ機械的に止まる場所があったほうが安全です。
会計ソフトの自動連携と、どちらがよいですか?
既製のサービスで完結するなら、そちらのほうが確実です。弊社が自作しているのは、取引先ごとの支払い条件や照合ルールが既製の型に収まらなかったためです。まず既製サービスを検討し、はみ出した部分だけを自作するのが費用対効果としては妥当だと思います。
バックオフィス業務の自動化について、どこまで任せてよいかの線引きからご相談いただけます。
無料で相談する