ml-connector
Infor CloudSuiteZendesk

Infor CloudSuite and Zendesk integration

Infor CloudSuite runs your ERP: procurement, finance, supply chain, and inventory. Zendesk runs your support team. Connecting them lets support staff see the supplier invoice, purchase order, and payment context behind a customer inquiry without digging through the ERP. When a customer asks about an invoice or a PO, the record is already in Zendesk, reducing mean-time-to-insight and lifting support quality.

How Infor CloudSuite works

Infor CloudSuite (M3, SyteLine, Financials, Distribution, LN) exposes suppliers, invoices, purchase orders, GL accounts, customers, items, and payments through the ION API Gateway, a REST and OData interface authenticated via OAuth 2.0 service account credentials. The base URL is region and tenant-specific, extracted from each customer's .ionapi credentials file. CloudSuite has no native self-service webhooks; instead it offers ION Desk document flows that support push via BOD (Business Object Document) subscriptions, which require admin configuration and are not programmable via API. Most integrations poll the API for list transactions by modified date, respecting per-customer rate limits and the OAuth token lifetime, which is configurable from 1 to 24 hours. Write operations (supplier invoices, purchase orders) use either REST Add calls, which are not idempotent by default, or BOD-based Process flows configured in ION Desk.

How Zendesk works

Zendesk is a cloud support ticketing system that exposes tickets, users (customers and agents), organizations, and groups through a REST API authenticated via OAuth 2.0 authorization code flow or API token with basic auth. The API is scoped to each customer's subdomain. Zendesk supports both webhooks (configured via the Webhooks API or Admin Center; 9 event categories including ticket and user events) and polling. Webhook signatures use HMAC-SHA256 verification with the X-Zendesk-Webhook-Signature header. Zendesk does not natively store ERP data such as invoices, purchase orders, GL accounts, or items; supplier and invoice records are stored as custom fields on tickets or as linked user records. API tokens have no expiry; webhooks must be wired to a trigger or automation in Admin Center to fire.

What moves between them

ml-connector reads suppliers, invoices, purchase orders, and GL accounts from Infor CloudSuite on a polling schedule (typically daily or weekly) and posts them into Zendesk as custom fields on existing tickets, as supplementary records on user (customer) objects, or as organization metadata. The direction is CloudSuite-to-Zendesk; Zendesk data does not flow back into the ERP. Polling cadence is tied to your business cycle (e.g., after invoice posting runs or at day-end). Zendesk does not generate ERP-relevant events (tickets are support records, not procurement or finance transactions), so no reverse sync is necessary.

How ml-connector handles it

ml-connector extracts the base URL and OAuth endpoints from each customer's Infor CloudSuite .ionapi credentials file, then calls the ION API Gateway to list suppliers, invoices, and purchase orders, filtering by modified date to find new or changed records since the last run. It refreshes the OAuth bearer token proactively before expiry to avoid outages. For idempotency, it implements query-first dedup on the CloudSuite side (querying by invoice number before adding a new invoice record). On the Zendesk side, it stores both credential sets encrypted, uses OAuth 2.0 for authentication, and posts records either as custom fields on ticket threads (for invoice line items and PO details attached to a support inquiry) or as linked organization and user records (for supplier master data). It respects CloudSuite's 100-500 requests-per-minute rate limit and backs off on 429 responses. Every record carries a full audit trail, so any posting can be reviewed or replayed if a downstream integration fails.

A real-world example

A mid-market distribution company runs Infor CloudSuite M3 for procurement and accounts payable across three regions, and uses Zendesk for customer support. When a customer contacts support to dispute a shipment or delivery cost, the support team can now see the purchase order, invoice, and payment status from CloudSuite without leaving Zendesk. The integration polls M3 daily after invoice posting, pulling suppliers, invoices, and line items from the last 24 hours and enriching Zendesk user records with the customer's recent AP transactions. Support agents can view the PO number, invoice date, and payment terms on the customer record in Zendesk, cutting research time from 10 minutes to 30 seconds and reducing escalations to the finance team.

What you can do

  • Read suppliers, invoices, purchase orders, and GL accounts from Infor CloudSuite and post them to Zendesk as custom fields or linked records.
  • Authenticate Infor CloudSuite with OAuth 2.0 credentials extracted from each customer's .ionapi file, handling region-specific ION API Gateway URLs.
  • Poll Infor CloudSuite on a schedule you control, filtering by modified date to find new and changed records since the last run.
  • Implement query-first dedup on Infor CloudSuite to prevent duplicate invoice posts when retrying failed records.
  • Track OAuth token expiry and refresh proactively so integration outages do not occur mid-cycle.

Questions

What ERP records flow into Zendesk, and in which direction?
Suppliers, invoices, purchase orders, GL accounts, and customers flow from Infor CloudSuite into Zendesk. The direction is CloudSuite-to-Zendesk only; Zendesk does not send support or ticketing data back into the ERP. Records are posted as custom fields on tickets, supplementary fields on user objects, or organization metadata, depending on the record type.
How does ml-connector handle Infor CloudSuite's region-specific URLs and OAuth endpoints?
ml-connector extracts the base URL and OAuth endpoints from each customer's .ionapi credentials file, which contains the tenant ID and region. It then constructs the ION API Gateway URL dynamically for each customer, since CloudSuite publishes no shared base address. OAuth tokens are refreshed proactively before expiry to prevent authentication failures.
Does ml-connector handle the lack of native webhooks in Infor CloudSuite?
Yes. Because CloudSuite's self-service webhooks are not available (ION Desk document flows require admin configuration), ml-connector polls the API on a schedule tied to your business cycle (typically daily), filtering by modified date to find new and changed records. It implements query-first dedup to ensure invoices are not duplicated if a post fails and is retried.

Related integrations

Connect Infor CloudSuite and Zendesk

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

Get started