TallyIntegrationsGoogle Sheets

Tally for Google Sheets

Spreadsheets — read, written, and audited.

Tally reads and writes Google Sheets spreadsheets shared with the Ballast team. Per-client allowlist of spreadsheet IDs enforces isolation. No delete capability — Tally cannot trash sheets, copy them, or modify permissions.

Per-client spreadsheet allowlistNo delete or trashNo permission changes

What Tally does with Google Sheets

Tally connects to Google Sheets to automate the data flow into your accounting stack — with explicit safety rules at every step.

Read & write cell ranges

Read any cell range in an allowed spreadsheet. Write up to 1000 rows per operation. Batch reads and writes for efficiency.

Structure manipulation

Add sheets, insert/delete rows and columns, duplicate sheets, copy-paste ranges. Update sheet properties — title, tab color, frozen rows/cols, visibility.

Formatting & conditional formatting

Format cells (bold, italic, colors, number format, alignment), update borders, merge/unmerge cells, auto-resize, add banding. Add and delete conditional formats.

Validation & protection

Set data validation (dropdowns, number constraints, formulas). Add and delete protected ranges so manual edits don't break Tally-generated structures.

Charts & filter views

Add and update charts, set basic filters, add filter views, named ranges. Useful for self-service reporting layers built on top of Tally data.

Revision history & activity log

Read who modified what and when, plus the activity log (edits, renames, permission changes). Useful for audit trail without leaving Tally.

How it works

Setup is straightforward and auditable. No copy-pasted CSVs, no shared logins.

1

Share the sheet with Ballast

Share the Google Sheet with the Ballast team account. Tally uses Ballast-user OAuth (single shared token), so any sheet shared with Ballast is potentially reachable.

2

Add to client allowlist

A Ballast accountant adds the spreadsheet ID to the client's allowed_spreadsheet_ids list. Without this, Tally cannot reach the sheet — even if it's shared with Ballast.

3

Tally reads & writes

Tally can now read, write, format, and structure the sheet. Every operation is validated against the allowlist before transmission.

4

Audit-friendly modifications

Google's native version history captures every Tally edit. Combined with Tally's audit logs, you have a complete record of what changed and by whom.

Availability

This integration is provided to Ballast Consulting Group's accounting clients at no additional charge as part of their engagement. There is no per-seat fee, per-API-call fee, or per-integration fee billed to the client. The cost is included in your accounting fee.

Tally isn't sold separately. Access requires an active engagement with Ballast Consulting Group as your finance and accounting department. If you're interested in becoming a Ballast client, please reach out.

Security & compliance

Every Tally integration follows the same safety pattern. Here is how the Google Sheets integration specifically is locked down.

Per-client spreadsheet allowlist

The primary isolation mechanism. Each client config has an allowed_spreadsheet_ids list. Every Sheets API call is validated against this list before transmission.

Filtered list operations

list_spreadsheets fetches from Drive API then filters results to only include sheets in the client's allowlist. Other Ballast clients' sheets are never visible.

Path & method allowlists

Only /v4/spreadsheets and /drive/v3/files prefixes are reachable. /permissions, /revisions, /comments, /replies, /trash, /copy, and /export are blocked.

No delete capability

Tally cannot trash spreadsheets or sheets, clear ranges that contain protected data, or modify permissions. Modifications are limited to data manipulation and structure.

Row limit on writes

Maximum 1000 rows per write operation. Prevents accidental bulk-overwrite scenarios.

Conservative rate limit

Tally is configured at 50 req/min per user. Token-bucket implementation prevents burst exhaustion during a backfill.

For a full description of how Tally collects, stores, and protects data, see our Privacy Policy and End User License Agreement.

Frequently asked questions

Why does Tally use a single Ballast OAuth token instead of per-client OAuth?

Google Sheets is typically used by sharing — clients share sheets with Ballast team members rather than installing per-client integrations. The per-client spreadsheet allowlist is the primary isolation mechanism.

Can Tally accidentally read a different client's sheet?

No. The allowlist enforced per-call ensures Tally only reads sheets explicitly authorized for the current client. Cross-client access is impossible at the application layer.

Can Tally delete a spreadsheet or sheet?

No. /trash, /copy, and the delete sheet operation are blocked. Tally can only modify existing sheets — not delete them.

Can Tally share my sheet with new people?

No. /permissions endpoints are blocked. Tally cannot grant, revoke, or modify sharing permissions on any sheet.

How do I add a new spreadsheet for Tally to access?

Share the spreadsheet with the Ballast team account, then a Ballast accountant adds the spreadsheet ID to the client's allowlist in Tally settings.

Talk to Ballast about your books

Tally's Google Sheets integration comes at no additional charge when Ballast runs finance and accounting for you. If you need a team that actually understands the systems your business runs on, get in touch.

Ballast Consulting Group, LLC
Your finance and accounting department for small businesses. U.S.-based.
© 2026 Ballast Consulting Group, LLC. All rights reserved. Tally is the internal accounting platform Ballast uses to service its accounting clients. All third-party trademarks referenced (QuickBooks, Amazon, Shopify, Stripe, HubSpot, Ramp, Bill.com, Gusto, Microsoft, Google) are the property of their respective owners. Tally is not affiliated with or endorsed by any of these companies.