ml-connector
Sage X3Asana

Sage X3 and Asana integration

Sage X3 manages manufacturing, procurement, and finance across multiple sites. Asana coordinates project and task workflows across your teams. Connecting them surfaces procurement activities and purchase order changes directly into the Asana workspace where project teams and procurement staff work together. New purchase orders, supplier changes, and order receipts in Sage X3 flow into Asana as tasks, enriched with cost center, GL account, and amount so every team sees real-time procurement status without jumping between systems.

How Sage X3 works

Sage X3 exposes suppliers, customers, purchase orders, supplier invoices, GL accounts, cost centers, products, and GL entries through REST (api1) and GraphQL (Xtrem) APIs. The REST endpoint uses HTTP Basic auth or OAuth2 with a customer-specific server URL, port, and folder name; GraphQL requires OAuth2 client credentials. Access tokens expire in 5 minutes with 30-day refresh tokens. Sage X3 has no outbound webhooks or native event notifications, so integration partners poll using updatedDate and modifiedDateTime fields to detect changes. Default page size is 20 records. On-premise is the dominant deployment; cloud SaaS is available but requires Sage-managed hosting.

How Asana works

Asana exposes tasks, projects, portfolios, teams, users, and workspaces through REST API with Personal Access Token or OAuth2 bearer auth. Asana also supports outbound webhooks at workspace and portfolio level with at-most-once delivery, typically within 1 minute and guaranteed within 10 minutes, with automatic deletion if no 2xx response is received for 24 consecutive hours. Asana has no native finance objects but supports custom fields to carry financial metadata such as GL accounts, cost centers, and order amounts. Users and workspace creation are read-only.

What moves between them

The main flow runs from Sage X3 into Asana. ml-connector polls purchase orders, supplier records, and order changes from Sage X3 on a configurable schedule and creates or updates corresponding Asana tasks in designated projects. Supplier records and cost center master data are synced first so that every task references a valid supplier and cost center in custom fields. Purchase order amounts and GL account mappings are carried as task custom field values. The integration typically runs daily or on-demand to pick up orders created overnight or during the business day. Asana webhooks are not used for inbound data because the source (Sage X3) has no push capability.

How ml-connector handles it

ml-connector stores Sage X3 credentials with the customer-specific server URL and folder name, and authenticates using the configured OAuth2 or HTTP Basic method. On the Asana side it stores a Personal Access Token or OAuth2 credentials, then uses Asana's custom field API to ingest GL account, cost center, and supplier reference fields. Because Sage X3 has no webhooks, ml-connector polls on a schedule, using the updatedDate field to find only records changed since the last run, reducing API traffic. Asana access tokens are refreshed before expiry. When a purchase order is read from Sage X3, the connector looks up or creates the matching Asana project per cost center, then creates a task with the order number, supplier name, amount, and GL account. Supplier and cost center records are validated against the master tables in Sage X3 before mapping so that invalid dimensions do not propagate. If an Asana task create fails (for example, due to a missing cost center project), the record is logged with full audit trail and can be replayed manually. Rate limits and polling intervals are tuned to stay within both systems' documented and undocumented constraints.

A real-world example

A mid-market manufacturer with multiple distribution centers runs Sage X3 for procurement, inventory, and finance. The procurement team uses Asana for order tracking and project coordination. Before the integration, procurement staff entered Sage X3 purchase orders, then manually created matching tasks in Asana, duplicating the supplier name, order amount, and cost center on each entry. After every new order was created in X3, someone had to update the corresponding Asana task with the latest status. With Sage X3 and Asana connected, every new or updated purchase order in X3 automatically creates or updates an Asana task in the right project with the cost center and GL account pre-filled in custom fields. The procurement team sees real-time order status in their workflow without manual re-entry, and project managers see cost impact directly on their tasks.

What you can do

  • Poll Sage X3 for new and updated purchase orders, supplier records, and cost center master data on your schedule.
  • Create and update Asana tasks from Sage X3 purchase orders, with supplier name, order amount, and GL account carried in custom fields.
  • Map Sage X3 cost centers to dedicated Asana projects so procurement activities organize by business unit.
  • Store Sage X3 server URL, folder name, and credentials securely, and refresh short-lived OAuth2 tokens before expiry.
  • Track every record change in a full audit log, with retry and replay for failed Asana task creates.

Questions

Does ml-connector push purchase order updates from Asana back into Sage X3?
No. The integration is one-way from Sage X3 into Asana. Sage X3 is the source of truth for purchase orders, suppliers, and GL accounts. Changes made to Asana tasks do not flow back to X3; Asana is used for visibility and team coordination.
How often does ml-connector check for new purchase orders in Sage X3?
The polling schedule is configurable per deployment. Most customers run daily overnight syncs to capture orders created during the business day. More frequent polling (hourly or on-demand) is possible but will consume more API quota from both systems.
What happens if an Asana task create fails because a cost center does not exist?
The record is logged with the full error in the audit trail, tagged as failed, and held for manual review. Once the missing cost center is added to Sage X3, the connector can replay the purchase order record and create the task with the correct cost center project mapping.

Related integrations

Connect Sage X3 and Asana

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

Get started