Deltek and Zoho CRM integration
Deltek runs project accounting, billing, and resourcing for professional services and government contractors. Zoho CRM runs the sales pipeline and client relationships. Connecting the two means the people winning work and the people delivering and billing it work from the same client list. Firms and contacts created in Deltek appear in Zoho CRM as accounts and contacts, open projects and AR invoices show up against the matching account so reps see engagement status and outstanding balances, and a client won as a deal in Zoho flows back to Deltek as a firm. ml-connector handles the very different APIs on each side, the two OAuth setups, and the change tracking, and moves records on a schedule you control.
What moves between them
The main flow runs from Deltek into Zoho CRM. Deltek firms sync to Zoho accounts and Deltek contacts sync to Zoho contacts, so sales and delivery share one client list. Open Deltek projects are copied into Zoho and linked to the matching account, and posted AR invoices appear as Zoho invoices, giving reps a live view of engagement status and outstanding balances. Going the other way, a client won as a deal in Zoho is created in Deltek as a firm, optionally with an opportunity or starter project, so delivery can begin without re-keying. Cadence is scheduled polling against Deltek with an optional push trigger from Zoho webhooks; AP invoices, journal entries, and the general ledger stay owned by Deltek and are never written back from CRM.
How ml-connector handles it
ml-connector stores both credential sets encrypted and runs two OAuth flows: a Deltek password grant against the customer tenant URL, refreshing the bearer token when a call returns 401, and a Zoho refresh-token exchange against the accounts server for the org datacenter, using the returned api_domain as the base URL. Because Deltek webhooks are workflow-configured rather than a general event feed, it polls firms, contacts, projects, and AR invoices using the page and pagesize parameters and stores a high-water mark per run, with a configured workflow webhook able to trigger a faster pass. Where Zoho webhooks are enabled it accepts the ID-only notification, verifies the echoed token since Zoho sends no HMAC, then fetches the full record, and it renews the Zoho channel before its roughly one-day expiry. Firm numbers map to Zoho account names and Deltek project numbers to a project field or linked record. Neither side exposes an idempotency key, so the connector queries Deltek by firm or invoice number before posting and uses Zoho upsert with a duplicate-check field to avoid doubles. The Deltek API user must have full field visibility or fee and amount fields read back as zero, so the connector validates that at setup. On a 429 or timeout from either side it backs off and retries, and every record carries a full audit trail and can be replayed.
A real-world example
A mid-sized architecture and engineering firm with roughly 200 staff runs Deltek Vantagepoint for project accounting, billing, and resource planning, and its business development team lives in Zoho CRM. Before the integration, when a pursuit closed, someone re-keyed the new client and its contacts into Deltek by hand to open a project, which introduced mismatched names and duplicate firms, and reps had no way to see whether a client had unpaid invoices without emailing accounting. With Deltek and Zoho CRM connected, firms and contacts flow into Zoho, open projects and AR balances appear on each account, and a won deal creates the Deltek firm and starter project automatically, so business development and project accounting finally work from one consistent picture.
What you can do
- Sync Deltek Vantagepoint firms into Zoho CRM accounts and contacts into Zoho contacts so sales and delivery share one client list.
- Copy open Deltek projects into Zoho and link them to the matching account for live engagement visibility.
- Surface posted Deltek AR invoices in Zoho CRM so reps see outstanding client balances.
- Send clients won as deals in Zoho back to Deltek as firms with an optional starter project.
- Bridge Deltek password-grant OAuth and Zoho OAuth, refresh both tokens, and route Zoho calls to the right datacenter.
Questions
- Does this use Deltek webhooks or polling?
- It defaults to polling because Deltek Vantagepoint webhooks are configured one workflow at a time and there is no general event feed or signed payload. The connector reads firms, contacts, projects, and AR invoices using page-based paging and stores a high-water mark after each run. If your Deltek instance has a workflow webhook set up on record save, that can trigger a faster sync, with polling still running as a catch-up safety net.
- How does it handle the Zoho datacenter and token expiry?
- Zoho orgs can live on any of seven datacenters, so the connector never hardcodes a base URL. It exchanges your refresh token at the accounts server for your region and uses the api_domain returned in the token response for every call. Both sides issue short-lived tokens, about one hour each, so the connector refreshes the Zoho token proactively and renews the Deltek bearer token when a call returns 401.
- Will it create duplicate firms in Deltek or duplicate accounts in Zoho CRM?
- No. Neither Deltek nor Zoho provides an idempotency key, so the connector queries Deltek by firm number or invoice number before posting and uses the Zoho upsert API with a duplicate-check field such as account name. Records are also tracked per job, so a retried sync re-targets the same record instead of inserting a second copy.
Related integrations
More Deltek integrations
Other systems that connect to Zoho CRM
Connect Deltek and Zoho CRM
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started