Deltek and Looker integration
Deltek runs project accounting and finance for services firms and government contractors. Looker turns warehouse data into dashboards and reports for the whole company. Connecting the two means Deltek's projects, invoices, journal entries, and employee records flow into the data warehouse that Looker models, so finance and operations dashboards show current ERP numbers instead of stale extracts. ml-connector reads the very different APIs on each side and moves the data on a schedule you control. It can also pull aggregated Looker query results back when a summarized figure is useful as reference.
What moves between them
The main flow runs from Deltek into the warehouse that Looker reads. ml-connector polls Deltek for projects, firms, employees, AP and AR invoices, journal entries, and GL accounts on the schedule you set, and lands them in the warehouse tables your LookML models sit on, so Looker dashboards report on current ERP data. Because Looker holds no source-of-truth finance records, the reverse direction is limited: ml-connector can run a Looker query or saved Look and pull an aggregated result, such as a budget or pipeline summary, back as reference. No financial transactions are ever written into Looker, since the API offers no such path.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Deltek side it accepts the full tenant URL per customer, since Deltek publishes no shared base address, requests an OAuth2 token with the password grant, and refreshes the bearer token before it expires. On the Looker side it logs in with client credentials, sends the token using Looker's token scheme rather than Bearer, and re-authenticates whenever a call returns 401, because Looker tokens last only one hour and have no refresh token. Deltek finance records map to the warehouse tables your LookML reads, so a Deltek invoice or journal entry becomes a row Looker can query rather than a Looker object. Because Deltek cloud webhooks are workflow-only and carry no signature, ml-connector polls rather than relying on a push, and it spaces requests with conservative backoff since Deltek publishes no rate limit. Deltek has no idempotency key, so it checks for an existing record by number before writing to avoid duplicates, and it stays under Looker's roughly sixty requests per minute, backing off on 429. Large Looker pulls use async query tasks rather than the 5000-row single-call cap. Every record carries automatic retries, a full audit trail, and error replay if a downstream call fails.
A real-world example
A professional services firm of about 400 people runs Deltek Vantagepoint for project accounting, billing, and AP, and uses Looker on a BigQuery warehouse for company-wide reporting. Before the integration, an analyst exported project, billing, and labor data from Vantagepoint into spreadsheets each week and loaded it into the warehouse by hand, so the utilization and project-margin dashboards in Looker were always several days behind and prone to copy-paste errors. With Deltek and Looker connected through ml-connector, project, invoice, and journal data flows into the warehouse automatically on a daily schedule, and the Looker dashboards refresh against current ERP numbers. Leadership reviews real margins and utilization without waiting on a manual export, and the weekly spreadsheet step is gone.
What you can do
- Land Deltek projects, firms, employees, AP and AR invoices, journal entries, and GL accounts in the warehouse Looker reports on.
- Keep Looker dashboards refreshed against current Deltek data on the schedule you set.
- Pull aggregated Looker query and Look results back as reference summaries where a rolled-up figure is useful.
- Bridge Deltek OAuth2 tenant login and Looker's client-credentials token, sent with Looker's token scheme on API 4.0.
- Poll Deltek because its webhooks are workflow-only, with retries, a full audit trail, and error replay on every record.
Questions
- Which direction does data move between Deltek and Looker?
- The main flow is Deltek into the warehouse that Looker reads. Projects, invoices, journal entries, employees, and GL accounts move from Deltek into your warehouse tables so Looker can report on them. The reverse is limited to pulling aggregated Looker query results back as reference, because Looker has no native financial objects and the API offers no way to post a transaction into it.
- Can ml-connector write Deltek transactions into Looker?
- No. Looker is a BI layer over a data warehouse and stores no invoice, purchase order, or GL account objects, and its API only writes content, users, and scheduled plans. Deltek finance records are landed in the warehouse Looker models instead, so they become rows Looker can query rather than objects inside Looker itself.
- How does the integration handle Deltek's lack of signed webhooks and Looker's short token?
- Deltek cloud webhooks are workflow-driven and carry no signature, so ml-connector polls Deltek on the schedule you set rather than relying on a push. Looker access tokens expire after one hour with no refresh token, so ml-connector caches the token and re-authenticates transparently whenever a call returns 401.
Related integrations
More Deltek integrations
Other systems that connect to Looker
Connect Deltek and Looker
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started