Sage 100 and Microsoft Dynamics 365 Sales integration
Sage 100 runs your on-premises operations and order fulfillment. Microsoft Dynamics 365 Sales manages your sales pipeline and quotes in the cloud. Connecting the two keeps your customer master data and sales orders synchronized across both systems, so your sales team sees up-to-date information from your order book, and your operations team sees the deals in the pipeline.
What moves between them
Customer and sales order data flows from Sage 100 into Microsoft Dynamics 365 Sales. New and modified customers in Sage 100 sync to Dynamics accounts; new and modified sales orders in Sage 100 sync to Dynamics sales orders, mapped to the corresponding Dynamics account. Reference data such as product and price lists on the Dynamics side remain the source of truth for new quote pricing. Data flows one direction only, since Sage 100 is the system of record for operations and fulfillment.
How ml-connector handles it
ml-connector maintains the Sage 100 customer server hostname, local agent credentials (API key or mTLS certificate), company code, and SOAP username and password, encrypted at rest. On the Dynamics side it stores the OAuth client ID and secret and manages token refresh on each 60-minute expiry. It polls Sage 100 at intervals tied to your operational rhythm (customers hourly, sales orders every 15 minutes) by querying the DateLastUpdated field to find changes since the last run, fetches matching customer and order records through SOAP or the local agent, and posts or updates the mapped records in Dynamics via REST. Sage 100 sales orders map to Dynamics sales orders; Sage customers map to Dynamics accounts. Concurrent write locks on Sage 100 records are handled with exponential backoff and retry. Every record carries an audit trail and can be replayed if a downstream Dynamics call fails.
A real-world example
A mid-sized distributor runs Sage 100 on-premises for order entry, inventory, and fulfillment, and uses Microsoft Dynamics 365 Sales in the cloud for pipeline management and deal tracking across a geographically distributed sales team. Before the integration, the sales team entered customer data and quoted orders manually into Dynamics, while the operations team re-entered deal wins from the CRM into Sage 100 for fulfillment, causing delays and mismatches. With Sage 100 and Dynamics 365 Sales connected, customer master data syncs automatically whenever operations updates a customer profile, and new sales orders from Dynamics flow into Sage 100 ready for fulfillment without manual re-entry. The sales team always sees current customer information and outstanding orders from Sage, and the operations team sees the pipeline deals in real time.
What you can do
- Sync new and modified customers from Sage 100 into Microsoft Dynamics 365 Sales accounts on a schedule you control.
- Post sales orders from Sage 100 into Dynamics sales orders, mapped to the matching Dynamics account.
- Bridge Sage 100 SOAP and local Windows agent transport with OAuth 2.0 REST on the Dynamics side.
- Poll Sage 100 at intervals matched to your operational tempo, with exponential backoff and retry for concurrent locks.
- Keep both systems aligned with a full audit trail and the ability to replay failed records.
Questions
- How does ml-connector handle Sage 100's lack of webhooks and cloud API?
- Sage 100 is on-premises with no webhooks or push events. ml-connector polls the Sage SOAP endpoint or local Windows agent on a schedule matched to your operational rhythm (customers hourly, sales orders every 15 minutes) and fetches records by DateLastUpdated or DateCreated. The local agent must be installed on the customer server and configured with credentials that ml-connector stores encrypted.
- What is the direction of data flow between Sage 100 and Microsoft Dynamics 365 Sales?
- Data flows from Sage 100 into Dynamics 365 Sales. Customer and sales order records sync from Sage into Dynamics; reference data such as products and price lists on the Dynamics side remain the source of truth for new quotes and pricing. Sage 100 is the system of record for operations and fulfillment.
- How does ml-connector bridge the authentication difference between Sage 100 and Dynamics 365 Sales?
- Sage 100 uses stateless username and password per SOAP call with no tokens or OAuth, and requires company code on every request. Microsoft Dynamics 365 Sales uses OAuth 2.0 via Microsoft Entra ID with tokens that expire in approximately 60 minutes. ml-connector stores both credential sets encrypted and manages token refresh on the Dynamics side while passing Sage username and password per call.
Related integrations
More Sage 100 integrations
Other systems that connect to Microsoft Dynamics 365 Sales
Connect Sage 100 and Microsoft Dynamics 365 Sales
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started