ml-connector
Workday Financial ManagementMicrosoft Dynamics 365 Sales

Workday Financial Management and Microsoft Dynamics 365 Sales integration

Workday Financial Management runs your accounting and procurement. Microsoft Dynamics 365 Sales manages your sales pipeline. Connecting the two keeps your revenue and your orders in sync across systems. Customer invoices from Workday flow into Dynamics 365 Sales as quotes and orders, so your sales team sees the full context of what each customer owes. Sales order confirmations flow back into Workday to update AR records and close the loop on fulfillment.

How Workday Financial Management works

Workday Financial Management exposes suppliers, supplier invoices, purchase orders, payments, GL accounts, customers, and journal entries through SOAP/WWS at the tenant-specific endpoint and REST/JSON for lighter reads. Authentication uses SOAP Integration System User credentials with WS-Security UsernameToken (sent with every request) or REST OAuth2 refresh-token flow exchanged for 1-hour access tokens. Workday has no native webhooks or change-data-capture; polling is the only option, with date-range filters recommended on 15-minute to daily intervals depending on entity type. Minimum safe interval is 5 minutes, though intervals shorter than that may trigger tenant-level rate throttling.

How Microsoft Dynamics 365 Sales works

Microsoft Dynamics 365 Sales exposes accounts, contacts, leads, opportunities, quotes, sales orders, invoices, products, and price levels through OData v4.0 REST on a per-organization base URL. Authentication uses OAuth 2.0 client credentials flow via Microsoft Entra ID. The platform supports both webhooks via the Dataverse Event Framework and polling. Webhooks can trigger on Create, Update, Delete, Assign, SetState, Win, Lose, QualifyLead, ConvertQuoteToSalesOrder, FulfillSalesOrder, GenerateInvoiceFromOrder, and custom actions with synchronous or asynchronous execution. Payloads are limited to 256 KB and tokens expire in approximately 60 minutes.

What moves between them

Customer invoices and orders from Workday flow into Dynamics 365 Sales on a daily or near-daily schedule. Invoices become quotes or sales orders with line items mapped to Dynamics products and price levels. Sales order confirmations, shipments, and status updates from Dynamics 365 Sales flow back into Workday to update invoice status, AR aging, and fulfillment records. Workday customers and GL account dimensions are synced to Dynamics account records so that sales data can be allocated to the correct cost and revenue accounts.

How ml-connector handles it

ml-connector stores Workday ISU credentials and manages the REST OAuth2 refresh token, automatically exchanging it for a fresh access token before expiry. It polls Workday invoices and orders on a cadence tied to your billing cycle, filtering by date range to avoid full-table scans on each run. On the Dynamics 365 Sales side, it registers webhook endpoints for Quote, SalesOrder, and Invoice state changes so that status updates trigger immediately rather than waiting for the next poll interval. Invoice line items are mapped to Dynamics products and price levels using customer name and invoice total as lookup keys; if a product does not exist, ml-connector creates a line-item record with the amount and description. It handles Workday's 5-minute minimum polling interval and Dynamics 365's 256 KB webhook payload limit by batching invoice updates if necessary. On each sync, every record carries a job ID for idempotency so that retries do not duplicate orders, and the full audit trail logs which fields changed, when, and why.

A real-world example

A mid-sized B2B services firm uses Workday Financial Management for accounting and AR, and Dynamics 365 Sales to track opportunities and customer relationships. Before the integration, the sales team entered customer orders into Dynamics manually, and the AR team re-entered order numbers and amounts into Workday to match invoices to orders. With the two systems connected, each customer invoice from Workday appears in Dynamics as a quote or order line item within minutes, and sales reps can see in Dynamics what the customer owes. When an order is confirmed in Dynamics, the sales order status flows back to Workday to mark the corresponding invoice as fulfilled, eliminating manual re-keying and closing the visibility gap between sales and accounting.

What you can do

  • Move customer invoices from Workday into Dynamics 365 Sales as quotes or sales orders with line items mapped to products and price levels.
  • Sync sales order confirmations and fulfillment status from Dynamics 365 Sales back into Workday AR and invoice records.
  • Authenticate Workday with ISU credentials and OAuth2 REST tokens, and Dynamics 365 Sales with Microsoft Entra ID client credentials.
  • Handle Workday's polling-only API and Dynamics 365 Sales webhooks and OData filters in a unified schedule tied to your billing cycle.
  • Maintain a full audit trail with idempotent job IDs on every record so retries and replays do not duplicate orders.

Questions

Can invoices from Workday become sales orders in Dynamics 365 Sales, or only quotes?
They can become either. If Workday marks an invoice as confirmed or paid, ml-connector creates a sales order in Dynamics. If the invoice is still pending, it creates a quote so your sales team can track it as pre-order. Line items are mapped to Dynamics products and price levels based on the invoice detail, and the mapping can be customized per customer if your products have different SKUs in each system.
Does Dynamics 365 Sales need to push data back to Workday, or does ml-connector pull it on a schedule?
Both. ml-connector polls Workday invoices on a daily or bi-daily schedule tied to your billing cycle to avoid excessive API calls. On the Dynamics side, it registers webhooks so that sales order confirmations, shipments, and status changes flow back to Workday immediately rather than waiting for the next poll. This keeps your AR records current while respecting Workday's rate limits.
What happens if a Workday customer name does not match a Dynamics 365 Sales account exactly?
ml-connector uses a fuzzy name match with fallback to account number if available. If no match is found, it creates a new account record in Dynamics with the Workday customer data so the invoice is not dropped. You can review and merge duplicate accounts in Dynamics after the initial sync, and the mapping will stabilize once customers are aligned.

Related integrations

Connect Workday Financial Management and Microsoft Dynamics 365 Sales

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

Get started