紙の書類をスキャンして文字を起こし、Notionに保存する流れ
保証書、公共料金の通知、取扱説明書。届いた紙は「いつか使うかも」と机の端に積まれ、必要なときには見つかりません。スキャンしてNotionに入れておけば探せるようになりますが、そこで終わると今度は「現物を捨てていいのか」が残ります。
この記事では、紙をためこまないために私が組んでいる流れを紹介します。スキャンして、文字に起こし、Notionに画像と文字を一緒に保存し、現物を保管するか捨てるかと、いつまで持つかを書き残す、という4段階です。
紙をためこまない流れ
- 1. スキャンする画像ファイルにする
- 2. 文字にするOCRで文字起こしし、AIには文字を渡す
- 3. Notionに置く1書類1ページ。画像の下に文字起こし
- 4. 現物の扱いを決める保管か破棄か、いつまで持つかを書く
画像をAIに直接読ませない理由
最初のころ、スキャンした画像をそのままClaude Codeに読ませていました。画像はページ数に比べてトークン(使える量の単位)を多く使います。一度に数十枚をまとめて読ませたとき、消費がはっきり増えました。
そこで今は、画像を読ませる前に、OCR(画像から文字を取り出す処理)専用の小さなスクリプトで文字にしています。AIに渡すのは文字だけです。私の環境では、このスクリプトは画像のパスを並べて渡すと、書類ごとに見出しを付けた文字を返すだけの作りです。Gemini APIのモデルに「この画像の文字を書き出して」と頼んでいます。
- 費用: 画像を毎回AIの会話に載せるより、文字だけ渡すほうが軽い
- 速さ: 一度文字にすれば、検索や要約のたびに画像を読み直さなくてよい
- 再利用: 文字なら、Notionの中で検索でき、別の自動処理からも拾える
OCRにAPIを使うときのデータの扱い
ここは、個人的な書類を扱うなら必ず確かめてほしい点です。GoogleのGemini API追加利用規約では、無料の枠(Unpaid Services)と有料の枠(Paid Services)でデータの扱いが分かれています。
| 無料の枠 | 有料の枠 | |
|---|---|---|
| 送った内容の利用 | サービスの改善や機械学習技術の開発に使われる | 製品の改善には使われない |
| 人の目による確認 | 人間のレビュアーが入力と出力を読むことがある | 規約には、保存は不正利用の検知などの目的に限ると書かれている |
| 規約の注意書き | 機微・秘密・個人の情報は送らないこと |
規約の原文でも、無料の枠について「Do not submit sensitive, confidential, or personal information to the Unpaid Services.」と明記されています。私は、個人的な書類は有料の枠のキーで処理し、無料の枠は公開されている技術資料のような、見られても困らないものだけに使い分けています。規約は変わることがあるので、使う時点の最新の文面を自分で読んでください。この記事は2026年10月に確認した内容です。
もう一つ大事なのは、APIの枠を選ぶ前の話です。他人に見せたくない書類は、そもそもどのサービスにも送らず、手元だけで済ませる選択肢もあります。
Notionでの置き方: 1書類1ページ、画像の下に文字起こし
保存先のNotionでは、1書類を1ページにし、画像を貼ります。そして画像のすぐ下に、折りたたみ(トグル)で文字起こしを入れています。ページの見た目を長くしないためです。
- 画像は原本としてNotionに置く
- 文字起こしは、検索や自動処理のために同じページに残す。さらに手元のフォルダにも保存する(Notionだけに頼らないため)
- すでに似た書類のページがあれば、新しく作らず追記する。同じ書類を二重に登録しないため、金額が同じでも書類の種類(請求書と領収書など)まで見て同じ書類か判断する
NotionのAPIでは、公式ドキュメントに「ファイルアップロードを作成する」「ファイルを送信する」という手順があり、受け取ったアップロードを画像ブロックなどに添付できます。無料のワークスペースでは1ファイル5MiBまでという上限もあります。私の環境ではClaude Code経由でこの手順を使っています。Claude CodeからNotionを使う準備はNotion MCPのつなぎ方に、書き込んだ後に読み返して崩れを確かめる方法はAIにNotionへ書き込ませたら、必ず読み返させるにまとめています。
日本語のファイル名で失敗した
私の環境では、日本語のファイル名の画像を、コマンドのcurlでアップロードしようとして失敗したことがありました。別の機会には同じ方法が通ったので、いつも失敗するわけではなく、原因は特定できていません。失敗したら、次のどちらかに切り替えています。
- curlをやめて、Pythonのhttpxなどでアップロードを組む
- 英数字だけの名前の一時コピーを作ってから渡す
OCRで使うGeminiのファイルアップロードの機能でも、日本語のファイル名でエラーになったことがありました。ファイル名に日本語を使う環境では、最初から英数字の一時コピーで流すのが無難です。
捨ててよいかの判断を、毎回書き残す
スキャンしても、現物を捨てなければ紙は減りません。かといって、判断が毎回あいまいだと不安で捨てられません。そこで、保存のたびに現物の扱いをセットで書くことにしました。次の2点です。
- 保管するか、破棄してよいか
- 保管するなら、いつまで持つか
「保管」とだけ書いても、いつ捨てていいかが分からず、結局ためこみます。「2028年10月まで保管」のように期限の年月まで書いておけば、その時期に見直すだけで済みます。次の通知が届くまで、のように条件で決まるものは、その条件を書きます。
| 書類の例 | 判断の考え方 |
|---|---|
| 家電の保証書 | 保証期間が終わるまで保管し、終わったら破棄 |
| 公共料金の通知(支払い済み) | 金額と内訳を記録に残せば、破棄してよい |
| 取扱説明書 | 多くはメーカーのサイトで読めるか確かめてから破棄 |
| 契約書、公的な証明書 | 再発行しにくいので、期限を決めて保管 |
税金に関わる書類は、保管する年数が決まっているものがあります。ただ、年数は書類の種類や状況で変わるため、この記事では具体的な年数を書きません。国税庁などの公式の説明で、自分の書類の保管期間を確かめて、上のように「書類ごとに保管期間を決めて記録する」習慣にするのがおすすめです。
まとめ
- スキャンしたら、画像をAIに直接読ませる前にOCRで文字にする。トークンの消費が減り、文字は検索にも使える
- OCRにAPIを使うときは、無料の枠と有料の枠のデータの扱いが違うので、個人的な書類を送る前に規約を確かめる
- Notionは1書類1ページにし、画像の下に文字起こしを残す。日本語のファイル名でアップロードが失敗したら、英数字の一時コピーで流す
- 保存のたびに、保管か破棄か、いつまで持つかを書き残して、紙をためこまない
このNotion連携を使うときに、ページやデータベースのIDが必要になったら、NotionのID取り出しツールが使えます。また、Claude Codeが毎回守るメモの作り方はCLAUDE.mdに「家のルール」を書いておくと、毎回言わなくて済むに書きました。