Sage X3 and Zendesk integration
Sage X3 runs finance, procurement, and inventory for mid-market manufacturers and distributors. Zendesk runs customer support. Connecting the two keeps your support tickets visible inside the ERP, attached to the customer or supplier who opened them. Support issues that require cost allocation, parts reservation, or procurement action are captured in X3 alongside the original ticket, and your finance team has the full chain of context without hunting through email or a separate ticketing system.
What moves between them
Support tickets flow from Zendesk into Sage X3. When a new or updated ticket arrives in Zendesk, ml-connector reads the ticket event, locates the related user (customer or supplier), and creates or updates a document record in X3 attached to that customer or supplier. Reference users in Zendesk are synced to X3 customer or supplier master records where they do not already exist. Metadata like ticket subject, status, and assignee are stored in X3 as document fields. The flow is one-way from Zendesk into X3; X3 records do not write back to Zendesk.
How ml-connector handles it
ml-connector presents OAuth2 credentials to Zendesk and accepts either HTTP Basic or JWT OAuth2 credentials for Sage X3 on the customer-specific server URL. It handles X3's 5-minute access token expiry by refreshing before each call and tracks token refresh timing to prevent authentication failures. Zendesk tickets arrive via webhook events which ml-connector verifies using HMAC-SHA256 signatures. For each ticket, ml-connector looks up the associated Zendesk user in X3's customer or supplier master records by matching email or name; if no match exists, it creates a new customer or supplier stub. The ticket is then upserted into X3 as a document record linked to that customer or supplier. Because Sage X3 does not support outbound webhooks, ml-connector can also poll Zendesk for ticket and user changes at regular intervals and replay missed events. Every ticket and user mapping carries a full audit trail in X3, and failed document creates can be replayed manually.
A real-world example
A mid-market manufacturing and distribution company runs Sage X3 for procurement, inventory, and finance, and Zendesk for customer support. Before the integration, support tickets arrived in Zendesk but were disconnected from the ERP. When a customer reported a late shipment or defective part, the support agent opened a ticket in Zendesk, and the warehouse or procurement team had to search email or a separate chat for context, then manually create a reference record in X3. With Sage X3 and Zendesk connected, each support ticket becomes a document linked to the customer in X3, capturing the support context inside the ERP. The procurement team can now see ticket history inside X3 when investigating a customer issue, and cost allocation for customer support cases flows directly into the ERP without re-keying.
What you can do
- Sync Zendesk support tickets into Sage X3 as documents linked to customers and suppliers.
- Map Zendesk users to X3 customer and supplier master records by email and name, and create new X3 entities when no match exists.
- Bridge OAuth2 authentication to Zendesk with HTTP Basic or JWT Bearer authentication to Sage X3.
- Handle X3's 5-minute token expiry and Zendesk's webhook signature verification automatically.
- Receive Zendesk ticket and user events via webhooks or poll on a schedule you define.
Questions
- Which direction do tickets flow between Sage X3 and Zendesk?
- Tickets flow one-way from Zendesk into Sage X3. When a ticket is created or updated in Zendesk, ml-connector creates or updates a corresponding document record in X3 linked to the customer or supplier who opened the ticket. Support notes and ticket status are captured in X3, but the primary ticket authority remains in Zendesk.
- How does ml-connector map Zendesk users to Sage X3 customers and suppliers?
- ml-connector matches Zendesk user email addresses and names against X3 customer and supplier master records. If an exact match exists, the ticket is linked to that customer or supplier in X3. If no match is found, ml-connector can create a new customer or supplier stub in X3 so the ticket is not lost and can be assigned later.
- How does ml-connector handle Sage X3's 5-minute token expiry and lack of webhooks?
- ml-connector tracks X3 token refresh timing and refreshes the access token before it expires, so every API call succeeds without authentication failures. Because X3 does not emit outbound webhook events, ml-connector receives ticket updates from Zendesk via webhooks (which Zendesk does support) and can also poll X3 on a schedule to detect any changes since the last sync.
Related integrations
More Sage X3 integrations
Other systems that connect to Zendesk
Connect Sage X3 and Zendesk
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started