Sage Intacct and Google BigQuery integration
Sage Intacct runs your accounting and AP. Google BigQuery stores and queries your financial data at scale. Connecting the two lets you load GL accounts, AP bills, payments, and vendor records from Intacct into BigQuery on a schedule, building a queryable archive for reporting, compliance, and audit trails. ml-connector handles the XML gateway serialization on the Intacct side and the OAuth2 Service Account authentication on the BigQuery side, so your finance and analytics teams can focus on insights instead of manual exports.
What moves between them
Financial records flow from Sage Intacct into Google BigQuery. GL accounts, AP bills, payments, and vendor master data are read from Intacct on a configurable polling schedule, mapped to the schema you define in BigQuery, and streamed into your tables. The integration runs on a schedule tied to your accounting close cycle or daily refresh cadence, so BigQuery holds a current or near-current snapshot of Intacct records for reporting and compliance queries.
How ml-connector handles it
ml-connector caches the Intacct sessionid locally after the first getAPISession call and reuses it until the 50-minute expiry, then refreshes transparently on the next scheduled run. On the BigQuery side it uses a Service Account private key to request an access token, caches it for the 3600-second lifetime, and refreshes when calls return 401. All Intacct XML control characters (except tab, newline, and carriage return) are stripped before entity escaping to avoid parse errors, and application-level XML errors inside the response body are parsed and surfaced in the audit log. Records are streamed to BigQuery with an insertId for deduplication so retried operations do not create duplicates. Dimension mappings align Intacct GL account hierarchies with BigQuery column structures, so each financial record lands in the correct context for downstream queries.
A real-world example
A mid-market holding company with three operating subsidiaries runs Sage Intacct for consolidated accounting and quarter-end reporting. The finance team needs to reconcile AP across subsidiaries and query GL account balances by cost center for variance analysis, but manually exporting from Intacct and re-importing into their data warehouse takes two days every close cycle and introduces manual error. With Sage Intacct and Google BigQuery connected, each subsidiary's GL accounts, AP bills, and payments flow into BigQuery on a daily schedule, and the finance team builds SQL queries to reconcile AP totals by subsidiary and GL account without re-keying. Month-end close reporting starts with accurate, current data already in place.
What you can do
- Load GL accounts, AP bills, payments, and vendor records from Sage Intacct into BigQuery on a configurable schedule tied to your close cycle.
- Cache Intacct's 50-minute session token and BigQuery's 1-hour OAuth2 token transparently, with automatic refresh on expiry.
- Parse Intacct's XML response envelope and surface application-level errors in the audit log without stopping the pipeline.
- Deduplicate BigQuery streaming inserts with insertId so retried records do not create duplicates in your tables.
- Map Intacct dimensions and GL account hierarchies to your BigQuery schema structure for accurate financial queries and dimension filtering.
Questions
- What records flow from Sage Intacct to Google BigQuery?
- GL accounts, AP bills, payments, vendors, and dimension records flow from Intacct into BigQuery on a polling schedule. You define the table schemas in BigQuery to match your reporting requirements, and ml-connector streams each record into the appropriate table. All records carry a source audit timestamp so you can track when they were synced.
- How does ml-connector handle Intacct's 50-minute session timeout and BigQuery's 1-hour token expiry?
- Sessions and tokens are cached in-process and reused until expiry. On the next scheduled poll, if a session or token has expired, ml-connector automatically refreshes it without stopping the sync. If an Intacct call fails with session-expired error, the token is cleared and the operation is retried with a fresh session on the next run.
- Can ml-connector detect changes in Intacct and push them to BigQuery immediately?
- No, Intacct does not support native webhooks and BigQuery has no inbound event subscriptions. Both systems are pull-only, so ml-connector reads Intacct records on a configurable schedule tied to your close cycle, typically daily or on-demand. If you need sub-daily frequency, ml-connector can poll more often, but Intacct API throttling may apply.
Related integrations
More Sage Intacct integrations
Other systems that connect to Google BigQuery
Connect Sage Intacct and Google BigQuery
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started