ml-connector
SAP S/4HANAZendesk

SAP S/4HANA and Zendesk integration

SAP S/4HANA runs your supply chain and finance, while Zendesk handles customer support tickets. Connecting the two keeps your support records aligned with your suppliers and customers. When a new supplier or customer is created or modified in SAP S/4HANA, that information syncs into Zendesk as an organization or user, so support agents can see the complete business context. Contact details, company information, and status changes flow automatically, eliminating manual record duplication and keeping support tickets linked to the correct supplier or customer.

How SAP S/4HANA works

SAP S/4HANA exposes suppliers, customers, purchase orders, GL accounts, and cost centers through OData V2 and OData V4 REST APIs, each scoped to a Communication Arrangement within the customer's SAP instance. Authentication uses OAuth 2.0 Client Credentials, with token endpoints and scopes per Communication Arrangement rather than universal scopes. Tokens are short-lived (typically 12 hours) and must be cached and refreshed before expiry. SAP S/4HANA has no native webhooks for cloud connectors, so data is read by polling with filters on LastChangeDateTime or delta tokens. The cloud product authenticates against tenant-specific URLs constructed from the tenant ID, and on-premise deployments require an additional sap-client query parameter.

How Zendesk works

Zendesk is a cloud-based customer support platform that manages tickets, users, organizations, and knowledge articles through its REST Support API. Authentication supports OAuth 2.0 authorization code flow (recommended for connectors) or API token with basic auth. Unlike ERP systems, Zendesk has no native finance entities: invoices, purchase orders, payments, GL accounts, or employees do not exist, and Zendesk's business model centers on support tickets and user identities. Zendesk supports both webhooks configured via the Admin Center and polling via the REST API. Webhook signature verification uses HMAC-SHA256 with the X-Zendesk-Webhook-Signature header. OAuth tokens in Zendesk do not expire (persist until revoked), and email fields on users are writable only at creation time.

What moves between them

Data flows from SAP S/4HANA into Zendesk in one direction. Supplier and customer records (business partners in SAP terminology) are read from SAP S/4HANA via OData queries filtered by LastChangeDateTime, then mapped to Zendesk organizations and users. Contact names, email addresses, phone numbers, and company identifiers flow into Zendesk user and organization records. The sync is scheduled based on how frequently your supplier and customer data changes in SAP S/4HANA, typically daily or weekly. SAP GL accounts and cost centers are read-only in SAP S/4HANA, so ml-connector reads them for mapping context but does not write them back to Zendesk, which has no GL entity model.

How ml-connector handles it

ml-connector stores the OAuth 2.0 Client Credentials for SAP S/4HANA encrypted, and manages the short-lived token lifecycle: refreshing before expiry and caching between calls to avoid redundant token requests. It queries the SAP S/4HANA OData endpoint with a timestamp filter to retrieve only changed business partners since the last sync, using the tenant-specific base URL and Communication Arrangement scope. On the Zendesk side, it authenticates with OAuth 2.0 and creates or updates organizations for SAP customers and users for SAP suppliers based on the business partner data. Email addresses are mapped where available, and phone numbers are stored in custom user fields. Since SAP S/4HANA has no webhooks, the sync runs on a schedule controlled by your configuration, with full audit trails on each record and automatic retry on network failures. Duplicate detection uses the SAP business partner ID as the external identifier in Zendesk, so the same supplier or customer is never created twice.

A real-world example

A mid-market manufacturing company uses SAP S/4HANA for procurement and supplies, and Zendesk for technical support. Before the integration, when a new supplier or customer contacted support, the support team had to search SAP S/4HANA manually to find the company record, or support would create a duplicate Zendesk organization with incomplete or outdated information. With SAP S/4HANA and Zendesk connected, supplier and customer organizations sync automatically from SAP S/4HANA into Zendesk each night. When a supplier calls with a support issue, the Zendesk agent sees the company name, location, contact email, and phone number already populated, and can link the ticket to the correct supplier record without re-entering data or searching external systems.

What you can do

  • Sync supplier and customer records from SAP S/4HANA into Zendesk as organizations and users.
  • Map SAP business partner IDs, names, contact details, and company information to Zendesk user and organization fields.
  • Refresh SAP S/4HANA OAuth tokens automatically before expiry and handle tenant-specific endpoints per customer instance.
  • Poll SAP S/4HANA on a schedule using LastChangeDateTime filters to capture only changed records.
  • Maintain a full audit trail on every sync and replay failed records if a downstream Zendesk call does not complete.

Questions

Which direction does data move between SAP S/4HANA and Zendesk?
Data flows from SAP S/4HANA into Zendesk. Supplier and customer business partner records are read from SAP S/4HANA and synced as organizations and users in Zendesk. Zendesk support tickets and user updates do not flow back into SAP S/4HANA, since SAP is the authoritative source for supplier and customer master data.
Why does the integration poll SAP S/4HANA instead of using webhooks?
SAP S/4HANA Cloud Public Edition has no native webhook system for cloud connectors, so ml-connector polls the OData API using LastChangeDateTime filters to retrieve only records that have changed since the last sync. This approach avoids constant manual re-keying and keeps Zendesk organizations and users in sync with SAP master data on a schedule you control.
How does ml-connector handle SAP S/4HANA's tenant-specific endpoints and token refresh?
ml-connector stores the OAuth 2.0 Client Credentials and Communication Arrangement scope per customer instance, constructs the tenant-specific OData endpoint, and manages the token lifecycle automatically. Tokens are cached and refreshed before expiry (typically before 12 hours elapse), and the integration fails safely if token refresh returns an error, preserving the encrypted credentials for retry.

Related integrations

Connect SAP S/4HANA and Zendesk

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

Get started