ml-connector
Microsoft Dynamics GPMarketo

Microsoft Dynamics GP and Marketo integration

Microsoft Dynamics GP runs financial operations on your Windows Server. Marketo drives B2B marketing campaigns and lead management in the cloud. When vendor and customer data in GP changes, Marketo needs to reflect those updates so marketing can target the right accounts and maintain accurate company and contact records. ml-connector reads financial master data from GP, translates it to Marketo's schema, and keeps the two systems aligned on a schedule you control.

How Microsoft Dynamics GP works

Microsoft Dynamics GP exposes vendors, customers, purchase orders, sales orders, GL accounts, and inventory items through its Service Based Architecture (SBA), a REST API at https://<server>:<port>/GPService/Tenants(<TenantName>)/Companies(<CompanyName>)/<Module>/<Resource>, or through legacy SOAP Web Services. Authentication is Windows-based (Negotiate, Kerberos, or NTLM) tied to Active Directory; the caller presents domain credentials mapped to a GP user account with role-based security. GP has no webhook support, so data is read by polling with optional ModifiedDate filters. Posted transactions are read-only; writes only work on unposted (Work) items. The company name is the actual SQL Server database name, not a human-readable label.

How Marketo works

Marketo is a B2B marketing automation platform accessed through a REST JSON API at https://<munchkin-id>.mktorest.com/rest/v1. Authentication uses OAuth2 Client Credentials (2-legged flow) with a Munchkin ID, Client ID, and Client Secret exchanged for a Bearer token with a max 3600 second expiry. Key entities include leads, companies, opportunities, sales persons, and custom objects, with a batch limit of 300 records per request. Marketo webhooks are outbound only; the connector must poll the API using leads.json with updatedAt filters or stream activity changes via the leadchanges.json endpoint with a paging token. If SFDC or Microsoft Dynamics CRM sync is enabled, opportunities and companies become read-only in Marketo.

What moves between them

Vendor records flow from Microsoft Dynamics GP into Marketo as company objects, with vendor contact names creating lead records tied to those companies. Customer records follow the same path, creating a company and associated lead for the primary buyer contact. Purchase order headers create opportunity records in Marketo to track deal value and status. The primary flow is GP into Marketo; Marketo does not write financial data back to GP. Syncs run on a schedule aligned with your financial close calendar.

How ml-connector handles it

ml-connector stores Windows domain credentials securely and uses them to authenticate against your GP instance's SBA or SOAP endpoint. It polls GP's vendor and customer resources with ModifiedDate filters to find changes, then maps vendor names to Marketo company names and contact names to Marketo leads. Purchase orders map to Marketo opportunities with the order total as deal value. On the Marketo side, ml-connector uses OAuth2 client credentials to obtain a fresh Bearer token before each request, retrying on 429 (rate limit) responses with exponential backoff. Because GP does not expose webhook notifications, polling intervals are tied to your financial batch calendar rather than real-time push. Vendor and customer company IDs in GP are preserved as externalCompanyId in Marketo to prevent duplicate company records on repeated syncs. Every record carries a full audit trail, and failed records can be replayed when network or authentication errors are resolved.

A real-world example

A mid-sized manufacturing company runs Microsoft Dynamics GP for finance, purchasing, and inventory on an on-premises server, and uses Marketo for B2B marketing campaigns targeting its supplier and customer base. Before the integration, the marketing team manually exported vendor lists from GP each quarter and typed them into Marketo as company records, causing duplicates and outdated contact information. With GP and Marketo connected, vendor and customer master data syncs automatically after each GP financial period close, so Marketo always reflects the current vendor landscape and buyer contacts. Marketing campaigns can now segment by supplier or customer type without manual data maintenance, and sales can track purchase order value as opportunities in Marketo.

What you can do

  • Sync vendor and customer records from Microsoft Dynamics GP as company objects in Marketo, avoiding duplicate companies through deduplication by external ID.
  • Create and update lead records in Marketo for vendor and customer contacts, tagged by company affiliation and source (GP vendor or customer).
  • Map purchase orders from GP into Marketo opportunities with order headers and totals, allowing deal tracking alongside marketing activities.
  • Authenticate GP with Windows domain credentials via the Service Based Architecture, and Marketo with OAuth2 client credentials and automatic token refresh.
  • Poll Microsoft Dynamics GP on a schedule tied to your financial calendar, with retries, exponential backoff on rate limits, and full audit trail on every sync.

Questions

Does the integration work with both SBA REST and legacy SOAP in Microsoft Dynamics GP?
Yes. ml-connector detects which API is available on your GP instance and uses it. SBA REST is preferred for newer installations; SOAP Web Services work on older versions. Both require Windows domain credentials valid in your Active Directory.
Can Marketo write changes back into Microsoft Dynamics GP?
No. The integration is one-way, from GP into Marketo. Marketo's opportunities and company records are created or updated by the sync but do not flow back to GP. This preserves GP as the system of record for financial and purchasing data.
How does ml-connector avoid creating duplicate companies in Marketo on repeated syncs?
ml-connector stores the GP vendor or customer ID as externalCompanyId in each Marketo company record. On subsequent syncs, it matches incoming GP vendors against existing Marketo companies by that ID, updating rather than duplicating. If SFDC or Microsoft Dynamics CRM is enabled in Marketo, companies become read-only and ml-connector logs a warning.

Related integrations

Connect Microsoft Dynamics GP and Marketo

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

Get started