Tally for ClosePilot
Close review issues, surfaced where the work actually happens.
Tally reads month-end close review issues, severity classifications, and tech-debt tracking from ClosePilot. Maps to QuickBooks via realm ID. Strictly read-only — Tally cannot modify close reviews.
What Tally does with ClosePilot
Tally connects to ClosePilot to automate the data flow into your accounting stack — with explicit safety rules at every step.
Open-issue dashboards
Reads all unresolved issues across all closes for a given client. Groups by severity (critical / high / medium / low) and status (open / in progress).
Issue context & remedy
Each issue includes account info, suggested remedy, and history — surfaced in the Tally dashboard so a Ballast accountant can resolve it without flipping between apps.
Pushed-issue tracking
Tracks tech-debt items pushed forward from prior closes — separate from close-level issues. Useful for prioritizing structural cleanup work.
Close metadata visibility
Reads close metadata: period, status (open/in-progress/closed), and completion percentage for every month-end close.
Severity & status summary
Aggregated counts by severity and status for quick prioritization. Useful for daily standups and client communication.
Realm-based mapping
Each Tally client maps to exactly one ClosePilot client_id via QBO realm ID. Tally cannot leak data across ClosePilot client boundaries.
How it works
Setup is straightforward and auditable. No copy-pasted CSVs, no shared logins.
Connect QuickBooks first
ClosePilot uses your QBO realm ID as the client identifier. Tally requires QBO to be connected before ClosePilot can be installed.
Tally resolves the realm ID
Tally automatically maps your QBO realm to the corresponding ClosePilot client_id. The mapping is cached per-client to avoid re-resolving on every call.
Issues surface in Tally
Open close issues appear in the Tally dashboard. Filtered by severity and status. Linked back to the underlying QBO accounts and transactions.
Resolve in ClosePilot
Issue resolution still happens in ClosePilot itself — Tally is read-only. Once resolved there, the issue clears from Tally's dashboard automatically.
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 ClosePilot integration specifically is locked down.
Strictly read-only
There are no write functions in the ClosePilot integration. Tally cannot create, modify, or resolve close issues.
Three-layer client isolation
(1) Each Tally client maps to exactly one ClosePilot client_id via realm-ID auto-resolution; (2) Every query function filters by closepilotClientId; (3) Single-record fetches join back to closes.client_id to verify ownership.
Same-database access
Tally and ClosePilot share the same Supabase instance. ClosePilot data lives in the public schema; Tally data in the agent schema. Client isolation is enforced at the application layer since service role bypasses RLS.
QBO prerequisite
ClosePilot cannot be installed for a Tally client until QBO is connected with a realm_id. Without the realm ID bridge, there's no way to identify which ClosePilot client a Tally client maps to.
No sensitive ClosePilot fields exposed
The close_report JSONB field (which contains internal review notes) is not exposed via Tally. Only the structured issue data, status, and severity are accessible.
Cached mapping for safety & speed
The realm-to-client_id mapping is cached in the agent.client_closepilot_config table. Resolving on every call would create cross-database load and a window for race conditions.
Frequently asked questions
Do I need to be a ClosePilot user to connect Tally?
Yes. ClosePilot is a separate product — Tally's ClosePilot integration is for clients who are already using ClosePilot for month-end reviews and want the issues surfaced inside Tally for resolution.
Why does Tally need QBO connected before ClosePilot?
ClosePilot uses your QBO realm ID as the client identifier. Without a realm ID, Tally has no way to know which ClosePilot client_id to query. QBO is the bridge.
Can Tally resolve close issues for me?
No. ClosePilot is the system of record for close reviews — issue resolution happens there, not in Tally. Tally surfaces issues so a Ballast accountant can prioritize them, but the actual resolve action is in ClosePilot.
What's the difference between an issue and a pushed issue?
Issues are problems found during the current close review. Pushed issues are items deferred from prior closes — typically tech-debt cleanup that doesn't block the current close but should be addressed eventually.
Can data leak between ClosePilot clients via Tally?
No. Three layers of enforcement: (1) the per-Tally-client mapping has exactly one ClosePilot client_id, (2) every query filters by that client_id, (3) single-record fetches re-verify ownership against closes.client_id.
Talk to Ballast about your books
Tally's ClosePilot 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.