Skip to content

Google Sheets & Excel Destinations

DocsToSheets supports exporting your parsed document data to both Google Sheets and Microsoft Excel Online.

By linking your cloud storage account, DocsToSheets maintains a synchronized workbook for each mailbox: a spreadsheet named {mailbox-slug}-extractions that always mirrors the mailbox’s current data, whether documents arrive by email, direct upload, or manual entry.


The workbook is kept in step with your data by row-level reconciliation. Each row that DocsToSheets writes carries a sync key in a hidden first column, so the app updates, adds, or removes exactly its own rows — and never touches anything else. That means the spreadsheet is still yours: you can type your own rows, add your own columns to the right, sort, and reorganize, and your work survives every sync.

  • Your rows are safe: any row without a sync key (anything you typed yourself) is never modified, deleted, or moved by sync.
  • App rows stay accurate: rows that DocsToSheets owns always reflect the data in the app. If you edit one of those cells directly in the spreadsheet, the app’s value is restored on the next sync — make corrections in the DocsToSheets dashboard instead.
  • One sheet per section: a Header sheet holds one row per document; each repeating section (line items, crew members, …) gets its own sheet with header values merged onto every entry row. A “document” here is one record: an entire email with all its attachments, an uploaded file (or a combined upload), or a manual entry — see how multiple files become one record.
  • Columns: every sheet is laid out as document_id | extractedAt | …your fields… | driveLink (plus the hidden sync-key column). Field columns use the display label, annotated with the unit when one is set (e.g. Hours Worked (hours)).
  • Computed columns: formula fields are calculated during sync and written as plain values.
  • Triggers: processing a document, editing cells in the dashboard, creating a manual entry, deleting documents or rows, saving the mailbox configuration, and (re)connecting your account all schedule a sync. Bursts of changes are coalesced into a single sync a few seconds later.
  • Self-healing: sheets are tracked by id, so renaming a tab is safe (sync renames it back to the section name), and a deleted tab is recreated on the next sync. A workbook that’s missing the sync-key column is adopted without losing any of its content.
  • Raw files: the original document files are uploaded to your Drive/OneDrive folder, and each row’s driveLink cell is a clickable link labeled with the file name. Files that were processed before you connected the destination are uploaded automatically on the next sync. Manual entries have no file, so their link is blank.

Deleting records — keep or remove the rows

Section titled “Deleting records — keep or remove the rows”

When you delete a document in DocsToSheets and the mailbox syncs to a spreadsheet, the delete dialog asks whether to also remove its row(s) from the synced spreadsheet:

  • Checked (default): the rows are removed from the workbook on the next sync.
  • Unchecked: the rows stay in the spreadsheet and become yours — sync hands them over and never touches them again, even though the record no longer exists in DocsToSheets.

The dashboard’s table view shows the current sync status (synced, syncing, or failed) and a link to the workbook.


  • Auth: Connect via secure Google OAuth (authorizing access to Google Drive and Sheets).
  • Storage: The workbook and document folders are created under docstosheets/{mailbox-slug}/ in your Drive.
  • Choice columns: enum fields get in-sheet dropdown validation with the allowed values (non-strict, so out-of-vocabulary values extracted with a warning remain visible).
  • Auth: Connect via secure Microsoft OAuth (authorizing access to OneDrive and files).
  • Storage: The .xlsx workbook and document folders are created under docstosheets/{mailbox-slug}/ in your OneDrive.
  • Choice columns: the Microsoft Graph API does not support dropdown validation, so enum values are written as plain text.

  • Access Token Encryption: All OAuth access and refresh tokens are encrypted at rest using industry-standard AES-256 encryption before being stored in our database.
  • Scopes: We only request the minimum permissions required to manage the workbook and folders the app creates.
  • Offline Access: By requesting offline access, our backend services can securely synchronize your workbook when files are ingested via email or the API—without requiring you to be actively signed in.
  • Isolation from extraction: synchronization failures (revoked tokens, rate limits) never block document processing; the mailbox shows a failed sync status and recovers on the next sync after you reconnect.