Microsoft Dynamics 365 F&O and Zendesk integration
Microsoft Dynamics 365 F&O runs financials, procurement, and the customer and vendor masters. Zendesk runs customer support, with tickets, users, and organizations. Connecting the two means your support agents see the same account list that finance maintains, keyed back to the ERP account number, instead of a stale copy typed in by hand. ml-connector reads the master records from the ERP and writes them into Zendesk as organizations and users, and it reads ticket and user activity back so the ERP can be enriched with support context. Because Zendesk holds no invoices, purchase orders, or GL accounts, all financial data stays in Microsoft Dynamics 365 F&O.
What moves between them
The main flow runs from Microsoft Dynamics 365 F&O into Zendesk. ml-connector reads CustomersV3 and VendorsV2 and writes each as a Zendesk organization, placing the ERP account number in external_id so the two systems share a stable key. ERP contact records flow the same direction and land as Zendesk users tied to their organization. In the reverse direction, Zendesk ticket and user changes are read back so the ERP account can be annotated with open support volume or account status. No invoices, purchase orders, or GL entries move into Zendesk, because Zendesk has no place to hold them. Master sync runs on a schedule, while Zendesk webhooks can trigger the reverse read in near real time.
How ml-connector handles it
ml-connector stores both credential sets encrypted. For Microsoft Dynamics 365 F&O it requests a client credentials token from Microsoft Entra ID against the tenant-specific scope and refreshes it on expiry, accepting the environment host as a per-customer field since there is no shared URL, and it adds cross-company=true with a dataAreaId filter when a customer runs more than one legal entity. For Zendesk it carries the OAuth bearer token and routes every call to the account subdomain. Account sync resolves Zendesk organizations by external_id first so a re-run updates the existing record rather than creating a duplicate, and missing accounts are added through the organizations batch endpoint. In reverse, Zendesk webhooks fire on a wired trigger and are verified with the HMAC-SHA256 signature header before processing; because the payload carries the resource id and not the full record, ml-connector reads back the ticket or user detail it needs. Both sides return HTTP 429 under load, so the connector honors Retry-After and backs off. Edge cases handled include the Zendesk rule that user email is writable only on create, where a later change adds a secondary email instead of replacing the primary, and ERP business event ControlNumber dedup so a redelivered event is not processed twice.
A real-world example
A mid-sized industrial distributor with roughly 400 staff runs Microsoft Dynamics 365 F&O for finance and procurement and uses Zendesk for its customer support desk. Before the integration, agents kept their own copy of the customer list in Zendesk, so when a buyer called about an order the org record was often missing or named differently than the ERP account, and agents could not quickly tell which support tickets belonged to which financial account. With Microsoft Dynamics 365 F&O and Zendesk connected, every ERP customer and vendor appears as a Zendesk organization keyed by the ERP account number, new accounts show up automatically, and ticket activity is fed back so finance can see which accounts are generating support load. Agents stop maintaining a parallel list, and support history lines up with the financial record.
What you can do
- Sync Microsoft Dynamics 365 F&O customers and vendors into Zendesk as organizations keyed by external_id.
- Keep Zendesk users aligned with ERP contact records, respecting the create-only email rule.
- Authenticate the ERP with OAuth2 client credentials through Microsoft Entra ID and Zendesk with OAuth 2.0 authorization code tokens.
- Read Zendesk ticket and user activity back so the ERP account can be enriched with support context.
- Verify Zendesk webhook signatures, dedup ERP business events by control number, and honor 429 Retry-After on both sides.
Questions
- Which direction does data move between Microsoft Dynamics 365 F&O and Zendesk?
- The main flow is the ERP into Zendesk. Customer and vendor accounts move from Microsoft Dynamics 365 F&O into Zendesk as organizations, and ERP contacts become Zendesk users. In reverse, ml-connector reads Zendesk ticket and user activity back so the ERP account can be annotated with support context. No invoices, purchase orders, or GL entries move into Zendesk, because Zendesk has no objects to hold them.
- How are ERP accounts matched to Zendesk organizations without creating duplicates?
- ml-connector writes the Microsoft Dynamics 365 F&O account number into the Zendesk organization external_id field, which is the field Zendesk provides for a foreign key to an external system. On each run it looks up the organization by external_id first and updates the existing record, so a re-sync does not create a second copy. New accounts are added through the Zendesk organizations batch endpoint.
- Does Zendesk push changes, or does ml-connector poll for them?
- Both are supported. Account and contact sync from the ERP runs on a schedule, and ml-connector can also subscribe to Microsoft Dynamics 365 F&O business events, which carry only identifiers so the connector calls OData back for full detail. For the reverse feed, Zendesk webhooks fire on a wired trigger and are verified with the HMAC-SHA256 signature before the connector reads back the changed ticket or user.
Related integrations
More Microsoft Dynamics 365 F&O integrations
Other systems that connect to Zendesk
Connect Microsoft Dynamics 365 F&O and Zendesk
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started