Plex and Asana integration
Plex runs your manufacturing operations and financials. Asana organizes your team's work and projects. Connecting the two brings purchase order status and part tracking into your project team's daily workflow, and pushes completion data back into Plex for receipt reconciliation. ml-connector bridges Plex's REST and SOAP APIs with Asana's webhook-driven event system, handling authentication, polling, and the audit trail for every record that moves between them.
What moves between them
Plex purchase orders and parts flow into Asana on a 10-minute polling cycle, creating or updating tasks and projects with financial metadata mapped to Asana custom fields. Each Plex part becomes an Asana project with GL account codes stored in custom fields for cost allocation. When an Asana task is marked complete, ml-connector posts the completion back to Plex as an inventory receipt against the original purchase order, closing the loop. Supplier and GL account reference data flow both directions to keep custom field definitions and team assignments aligned.
How ml-connector handles it
ml-connector polls Plex REST endpoints every 10 minutes filtered by modified_date, storing both Plex OAuth 2.0 and Asana Bearer token credentials encrypted. For Plex SOAP DataSources, it maintains per-datasource state (last polled timestamp) to avoid re-processing historic rows. It maps Plex GL accounts to Asana custom field keys, creating the custom field schema on first contact if missing. Each Plex purchase order title becomes an Asana task; Plex part descriptions become Asana project names. When Asana webhook events signal task completion, ml-connector batches them and posts inventory receipts to Plex's REST API with the purchase order release ID and part number. Retries use exponential backoff against Plex rate limits (HTTP 429) and Asana's 10-minute webhook guarantee. Every record carries source IDs (Plex ID, Asana task ID) so re-runs detect duplicates. Failed Plex SOAP calls are instrumented with the datasource name and procedure semantics tested per customer configuration, since SOAP endpoints are not guaranteed idempotent.
A real-world example
A mid-sized aerospace supplier manufactures parts for OEMs under long-term contracts and uses Plex to manage production, inventory, and financial accounting across three plants. The procurement team uses Asana to track inbound purchase orders from suppliers and work alongside production engineers to log part receipts and quality checks. Before the integration, the procurement team managed two separate systems: they checked Plex daily for new PO releases and manually created Asana tasks to track expedites and receipts, then re-entered completion data back into Plex by hand to close the loop. With Plex and Asana connected, each new purchase order appears as an Asana task in the procurement team's workflow within 10 minutes, complete with GL account codes for cost allocation. When the production team marks receipt complete in Asana, the receipt posts back to Plex automatically, reconciling inventory counts and cost postings to the GL without manual re-keying.
What you can do
- Sync Plex purchase orders and parts into Asana tasks and projects on a 10-minute polling cycle.
- Map Plex GL accounts and cost centers to Asana custom fields for financial tracking and cost allocation.
- Push task completions from Asana back to Plex as inventory receipts against purchase order releases.
- Authenticate Plex with OAuth 2.0 (REST) and Basic auth with company code (SOAP), and Asana with Bearer token.
- Detect and skip duplicate syncs using Plex and Asana ID pairs, with retry and full audit trail on every record.
Questions
- How does ml-connector handle Plex's lack of native webhooks?
- Plex offers only polling, so ml-connector polls the Plex REST API every 10 minutes filtering by modified_date to detect new and changed purchase orders and parts. For bulk historical loads or Plex SOAP DataSources, it can also schedule flat-file SFTP extracts. Each polling cycle tracks the last sync timestamp per entity type to avoid re-processing old records.
- Where do purchase order costs and GL account codes live in Asana?
- Asana has no native finance objects, so ml-connector stores Plex GL account codes and cost center mappings in Asana custom fields, created and maintained per customer configuration. Custom field keys are derived from Plex GL account names, allowing the procurement team to see cost allocations directly in Asana task details.
- What happens when a task is marked complete in Asana?
- ml-connector receives the completion event via Asana webhook and batches it with other completions from the same polling cycle. It then posts an inventory receipt to Plex's REST API, linking the receipt to the original purchase order release and part number. If the Plex POST fails, the record is retried with exponential backoff until success or manual intervention.
Related integrations
More Plex integrations
Other systems that connect to Asana
Connect Plex and Asana
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started