ml-connector
Workday Financial ManagementGoogle BigQuery

Workday Financial Management and Google BigQuery integration

Workday Financial Management runs your AP, AR, procurement, and general ledger. Google BigQuery handles analytics and data warehouse queries. Connecting the two keeps your financial data flowing from Workday into a queryable, compliant archive in BigQuery, with no exports, no re-keying, and full traceability of every record. Your finance team can report on cash, payables, receivables, and cost allocation in real time, and audit logs show exactly which Workday records landed in BigQuery and when.

How Workday Financial Management works

Workday Financial Management exposes suppliers, supplier invoices, purchase orders, payments, GL accounts, worktags, customers, and journal entries through two API surfaces: SOAP/XML with WS-Security UsernameToken authentication for full CRUD operations, and REST/JSON with OAuth2 refresh-token flow for lighter reads. There are no native webhooks or event streams, so financial records are read by polling date-range filters on Get operations. Polling intervals of 15 to 60 minutes are typical for transactional entities; the minimum safe interval is 5 minutes to avoid tenant-level rate throttling. Outbound Messaging is available but requires admin setup per business process.

How Google BigQuery works

Google BigQuery is a serverless cloud data warehouse on Google Cloud Platform that acts as a data sink and source for structured records. It authenticates via OAuth2 with a service account JWT Bearer flow, where a service account private key signs a JWT that is exchanged for an access token valid 3600 seconds. BigQuery has no native webhooks or event subscriptions, so it is pull-only; change detection happens by querying timestamp columns or _PARTITIONTIME on a scheduled basis. Streaming insert via tabledata.insertAll uses best-effort deduplication with insertId. Access tokens expire after 1 hour and must be refreshed, and the service account requires bigquery.dataEditor and bigquery.jobUser roles minimum for read-write access.

What moves between them

The main flow runs from Workday Financial Management into Google BigQuery. ml-connector reads supplier invoices, purchase orders, payments, GL accounts, and journal entries from Workday on a schedule you define (typically 15 to 60 minutes after each financial event), and writes them to BigQuery tables in your dataset. GL accounts and worktags map to columns in your BigQuery schema so cost allocation and account hierarchies are preserved. Payments and journal entries flow in the same direction. Because Workday has no native webhooks, ml-connector polls at intervals safe for your tenant, and BigQuery is read-only for downstream queries, so no data flows back to Workday.

How ml-connector handles it

ml-connector stores both credential sets encrypted: the Workday ISU account credentials for WS-Security or the OAuth2 refresh token, and the BigQuery service account private key. On the Workday side, it uses date-range filters on Get operations to poll for new and updated records, respecting the 5-minute minimum interval to avoid tenant throttling. On the BigQuery side, it refreshes the service account access token on expiry and uses tabledata.insertAll with insertId for best-effort deduplication. Worktags and GL accounts are mapped first so every journal entry and payment references valid BigQuery columns. If a BigQuery write fails due to throttling or quota, ml-connector backs off and retries with exponential jitter, and every record carries a timestamp and audit trail so replays are safe. The integration handles Workday's complex SOAP envelope format transparently and converts it to BigQuery's columnar JSON schema.

A real-world example

A mid-market B2B services firm runs Workday Financial Management for AP, AR, and project accounting across 12 offices and 300+ projects. Before the integration, the finance team exported invoices, POs, and GL postings from Workday into spreadsheets each week, then uploaded them to a data lake for monthly reporting and project margin analysis. Reporting cycles took 10 days because of export-wait-upload lag, and the spreadsheets drifted from Workday. With Workday and BigQuery connected, invoices and project GL entries flow into BigQuery every 30 minutes, and the finance team runs SQL queries for real-time margin analysis, cash position forecasts, and project profitability without any manual handoff. Month-end close now starts with complete, accurate financial data already in BigQuery.

What you can do

  • Read supplier invoices, purchase orders, and payments from Workday Financial Management and load them into Google BigQuery tables on a schedule you control.
  • Map Workday GL accounts and worktags to BigQuery columns so cost allocation and account hierarchies are queryable without re-keying.
  • Authenticate Workday with OAuth2 or WS-Security and BigQuery with service account OAuth2, refreshing tokens before expiry.
  • Poll Workday at intervals safe for your tenant (5 to 60 minutes) and detect new and updated records by date-range filter, with automatic retry and exponential backoff on errors.
  • Stream records to BigQuery with best-effort deduplication via insertId, preserving a full audit trail of every record, timestamp, and transformation.

Questions

Which financial records move from Workday Financial Management to Google BigQuery?
Supplier invoices, purchase orders, payments, GL accounts, worktags, customers, and journal entries flow from Workday into your BigQuery dataset on a schedule you define. GL accounts and worktags map to your BigQuery schema so cost allocation is queryable. Payments and journal entries include amounts, dates, and account references, and every record carries a timestamp and audit trail.
Why does ml-connector poll Workday instead of using webhooks?
Workday Financial Management has no native webhooks or event streams for financial transactions. ml-connector polls date-range filters on Get operations at intervals of 15 to 60 minutes for transactional entities, respecting the 5-minute minimum interval to avoid tenant-level throttling. This gives you near-real-time data without manual exports or scheduled batch jobs.
How does the integration handle service account expiry and quota limits?
ml-connector refreshes BigQuery service account access tokens before the 1-hour expiry and also monitors token refresh on the Workday OAuth2 side. If BigQuery returns rate-limit or quota errors, the integration backs off with exponential jitter and retries automatically. Every failed write is logged with the original Workday record, so you can replay the insert once quota recovers.

Related integrations

Connect Workday Financial Management and Google BigQuery

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started