「図面、どこいった?」
この一言で、地味に時間が取られていき、誰も得しない時間。
うちの会社では図面PDFを扱うので、Google Driveの所定フォルダに図面PDFを入れるだけで、Notionの図面管理DBに自動登録される仕組みを作りました。
やったことはシンプルですが、実務で効きます。
この記事は、準備 → 実装 → ハマりどころ → 安定運用まで、手順をできるだけ丁寧にまとめたものです。
1. 何を作ったのか(ゴール)
最終的なゴールはこれ。
- Google Driveに「図面自動登録」フォルダを作る
-
00_格納箱に図面PDFを入れる - Apps Script(GAS)が定期実行(手動でもOK)
- Gemini APIで図面から情報を抽出(顧客・図面番号・品名など)
- Driveの
10_顧客別にフォルダ整理して保存 - Notionの
DB_図面管理マスタに1行(1ページ)追加- 図面番号・顧客・品名番号・品名・図面作成日・抽出信頼度・メーカー名
- 本文にDriveリンクを貼る
「図面管理の入り口」を自動化することで、
脳のリソースを割かずに、自動で蓄積していくというAIネイティブなコンセプトです。
2. 全体像(ざっくり構成)
使うもの
- Google Drive:図面PDFの置き場&整理先
- Google Apps Script(GAS):監視・自動処理の実行エンジン
- Gemini API:図面PDFから必要項目を抽出(JSONで返す)
- Notion API(Internal Integration):NotionのDBに自動登録
3. Notion側の準備(図面マスタDBを作る)
3-1. Notion DB(図面マスタ)を作成
今回のDB構成(例):
- 図面番号(タイトル)
- 顧客(テキスト)
- 品名番号(テキスト)
- 品名(テキスト)
- 図面作成日(日付)
- 抽出信頼度(セレクト)
- メーカー名(テキスト)
抽出信頼度は、OCRが不安な時のために作りました!
「AIが自信ない箇所だけ人間が確認」という運用ができる。
4. Notion APIの準備
Notionに自動で書き込むには、Internal integration - 内部インテグレーションが必須です。
4-1. Internal integration を作成
- Notionの「My integrations」から新規作成
- 種別は Internal
- 名前はわかりやすく
例:図面管理 自動登録(Drive→Notion)
作成すると Internal Integration Secret(トークン) が発行される。
これが NOTION_TOKEN。
4-2. Notion DBにインテグレーションを接続(重要)
作っただけではDBが見えないので、DB側で接続が必要。
-
DB_図面管理マスタを開く - 右上
...などから - 「接続(Connections)」or「共有(Share)」で
- 今回のインテグレーションを選択して接続する
これを忘れると、Notion APIで
404 object_not_found- 「DBが見つからない。インテグレーションに共有してね」
というエラーが発生します。(実際エラーがでました。。)
5. database_id とは何か(Notion側の“住所”)
Notion APIに「このDBに行を追加して」と言うために、DBのIDが必要。
それが database_id。
Apps Scriptのプロパティに NOTION_DB_ID として入れる。
5-1. database_id の取り方(基本はURL)
DBを「ページとして開く(フルページ)」状態で、URLから拾う。
- URLの中の **32桁(ハイフン付きの場合もあり)**がID
-
?v=以降は「ビューID」なので無視してOK
ここで「親ページのID」や「ビューのID」を拾うと、
DBの存在チェックは通ったり通らなかったりして混乱するので注意。
5-2. DBが見えるか確認(Notion APIでGET)
PowerShell等で GET /v1/databases/{id} が通れば、トークンとIDは正しい。
この確認が通った時点で、Notion側の基盤はほぼ完成。
6. Google Drive側の準備(フォルダ構成)
Driveに以下を作成:
-
図面自動登録-
00_格納箱(ここに入れる) -
10_顧客別(自動整理先) -
90_エラー箱(失敗時退避)
-
フォルダIDの取り方
フォルダURLの folders/xxxxx の xxxxx がフォルダID。
これをApps Scriptに設定する。
7. Gemini APIキーの取得(Google AI Studio)
Gemini APIキーは Google AI Studioで作る。
7-1. 「プロジェクト」って何?
AI Studioの「プロジェクト」は Google Cloud Projectのこと。
- APIキー
- 利用量
- 課金(必要な場合)
をまとめて管理する“箱”。
どれを選ぶ?
- 迷ったら 新規プロジェクトを作って分けるのが安全
例:図面管理-gemini
7-2. APIキーを発行
- AI StudioでAPIキー作成
- コピーして控える(これが
GEMINI_API_KEY)
8. Apps Script(GAS)プロジェクトの作成
ここで混乱しがちだが、Driveの右クリックで出るApps Scriptを使わず、スタンドアロンで作るのがわかりやすい。
8-1. スタンドアロン作成
ブラウザで:
これで新規Apps Scriptプロジェクトが作れる。
プロジェクト名は
図面自動登録(Drive→Notion)
みたいにしておくと後で迷子にならない。
9. Apps Scriptに設定値を入れる(スクリプトプロパティ)
Apps Script画面の
- 歯車(プロジェクトの設定)
- スクリプトプロパティ
に以下を登録:
| Key | Value |
|---|---|
| GEMINI_API_KEY | Gemini APIキー |
| NOTION_TOKEN | Notion Integration Secret |
| NOTION_DB_ID | Notion database_id |
| INBOX_FOLDER_ID |
00_格納箱 フォルダID |
| CUSTOMER_ROOT_FOLDER_ID |
10_顧客別 フォルダID |
| ERROR_FOLDER_ID |
90_エラー箱 フォルダID |
ここは「設定の心臓部」。
1個でも間違えると、全てが静かにエラーが出ちゃいます。
今後、パスが変わった時に便利!
10. Apps Scriptコード
コードの処理は大きく3段階。
-
00_格納箱のPDFを取得 - GeminiにPDFを渡し、必要項目をJSON抽出
- Notionにページ作成
- Driveに移動&整理
注意:Gemini 503(サービス一時停止)対策
Gemini側が混雑すると 503 UNAVAILABLE が出る。
このときに
- すぐエラー箱に移す
- 以後再処理できない
になるのは運用的にキツいので、
- 503/429/5xxは一時エラー扱い
- リトライ(指数バックオフ)
- 最終的にダメなら格納箱に残す
という設計にした。
11. テスト(最初の動作確認)
11-1. 手動実行
-
00_格納箱に図面PDFを1枚入れる - Apps Scriptで
runBatchを実行 - 初回は権限許可が出るので許可
成功条件
- Notion DBに1行増える
- 図面リンク(Drive)が本文に貼られている
- Driveの
10_顧客別/顧客名/図面番号/に整理される
12. ハマりどころ集(実際にハマった)
12-1. Notion 404 object_not_found
原因:
- database_idの取り違え(ビューID、親ページIDなど)
- DBがインテグレーションに接続されていない
- ワークスペースが違う
対策:
-
GET /v1/databases/{id}で確認 - DB側の「接続」を必ず見る
12-2. Gemini 503 UNAVAILABLE
原因:
- Gemini側の一時障害・混雑
対策:
- リトライ+一時エラーは格納箱に残す
12-3. 「処理件数:1」なのにNotionで見えない
原因:
- Notionのビューでフィルタ/ソートにより見えてない
- 別DBに作っていた
対策:
-
testCreateNotionRow()でテスト行を作り、URLをログに出す - DBタイトルをログ出力して「本当にこのDBか」を確定
13. 自動化(5分おき実行)
手動で動いたらトリガーを設定。
Apps Scriptの「トリガー」から
- 実行関数:
runBatch - 時間主導型
- 5分ごと
これで、図面を置くだけで勝手にNotionが育つ。
14. 費用はかかるのか?
結論:主にGemini APIが変動費。
- Apps Script:基本無料だがクォータ制限あり(実行回数、URL fetch等)
- Notion API:追加の従量課金というより、Notionプランの範囲
- Google Drive:ストレージ容量
- Gemini API:無料枠内なら0円、超えると従量課金になる可能性がある
実務では「予算アラート」や「1日処理上限」を決めるのが安心。
まとめ:何が嬉しいのか
この仕組みで一番大きいのは、単なる自動入力じゃなくて、
- 「図面を置くだけで、マスタが育つアナログ企業に優しい手軽さ」
- 「検索・見積・案件管理が図面を中心に回り始める」
- 「属人化が減る(どこにある?が減る)」
という、業務の背骨ができること。
図面は情報量が多く、しかも重要。
だからこそ入口を整えると、後工程全部に効いてくる。
付録:最低限のチェックリスト
- Notion内部インテグレーションのSecret取得
- DBをインテグレーションに接続(Connections)
- database_id取得&GETで確認
- Gemini APIキー取得(AI Studio)
- Driveフォルダ3つ作成&ID取得
- Apps Scriptプロパティ設定
- runBatchで手動テスト
- 5分トリガー設定