Deltek and Salesforce integration
Deltek Vantagepoint runs projects, accounting, and the firm database for a professional services business. Salesforce runs the sales pipeline, accounts, and contacts. Connecting the two keeps the front office and the back office working from the same client list. When an Opportunity is won in Salesforce, the matching project and client firm appear in Deltek without re-keying, and client firms and contacts maintained in Deltek stay current in Salesforce. ml-connector handles the different APIs and authentication on each side and moves the records on the schedule and triggers you set.
What moves between them
Records move in both directions, split by which system owns them. Won Opportunities flow from Salesforce into Deltek Vantagepoint, creating or updating the matching Project and client Firm so delivery and accounting can begin. Client Firms and their Contacts flow from Deltek into Salesforce as Accounts and Contacts, keeping the CRM current with the firm of record. Salesforce Change Data Capture events on Accounts, Contacts, and Opportunities drive the work as changes happen, while Deltek hub records are read by a scheduled poll or a workflow webhook. Deltek accounting transactions such as AP invoices and journal entries are not pushed into Salesforce, since the CRM has no general ledger.
How ml-connector handles it
ml-connector stores both credential sets encrypted and runs two token flows: the Salesforce client credentials token against the org My Domain URL, refreshed when a call returns 401 because no refresh token is issued, and the Deltek password-grant bearer token against the company deltekfirst.com URL, refreshed before its one-hour expiry. It accepts the full Deltek server URL and database name per customer, since Deltek publishes no shared base address. Salesforce changes arrive over Change Data Capture on the Pub/Sub API and are tracked by replayId, with a SOQL poll as the backfill if the connector is offline beyond the 72-hour event retention. Deltek has no HMAC on its workflow webhooks, so those reads are confirmed against the API rather than trusted blind, and a page-based poll covers the rest. Writes into Salesforce use upsert on an External ID field carrying the Deltek key, and writes into Deltek check for an existing record by firm or project number first, because Deltek has no idempotency-key header. Firm types and account types are mapped so a Deltek client lands as the right kind of Salesforce Account. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A 150-person architecture and engineering firm runs Deltek Vantagepoint for projects, billing, and its client database, and Salesforce for the sales pipeline. Before the integration, when a pursuit was won the project accountant re-keyed the client and the new project from Salesforce into Deltek by hand, and the business development team had no view of which Salesforce accounts were already active clients in the ERP. With Deltek and Salesforce connected, a won Opportunity creates the project and client firm in Deltek automatically, and the firm of record from Deltek keeps Salesforce accounts and contacts accurate. The duplicate data entry is gone and both teams see the same clients.
What you can do
- Create or update a Deltek Vantagepoint Project and client Firm when a Salesforce Opportunity is won.
- Mirror Deltek client Firms and Contacts into Salesforce Accounts and Contacts so the CRM matches the firm of record.
- React to Salesforce Account, Contact, and Opportunity changes over Change Data Capture as they happen.
- Bridge the Salesforce client credentials token and the Deltek password-grant token, refreshing each before it expires.
- Upsert by external ID into Salesforce and match by firm or project number in Deltek, so records are updated, not duplicated.
Questions
- Which direction does data move between Deltek and Salesforce?
- It moves both ways, split by ownership. Won Opportunities flow from Salesforce into Deltek as Projects and client Firms, while client Firms and Contacts flow from Deltek into Salesforce as Accounts and Contacts. Deltek accounting transactions such as AP invoices and journal entries are not sent to Salesforce, because the CRM has no general ledger to hold them.
- Does this sync push Deltek invoices or payments into Salesforce?
- No. Salesforce Sales Cloud has no standard invoice or payment object; those exist only in Revenue Cloud orgs. ml-connector focuses on the records both systems share, which are clients, contacts, opportunities, and projects, and leaves Deltek accounting in Deltek where the ledger lives.
- How does the integration handle the two different logins and Salesforce events?
- ml-connector runs both OAuth flows side by side: the Salesforce client credentials token against the org My Domain URL, and the Deltek password-grant token against the company deltekfirst.com URL, each refreshed before it expires. Salesforce changes arrive over Change Data Capture and are tracked by replayId, and a scheduled SOQL poll backfills anything missed if the connector is offline past the 72-hour event retention.
Related integrations
More Deltek integrations
Other systems that connect to Salesforce
Connect Deltek and Salesforce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started