ml-connector
Workday Financial ManagementMicrosoft Teams

Workday Financial Management and Microsoft Teams integration

Workday Financial Management handles your accounts payable, procurement, general ledger, and cash management. Microsoft Teams is where your finance team collaborates. Connecting the two surfaces financial events in real-time: new invoices awaiting approval, payment runs ready to reconcile, and month-end journal postings flow into your team's channel without manual forwarding. Your finance team stays aligned on incoming obligations and the ledger state without checking multiple systems.

How Workday Financial Management works

Workday Financial Management exposes suppliers, supplier invoices, purchase orders, payments, GL accounts, worktags, customers, and journal entries through two API surfaces. SOAP/WWS at the primary endpoint supports full CRUD operations on business documents, authenticated with an Integration System User (ISU) account and WS-Security UsernameToken credentials on every request. REST API at a secondary endpoint supports read operations with OAuth2 bearer tokens from a manual refresh-token flow. Workday has no native webhooks or change-data-capture for financial entities, so records are read by polling at intervals of 5 minutes to 1 hour depending on the entity type and risk tolerance.

How Microsoft Teams works

Microsoft Teams is a collaboration platform accessed entirely through Microsoft Graph REST API. Teams exposes channels, chat messages, users, and online meetings via REST endpoints authenticated with OAuth2 client credentials issued by Microsoft Entra ID. Teams supports inbound webhooks through Microsoft Graph change notifications: you register a subscription for a resource type, Graph pushes notifications when records change, and subscriptions expire every 3 days and must be renewed. Teams is a pure messaging and notification surface with no native financial data objects such as invoices, GL accounts, vendors, or payments.

What moves between them

Financial alerts flow one direction: from Workday Financial Management into Microsoft Teams. ml-connector polls Workday Financial Management on a configurable schedule for new and updated suppliers, invoices, purchase orders, payments, and journal entries. When it finds records matching your team's scope (such as high-value invoices or invoices nearing approval deadlines), it formats a message and posts it to a designated Teams channel. No data flows back from Teams to Workday: Teams channels are notification destinations only, not a financial data source.

How ml-connector handles it

ml-connector stores Workday ISU credentials or OAuth2 refresh tokens encrypted and handles token refresh automatically when the refresh token is nearing expiry. On the Workday side, it polls Get operations on suppliers, invoices, purchase orders, and journal entries, filtering by date range and optionally by amount thresholds or approval status. On the Teams side, it holds an OAuth2 client ID and secret scoped to a Microsoft Entra ID tenant, exchanges them for an access token, and posts formatted messages to the channel resource URI. ml-connector tracks the last-seen record timestamp on each poll so it does not re-post the same invoice twice, and it includes the Workday record ID and amount in every Teams message so the finance team can trace the message back to the source system. If a Teams POST fails with a rate-limit response, ml-connector backs off and retries. Because Workday Financial Management has no native webhooks, all financial data movement is pull-based and cadenced by the polling interval. Workday's ISU account must be provisioned on the customer side with the appropriate security group assignments before the integration can authenticate.

A real-world example

A mid-sized consulting firm uses Workday Financial Management for accounts payable and general ledger, with a finance team of six people across two time zones. Before the integration, the AP manager checked Workday several times a day to watch for new invoices and forwarded summaries to Slack manually. Month-end close was chaotic: journal postings happened in Workday, but the team found out via email or discovered them during reconciliation. With Workday Financial Management and Microsoft Teams connected, every incoming invoice is posted to the team's AP channel with the vendor name, amount, and due date. Payment runs appear on the channel when they are generated so the team can spot duplicate or missing payments before they are wired. Month-end journal postings from the accounting manager appear in the journal channel automatically, flagged by GL account. The finance team stays aware of cash flow and ledger changes in real-time without polling Workday manually.

What you can do

  • Post new Workday invoices, POs, and payment runs to Microsoft Teams channels with vendor, amount, and due date information.
  • Alert the finance team on high-value invoices or invoices approaching approval deadlines by channel notification.
  • Route month-end journal postings from Workday Financial Management to a designated Teams channel for reconciliation tracking.
  • Authenticate Workday with ISU credentials or OAuth2 refresh tokens and Teams with Microsoft Entra ID client credentials.
  • Poll Workday Financial Management on a schedule you set, with retries and a complete audit trail on every message posted.

Questions

Does ml-connector post to all Teams channels or specific ones?
ml-connector posts to the channel you designate during setup. You can have multiple flows, each routing a different financial entity type (invoices, POs, journals) to a different channel or the same channel. Teams channels are unidirectional destinations; ml-connector posts messages, but does not read messages from the channel.
How does the integration handle Workday's lack of native webhooks?
Because Workday Financial Management has no event stream or change notifications, ml-connector polls Workday on a schedule you set (recommended intervals 5 minutes to 1 hour depending on entity type). It tracks the last-seen record timestamp so it does not re-post the same invoice twice. If you need real-time notification of new invoices, a more frequent polling interval increases latency but may trigger Workday's tenant-level rate throttling at intervals shorter than 5 minutes.
What happens if a Teams message fails to post?
ml-connector retries the POST to the Teams channel with exponential backoff. If the retry succeeds, the message is posted and logged with the full audit trail. If retries exhaust (typically after 3-5 attempts over several minutes), the failed record is stored in the audit log with the error details so you can investigate and replay it once the Teams endpoint is restored.

Related integrations

Connect Workday Financial Management and Microsoft Teams

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

Get started