Visma and Microsoft Dynamics 365 Sales integration
Visma.net ERP handles your financial operations, AP/AR, and inventory across multiple entities and dimensions. Microsoft Dynamics 365 Sales drives your sales pipeline, managing accounts, opportunities, and orders. Connecting the two keeps your customer and supplier master data aligned across both systems, lets you flow sales orders from Dynamics 365 Sales directly into Visma as purchase orders, and ties invoice records together. Data flows in both directions so a customer record created in Visma appears in Dynamics 365 Sales within moments, and a sales order in Dynamics 365 Sales becomes a traceable purchase order in Visma.
What moves between them
Customers and suppliers flow from Visma into Dynamics 365 Sales as accounts and contacts, mapped by customer ID and supplier ID. When a sales order is created in Dynamics 365 Sales, ml-connector maps it into Visma as a purchase order, linking the Dynamics 365 Sales account to the Visma supplier account and flowing line item details and amounts. Invoice records flow in both directions: Visma supplier invoices appear as related records in Dynamics 365 Sales for visibility, and sales invoices generated from Dynamics 365 Sales orders are written back to Visma for GL posting. The sync runs on a schedule that you can tune to your sales and accounting cadence, typically every few minutes for transactional data and hourly for master data.
How ml-connector handles it
ml-connector stores both OAuth 2.0 credential sets encrypted and obtains fresh access tokens from Visma Connect and Microsoft Entra ID at the start of each sync, retrying on 401 responses. It reads the ipp-company-id header requirement from Visma configuration and includes it on all Visma API calls. Because both platforms support webhooks and polling, ml-connector can listen for Visma customer/supplier changes and Dynamics 365 Sales order events, while also polling for records that may have been missed, ensuring no records are lost. Customers and suppliers are matched by their Visma IDs stored as custom fields in Dynamics 365 Sales accounts and contacts, so updates to an existing customer flow both directions without creating duplicates. Sales orders flow to Visma as purchase orders with the account and Visma supplier ID linked; Dynamics 365 Sales order line items map to Visma purchase order lines with amounts, quantities, and product details. If a Visma supplier ID is missing or invalid, the order is flagged in the audit trail and can be replayed once the mapping is corrected. Every record carries a full audit trail, timestamps, and traceability, so you can always see which system wrote the record and when it last changed.
A real-world example
A mid-sized B2B services company uses Visma.net to manage its vendor relationships, purchase orders, and AP accounting. It uses Dynamics 365 Sales to manage customer accounts, opportunities, and sales orders across a distributed sales team. Before the integration, sales reps entered customer orders into Dynamics 365 Sales, then re-keyed them into Visma as purchase orders for procurement, and finance had to manually reconcile invoice records between the two systems. With Visma and Dynamics 365 Sales connected, a sales rep creates a quote and wins an opportunity in Dynamics 365 Sales; the customer account details and order are automatically written to Visma as a purchase order linked to the correct supplier account, and Visma invoices tied to that order appear back in Dynamics 365 Sales so the order status is always up to date. The procurement team sees the order in Visma without re-keying, and invoicing is traceable between the two systems.
What you can do
- Synchronize customers and suppliers between Visma and Dynamics 365 Sales as accounts and contacts, with bidirectional updates and no duplicate creation.
- Flow sales orders from Dynamics 365 Sales to Visma as purchase orders, linked to the correct supplier account and mapped with line items and amounts.
- Map invoice records between Visma and Dynamics 365 Sales so sales invoices and AP invoices are visible and linked across both systems.
- Authenticate both Visma with OAuth 2.0 via Visma Connect and Dynamics 365 Sales with OAuth 2.0 via Microsoft Entra ID, managing token refresh and retry on credential expiry.
- Listen for changes on both platforms via webhooks and polling, ensuring every record flows within minutes and can be replayed if a downstream call fails.
Questions
- How does ml-connector handle the schema differences between Visma ERP and Dynamics 365 Sales CRM?
- Visma customers and suppliers map to Dynamics 365 Sales accounts and contacts respectively. Each account or contact stores the Visma customer ID or supplier ID as a custom field for bidirectional matching, so updates to either system update the linked record without duplicates. Sales orders in Dynamics 365 Sales flow to Visma as purchase orders, with line items mapped by product SKU and amounts carried through. Invoice records flow both directions so they can be linked and reconciled.
- What happens if a sales order in Dynamics 365 Sales references a supplier that does not exist in Visma?
- ml-connector checks the Visma supplier ID on the Dynamics 365 Sales account before creating the purchase order. If the supplier is missing or the Visma ID is null, the order is logged in the audit trail with a flag, and the flow pauses. Once the supplier is created in Visma and the ID is added to the Dynamics 365 Sales account, you can replay the order from the audit trail and it will complete.
- Do I need to set up webhooks, or can I use polling only?
- ml-connector supports both. Webhooks are faster but require enablement at the Visma company level and in Dynamics 365 Sales through the Dataverse Event Framework. Polling alone is simpler to set up and works reliably; ml-connector can poll both systems every few minutes at no extra cost. Many customers run both to catch urgent changes quickly while polling cleans up any missed records on schedule.
Related integrations
More Visma integrations
Other systems that connect to Microsoft Dynamics 365 Sales
Connect Visma and Microsoft Dynamics 365 Sales
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started