ml-connector
Workday Financial ManagementAsana

Workday Financial Management and Asana integration

Finance teams run Workday Financial Management for accounting, procurement, and cash flow. Operations teams manage work in Asana. Connecting the two keeps procurement visibility in sync without duplicate data entry. Purchase orders and invoices created in Workday automatically appear as tasks in Asana, tagged with vendor, amount, and cost center information. Asana task updates can feed approval status back into Workday as custom attributes.

How Workday Financial Management works

Workday Financial Management exposes suppliers, purchase orders, invoices, GL accounts, worktags, and journal entries through SOAP/XML and REST APIs. Authentication uses either an Integration System User with WS-Security UsernameToken for SOAP calls or OAuth2 with a refresh-token flow for REST calls. Workday has no native webhooks for financial entities, so records are retrieved by polling with date-range filters on Get operations. Polling intervals typically range from 15 minutes for transactional entities to daily for reference data. Minimum safe interval is 5 minutes, as shorter intervals can trigger rate throttling.

How Asana works

Asana is a cloud work management platform that exposes tasks, projects, portfolios, users, teams, and workspace data through a REST API authenticated with a Personal Access Token or OAuth2 bearer token. Asana supports push webhooks with guaranteed delivery within 10 minutes and at-most-once semantics, with auto-delete after 24 hours of failed delivery. Asana has no native finance objects, so financial data such as invoices, POs, and GL accounts must be carried through custom fields, which are created and managed via the API.

What moves between them

Workday Financial Management is the source. ml-connector polls Workday at a configurable interval (typically 15 to 60 minutes) for new and updated purchase orders, invoices, and journal entries. Each record is transformed into an Asana task in a designated project, with vendor name, invoice amount, GL account, and cost center stored in Asana custom fields. Task status in Asana (new, in review, approved, rejected) can be read back as an approval phase and logged in Workday journal notes via a reverse sync. Suppliers and cost centers are synced once daily as reference data to maintain mapping accuracy.

How ml-connector handles it

ml-connector stores Workday ISU credentials encrypted and authenticates using WS-Security on every SOAP call or refreshes the OAuth2 bearer token when a REST call returns 401. It polls Workday on a schedule you set, using date-range filters to retrieve records modified since the last sync. For each invoice, PO, and journal entry, ml-connector creates a corresponding Asana task and populates Asana custom fields with financial attributes (vendor name, invoice amount, due date, GL account code). Asana custom fields are created on first run based on the Workday entity schema and are reused on subsequent syncs. Polling is pull-only, so there is no requirement for Workday webhooks. Task updates in Asana (owner assignment, status changes) are retrieved via Asana webhooks and appended to Workday journal notes as approval history. Rate limiting from Workday triggers exponential backoff with jitter, and every record pair carries a sync ID so reruns are idempotent. If an Asana task creation fails, the run is logged and can be replayed without duplicate task creation.

A real-world example

A mid-size manufacturing company runs Workday for accounts payable, procurement, and GL reporting, and uses Asana for operational planning across supply chain and accounting teams. Before the integration, procurement sent purchase orders via email to operations, who re-entered them into Asana by hand, and the accounts payable team had to chase spreadsheets to match Asana task status to Workday invoice state. With Workday Financial Management and Asana connected, each purchase order and invoice appears in Asana within minutes, pre-populated with vendor, amount, and due date. The operations team approves the PO in Asana, and the approval flows back to Workday, so accounts payable has real-time visibility into what has been approved and ready to pay. Month-end close is faster because the ledger and the task list are already aligned.

What you can do

  • Create Asana tasks for Workday purchase orders, invoices, and journal entries on a configurable polling schedule.
  • Store vendor name, invoice amount, due date, GL account, and cost center in Asana custom fields for filtering and visibility.
  • Map Asana task status changes (new, in review, approved, rejected) back into Workday approval notes via reverse sync.
  • Authenticate Workday with Integration System User credentials and WS-Security, or OAuth2 bearer token, and Asana with a Personal Access Token.
  • Poll Workday at safe intervals with date-range filters, handle rate limits with backoff, and replay failed syncs without creating duplicate tasks.

Questions

How often does ml-connector sync data between Workday Financial Management and Asana?
ml-connector polls Workday on a schedule you configure, typically 15 to 60 minutes for transactional entities like invoices and purchase orders. Reference data such as suppliers and cost centers sync daily. Because Asana supports push webhooks, task updates in Asana are received within minutes, so approvals flow back to Workday nearly in real-time.
What Workday Financial Management entities can be synced to Asana?
Purchase orders, supplier invoices, and journal entries are the primary transactional entities. Suppliers, GL accounts, and worktags are synced as reference data to populate Asana custom fields with vendor name, cost center, and account code. Journal entries carry the GL posting information so finance teams can track the source of every task.
Does ml-connector need Workday webhooks to work, or does polling cause delays?
Workday Financial Management has no native webhooks for financial entities, so ml-connector relies on polling with configurable intervals. Polling at 15 to 60 minutes is safe and does not trigger rate limits, so records typically appear in Asana within an hour. Asana updates are pushed via webhooks, so approval feedback reaches Workday quickly. This hybrid approach balances real-time visibility with Workday's API constraints.

Related integrations

Connect Workday Financial Management and Asana

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

Get started