Deltek and Marketo integration
Deltek Vantagepoint runs project accounting and business development for professional services firms. Marketo runs B2B marketing automation. Connecting the two keeps the marketing database and the firm's client and pursuit records in agreement. New leads and accounts captured in Marketo become contacts and firms in Deltek, and Deltek clients and won opportunities flow back to Marketo so campaigns target current records. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.
What moves between them
Data moves in both directions. From Marketo into Deltek, ml-connector reads new and updated leads and companies and upserts them as Deltek contacts and firms, so business development works from a current client and prospect list. From Deltek into Marketo, client firms and won opportunities are upserted as Marketo companies and opportunities, keeping marketing aligned with the firm's real accounts and deals. Marketing engagement activities such as email clicks and form fills are read from Marketo for reference. Polling cadence is set per flow, and Marketo opportunities and companies are treated as read-only when a CRM sync owns them.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Marketo side it exchanges the client ID and secret for a bearer token and renews it before the one-hour expiry or on a 602 error, and it never trusts the HTTP status alone because Marketo returns 200 with a success flag of false, so it parses the errors array and backs off on rate-limit code 606 and concurrency code 615. On the Deltek side it accepts the full tenant URL per customer, runs the OAuth2 password grant after the customer enables Allow Password Grant Type, and refreshes the bearer token when a call returns 401. Because Marketo only calls outward and Deltek webhooks are workflow-bound and unsigned, both systems are polled on the schedule you set. Records are matched on dedupe keys: email for leads and contacts, externalCompanyId for companies, and externalOpportunityId for opportunities. Since neither API offers an idempotency header, ml-connector queries before it writes to avoid duplicates, and where Salesforce or Dynamics sync owns Marketo companies and opportunities they are read only and updates are skipped. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized architecture and engineering firm of about three hundred staff runs Deltek Vantagepoint for project accounting and business development, and Marketo for email campaigns and event follow-up. Before the integration, marketing kept its own lead list while business development tracked clients and pursuits in Deltek, so the two databases drifted, new leads were re-keyed into Deltek by hand, and campaigns went out to firms that were already active clients. With Deltek and Marketo connected, leads and companies captured in Marketo land in Deltek as contacts and firms, client and won-opportunity data flows back to Marketo, and both teams work from the same record without manual re-entry.
What you can do
- Upsert new and updated Marketo leads and companies into Deltek as contacts and firms.
- Push Deltek client firms and won opportunities into Marketo as companies and opportunities.
- Match records on email, externalCompanyId, and externalOpportunityId so updates land on the right record.
- Bridge Marketo's one-hour client-credentials token and Deltek's tenant-specific OAuth2 password grant.
- Poll both systems on a schedule you set, with retries and a full audit trail on every record.
Questions
- Which direction does data move between Deltek and Marketo?
- It moves both ways. Marketo leads and companies are upserted into Deltek as contacts and firms, while Deltek client firms and won opportunities are pushed into Marketo as companies and opportunities. Marketing engagement activities are read from Marketo for reference. When a Salesforce or Dynamics sync owns Marketo companies and opportunities, those become read-only and ml-connector skips writing to them.
- Why does the integration poll Marketo instead of receiving webhooks?
- Marketo webhooks are outbound only, meaning Marketo calls external systems from Smart Campaign steps rather than pushing change events to a connector. To capture new and updated records, ml-connector polls the Marketo REST API on the schedule you set, filtering by updated time. Deltek's webhooks are workflow-bound and unsigned, so it is polled on a schedule as well.
- How does ml-connector avoid creating duplicate records?
- Neither API offers a standard idempotency key, so deduplication is field-value based. Marketo upserts match on email for leads, externalCompanyId for companies, and externalOpportunityId for opportunities. On the Deltek side ml-connector queries for an existing record before posting a new one, since Vantagepoint has no native duplicate prevention, and every write is recorded in the audit trail for replay.
Related integrations
More Deltek integrations
Other systems that connect to Marketo
Connect Deltek and Marketo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started