外部連携 / 外部サービス連携
GoogleDrive連携
カルクペーパーに取り込んだドキュメントや、書類作成機能で生成したファイルをGoogle Driveへアップロードできる機能です。
GoogleDrive連携でできることlink
| 機能 | 説明 |
|---|---|
| 手動アップロード(取込時) | ドキュメント取込画面で「Google Driveにアップロード」を有効にすると、取込と同時にDriveへアップロードされます。保存先フォルダもその場で変更できます |
| 手動アップロード(一括) | ドキュメント一覧で複数のドキュメントを選択し、まとめてDriveへアップロードできます |
| 自動アップロード | ドキュメントタイプごとに「自動アップロード」を設定しておくと、解析完了後に指定フォルダへ自動でアップロードされます |
| 書類作成ファイルのアップロード | 書類作成(テンプレート出力)で生成したファイルをDriveへアップロードできます。テンプレートごとに自動アップロードの設定も可能です |
| 保存先フォルダの選択 | マイドライブ・共有ドライブの両方に対応したフォルダ選択画面で保存先を指定できます |
| Drive上の保存場所の確認 | シート表示の「Google Driveパス」列や、ドキュメントの詳細から、Drive上のどこに保存されたか(パスとリンク)を確認できます |
| ラベル同期※ | 解析結果の値をDriveファイルのラベルフィールドへ自動で書き込みます |
※ ラベル同期は特定のお客様向けに提供しているカスタマイズ機能です。一般のご案内には含めない想定です(詳細は「ラベル同期」参照)。
利用の前提link
- ワークスペースでGoogle Drive連携オプションが有効になっている必要があります(有効化はお問い合わせください)
- 連携はワークスペース単位です。連携時に認証したGoogleアカウントのDriveがワークスペース全体のアップロード先になります(ユーザーごとに別々のDriveへアップロードする機能ではありません)
連携を開始する(初回設定)link
- 外部サービス連携の設定画面を開き、Google Driveの「連携する」を選択します
- 別タブでGoogleの認証画面が開くので、連携に使用するGoogleアカウントでログインし、アクセスを許可します
- 「連携が完了しました」と表示されたら設定完了です。元の画面に戻ると連携状態が「連携済み」に変わります
連携に使用するGoogleアカウントについて
- 連携したアカウントのDrive(およびそのアカウントがアクセスできる共有ドライブ)がアップロード先になります。個人アカウントではなく、運用用の共有アカウントや、保存先フォルダへの書き込み権限を持つアカウントでの連携を推奨します
- 別のアカウントに切り替えたい場合は、いったん「連携を解除」してから再度連携してください
- Google側でパスワード変更やアクセス権の取り消しをおこなうと連携が無効になる場合があります。その場合は再度連携してください
アップロードするlink
取込時にアップロードするlink
- ドキュメント取込画面で「Google Driveにアップロード」をオンにします
- 必要に応じて「保存先を変更」からフォルダを選択します
- 取り込みを実行すると、バックグラウンドでDriveへのアップロードが始まります
既存ドキュメントを一括アップロードするlink
- ドキュメント一覧で、アップロードしたいドキュメントのチェックボックスを選択します(複数選択可)
- 「Google Driveにアップロード」を実行し、保存先フォルダを指定します
- 「◯件のファイルのアップロードを開始しました」と表示され、バックグラウンドで1件ずつ順次アップロードされます
解析完了後に自動アップロードするlink
- ドキュメントタイプの設定画面でGoogle Driveの「アップロードモード」を自動にします
- 保存先フォルダを指定します(未指定の場合はマイドライブ直下に保存されます)
- 以降、そのドキュメントタイプで解析が完了したドキュメントは、指定フォルダへ自動でアップロードされます
*ドキュメントに複数のドキュメントタイプが紐づいている場合でも、自動アップロードは1回のみ実行されます(自動設定のドキュメントタイプのうち1つの保存先が使われます)
書類作成の生成ファイルをアップロードするlink
- テンプレートごとにGoogle Driveアップロードの設定(自動/手動)と保存先フォルダを指定できます
- 自動設定の場合、書類の生成が完了すると指定フォルダへアップロードされます
- *Driveへのアップロードに失敗しても書類作成自体は完了します
- *生成ファイルは毎回新しいファイルとしてDriveに作成されます(既存ファイルの上書きはされません)
運用上のヒント:自動アップロードと手動アップロードの使い分けlink
ファイル名の自動付与(ファイル名ルール)と併用する場合、自動アップロードでは解析直後のファイル名のままDriveに保存されます。解析結果に誤りがあった場合、誤ったファイル名のファイルがDriveに残ることになります。
内容やファイル名を確認してからDriveに保存したい運用の場合は、次の手順を推奨します。
- ドキュメントタイプのアップロードモードを手動にしておく
- 解析完了後、カルクペーパー上でファイル名・解析結果を確認(必要なら修正)する
- ドキュメント一覧で対象をチェックし、「Google Driveにアップロード」を実行する
なお、修正後に同じドキュメントを再アップロードした場合はDrive上の既存ファイルが更新される(重複しない)ため、「まず自動でアップロードし、誤りがあれば修正して再アップロードで上書きする」運用も可能です。
保存先フォルダの選択画面link
保存先の指定時にはフォルダ選択画面が開きます。
- マイドライブと共有ドライブの両方から選択できます(連携中のGoogleアカウントがアクセスできる範囲)
- フォルダをクリックすると下の階層に移動できます。上部のパンくずから上の階層に戻れます
- サブフォルダがないフォルダでは「サブフォルダはありません」と表示されます
- フォルダを選択せずに確定した場合はマイドライブ直下(ルート)に保存されます
- カルクペーパーからフォルダを新規作成することはできません。必要なフォルダはDrive側で事前に作成してください
アップロード結果と保存場所の確認link
- アップロードはバックグラウンドで実行されます。件数が多い場合は完了まで時間がかかることがあります
- アップロード済みのドキュメントは、シート表示の「Google Driveパス」列でDrive上の保存場所(フォルダパス)を確認できます。リンクからDrive上のファイルを直接開くこともできます
- Driveにまだアップロードされていないドキュメントは、パスが未表示(未アップロード)となります
同じドキュメントを再アップロードした場合link
同じドキュメントを再度アップロードした場合、Drive上に重複ファイルは作られず、既存ファイルが更新されます。
- カルクペーパー側でファイル名を変更していた場合、Drive上のファイル名も新しい名前に変更されます
- 保存先フォルダを変えて再アップロードした場合、Drive上のファイルが新しいフォルダへ移動します(元のフォルダにはコピーは残りません)
- *書類作成で生成したファイルは例外で、毎回新しいファイルとして作成されます
ラベル同期(特定のお客様向けカスタマイズ機能)link
概要link
本機能を導入すると、Driveへのアップロード時に、解析結果の値がDriveファイルのラベルフィールドへ自動で設定されます。Drive側でラベルによる検索・絞り込みができるようになります。
事前準備(Google Workspace側)link
- Google Workspaceのラベルマネージャーで、ラベルとそのフィールドを事前に作成し、Driveのファイルに適用できる状態にしておく必要があります(カルクペーパーがラベル自体を作成することはありません)
- フィールド名は、カルクペーパー側の解析項目名と一致させてください(例:解析項目が「日付」「会社名」「金額」なら、同名のフィールドを持つラベルを用意する)
- フィールドのデータ型(テキスト・数値・日付など)は運用に合わせて設定してください。カルクペーパー側の動作はこのデータ型に依存するため、導入後にデータ型を変更する場合は事前にご相談ください
動作イメージlink
- ファイル名ルール「日付_会社名_金額」を設定したドキュメントタイプで解析する
- 解析後の「20250520_サンプル株式会社_10000.pdf」をDriveにアップロードする
- Drive上のファイルに、「日付」フィールド=
20250520、「会社名」フィールド=サンプル株式会社、「金額」フィールド=10000が自動設定される
仕様上のポイントlink
- 対応付けはフィールド名(項目名)でおこなわれます。ファイル名ルール内の項目の並び順は影響しません(例:ファイル名ルールを「会社名_日付_金額」に変更しても、各フィールドには正しい値が設定されます)
- カルクペーパーのファイル名ルール(項目の追加・削除・並び替え)を変更しても、Drive側のラベル定義は自動では変更されません。項目を追加した場合は、Drive側でも対応するフィールドの追加が別途必要です
- ラベル同期が実行されるのはカルクペーパーからのアップロード時のみです。Drive側でラベル値を手動変更してもカルクペーパーには反映されません
- ラベル同期は解析ドキュメントのアップロードが対象です(書類作成の生成ファイルには適用されません)
連携を解除するlink
- 設定画面から「連携を解除」を実行すると、保存されている認証情報が削除され、以降のアップロードはおこなわれません
- Drive上にアップロード済みのファイルは削除されません
- ドキュメントタイプや書類テンプレートに設定した保存先フォルダ・アップロードモードの設定は残ります。再連携すれば同じ設定のまま利用を再開できます
制限事項・注意事項link
| 項目 | 内容 |
|---|---|
| ファイルサイズ | 1ファイルあたり5GBまで |
| ファイル名 | 255文字を超える場合、超過分は切り詰めて保存されます |
| 同時リクエスト | ワークスペースあたり同時5リクエストまで。超過時は「リクエストが多すぎます」と表示されるので、時間をおいて再実行してください |
| アップロード方向 | カルクペーパー → Driveの一方向のみ。Drive側でのファイル変更・削除はカルクペーパーに反映されません |
| Google形式への変換 | ファイルは元の形式(PDF、Excel等)のままアップロードされます。Googleドキュメント/スプレッドシート形式への変換はおこないません |
| フォルダ作成 | カルクペーパーからDriveのフォルダを新規作成することはできません。保存先フォルダはDrive側で事前に作成してください |
| Drive側での削除 | Drive側でファイルを削除してもカルクペーパーのドキュメントは削除されません(逆も同様)。再アップロードするとDriveに新しいファイルが作成されます |
よくあるエラーと対処link
| 症状 | 原因と対処 |
|---|---|
| 「Google Driveの認証が必要です」 | 連携が未設定、または認証が無効になっています。連携画面から再度認証してください |
| 「選択したフォルダへのアップロード権限がありません」 | 連携中のGoogleアカウントに、そのフォルダへの書き込み権限がありません。Drive側で権限を付与するか、別のフォルダを選択してください |
| 「アクセス権限がありません」 | ワークスペースでGoogle Drive連携オプションが有効になっていません |
| アップロードが失敗した | 一時的な通信エラーの場合は自動でリトライされます。繰り返し失敗する場合は連携の再認証をお試しください |
技術仕様link
以下では、開発者向けの技術的な仕様をまとめています。
1. 概要link
- カルクペーパーからGoogle Driveへの一方向アップロード連携。取り込み・同期・削除連動はおこなわない
- Google Pickerは使用せず、フォルダ選択UIは自前実装(マイドライブ/共有ドライブ対応)
2. 認証link
| 項目 | 内容 |
|---|---|
| 方式 | OAuth 2.0 認可コードフロー(サービスアカウントは不使用) |
| スコープ | Google Drive(フルアクセス)+ Drive Labels。制限付きスコープのためOAuthアプリはGoogleの審査承認済み |
| 認証単位 | ワークスペース単位(1ワークスペースにつき1連携・1アカウント)。ワークスペース内の全ユーザーが同一トークンを共有 |
| トークン管理 | アクセストークン/リフレッシュトークンを暗号化してデータベースに保存。期限切れ時は自動リフレッシュ |
| CSRF対策 | 暗号化state(有効期限10分、ワークスペースID・nonce入り)で検証 |
| 認証セッション | OAuth開始から10分でタイムアウト |
| 連携解除 | Google側のトークン失効APIを呼び出したうえでローカルの認証情報を削除(Google側失効に失敗してもローカル削除は続行) |
3. 処理方式link
- アップロードは非同期処理(キュー経由のバックグラウンドジョブ)。リクエスト受付後、即座に処理IDを返し、進捗は非同期処理のステータスで管理
- 一括アップロードは1件ずつ順次処理
- 自動アップロードは解析完了ジョブの後段で実行。ドキュメントに紐づくドキュメントタイプのうち、自動設定のもの1件のみを採用し、1回だけアップロード(重複防止)
- 重複防止:Driveファイルにドキュメント IDをカスタムプロパティとして付与し、再アップロード時は既存ファイルを検索して更新(リネーム・フォルダ移動)。書類作成の生成ファイルは対象外で毎回新規作成
- ラベル同期(特定顧客向けカスタマイズ機能):アップロード成功後、Drive Labels APIでワークスペースに定義済みのラベル一覧を取得し、フィールド名と解析項目名の一致で解析結果値を書き込む。ラベル定義(フィールド構成・データ型)はGoogle Workspace側の事前設定に依存し、カルクペーパー側からラベル定義の作成・変更はおこなわない。ファイル名ルールの変更とラベル定義は同期しない
4. 制限値・レートlink
| 項目 | 値 |
|---|---|
| ファイルサイズ上限 | 5GB(固定) |
| ファイル名・フォルダ名 | 最大255文字(超過分は切り捨て) |
| ワークスペース同時実行数 | 5リクエスト(超過時はエラー応答。時間あたり回数制限ではなく並行数制限) |
| APIリトライ | 最大3回、指数バックオフ(初期1秒 → 最大32秒、倍率2.0+ジッター)。対象は408 / 429 / 500 / 502 / 503 / 504 |
| フォルダ一覧取得 | 100件/ページ |
| フォルダ情報キャッシュ | 10分(パス解決用) |
| OAuth state有効期限 | 10分 |
*アプリ側での日次クォータ・スロットリングは設けず、Google API側の429はリトライで吸収する方針
5. 対応ファイル形式link
- アップロードのみのため、元ファイルの形式をそのまま送信(MIMEタイプは拡張子から解決、未知の拡張子は
application/octet-stream) - Office系(doc/docx/xls/xlsx/ppt/pptxほか)、画像(png/jpg/gif/svg/webp/tiffほか)、PDF、テキストに対応
- Googleネイティブ形式(Docs/Sheets/Slides)への変換・エクスポートは非対応
6. 設定・機能フラグlink
| 設定 | 単位 | 内容 |
|---|---|---|
| Google Drive連携(機能フラグ) | ワークスペース | オプション機能。OFFの場合は画面導線・APIとも利用不可 |
| アップロードモード(手動/自動)・保存先フォルダ | ドキュメントタイプ/書類テンプレート | エンティティ単位に設定 |
7. マルチテナント境界link
- 認証情報・設定・キャッシュはすべてワークスペースIDでスコープ
- OAuthコールバックではstate内のワークスペースIDとセッションのワークスペースIDの一致を検証(テナント混線防止)
- ドキュメント取得は常にワークスペースIDでスコープされたクエリを使用
8. エラーハンドリングlink
- 本番環境ではユーザーに汎用メッセージのみ表示(内部詳細は非表示)。非本番環境では詳細を付加
- 非同期アップロード失敗時は処理ステータスを「失敗」として記録
- 書類作成に付随するアップロード失敗は、書類作成自体の成否に影響させない(ログ記録のみ)