ml-connector
Oracle NetSuiteZendesk

Oracle NetSuite and Zendesk integration

Oracle NetSuite runs your financial operations and tracks every customer relationship in your ERP. Zendesk manages your support tickets and agent workflows. When the two systems are connected, your support team has immediate context on each customer's status in NetSuite, and closed support tickets automatically post back into NetSuite as case records for full audit and reporting. ml-connector bridges the two platforms so customer records stay in sync and support activity is captured in your ERP without manual handoffs.

How Oracle NetSuite works

Oracle NetSuite exposes customers, vendors, invoices, orders, payments, employees, departments, and accounts through SuiteTalk REST Web Services via HTTPS, with base URLs scoped to the customer account ID. Authentication uses OAuth2 with a client certificate or token-based authentication. Event Subscriptions push webhooks when supported record types (customers, invoices, sales orders) are created or modified, though webhook signatures are not HMAC-signed; instead, ml-connector validates calls against IP allowlists and shared secrets in the URL. For historical or bulk reads, SuiteQL polling queries the database directly. OAuth tokens remain valid for 60 minutes and do not refresh in the M2M flow.

How Zendesk works

Zendesk is a cloud support ticketing platform that manages tickets, users (agents and customers), and organizations (companies) through REST APIs secured with OAuth2 authorization code flow or legacy API tokens. Every API call is scoped to the customer's subdomain. Zendesk webhooks sign all event payloads with HMAC-SHA256 and can be configured to fire on ticket events (created, updated, solved, closed, assigned), user events (created, updated, deleted), and organization events. Zendesk has no native finance or ERP entities; it is read-only on user email fields after creation and does not support bulk deletes or account-level data exports.

What moves between them

Customer records flow from Oracle NetSuite into Zendesk as organizations and users, with Zendesk organizations linked to NetSuite customer IDs via custom fields. When a support ticket is closed in Zendesk, ml-connector reads the ticket details and posts a support case record back into Oracle NetSuite, mapped to the original customer. Reference data such as support tiers and customer categories align bidirectionally so tickets land on the correct Zendesk group. Support ticket syncs run on a schedule tied to your support workflow cadence rather than waiting for Zendesk webhooks.

How ml-connector handles it

ml-connector stores OAuth credentials for both systems encrypted and uses Oracle NetSuite certificate-based authentication on the client side. It subscribes to Zendesk webhook events for ticket updates and validates each incoming webhook signature with HMAC-SHA256 using the shared webhook key. On the NetSuite side, ml-connector polls SuiteQL for customer changes and posts new customer data to Zendesk as organization and user records, mapping NetSuite customer IDs to Zendesk custom fields so tickets can later be linked back. When a Zendesk ticket closes, ml-connector reads the ticket details via REST polling and creates a corresponding case record in NetSuite with the original customer ID, ticket ID, and summary. NetSuite OAuth tokens expire every 60 minutes, so ml-connector refreshes them on demand. Zendesk rate limits are tracked and honored with exponential backoff. Every record carries an audit trail so replays can recover from transient failures.

A real-world example

A mid-market B2B software company runs Oracle NetSuite for accounting and customer management, and uses Zendesk for a global support operation spanning multiple time zones. Before the integration, the support team received customer support requests but had to manually search NetSuite to understand the customer's contract status, invoice history, and outstanding issues. After each ticket was resolved, the team created a separate case record in NetSuite by hand, duplicating effort and risking information loss. With Oracle NetSuite and Zendesk connected, every incoming support request shows the customer's NetSuite profile and contract information in Zendesk, and when an agent closes a ticket, the case automatically posts into NetSuite. Month-end reconciliation of customer issues and resolutions is now automatic.

What you can do

  • Sync customer records from Oracle NetSuite to Zendesk as organizations and users, with NetSuite IDs stored in custom fields for linking.
  • Post closed support tickets from Zendesk back to Oracle NetSuite as case records, preserving ticket ID and resolution details.
  • Validate Zendesk webhook signatures using HMAC-SHA256 and store both platform credentials encrypted.
  • Authenticate Oracle NetSuite with OAuth2 and certificate-based client credentials, and Zendesk with OAuth2 authorization code flow.
  • Poll on a schedule tied to your support operations and payroll calendar, with retries and a full audit trail on every record.

Questions

Which direction does customer and ticket data move between Oracle NetSuite and Zendesk?
Customers flow from Oracle NetSuite into Zendesk as organizations and users, mapped via NetSuite customer ID. Support tickets flow the opposite direction: when a Zendesk ticket is closed, ml-connector creates a case record in Oracle NetSuite linked to the original customer, preserving the ticket ID and summary. This two-way flow ensures your support team has customer context and your finance team has a complete record of all customer interactions.
How does the integration handle Oracle NetSuite's lack of HMAC signatures on Event Subscriptions?
Oracle NetSuite Event Subscriptions do not include HMAC signatures, so ml-connector validates incoming webhook calls against IP allowlists and shared secrets passed in the webhook URL instead of comparing a signature. For extra security, ml-connector also uses OAuth2 certificate-based authentication on all outbound NetSuite calls and validates each Zendesk webhook signature with HMAC-SHA256 on the Zendesk side.
What happens to customer email and support tier information when records sync between systems?
Oracle NetSuite customer email and support tier information is read from NetSuite and written to Zendesk organizations and user records as custom fields. In Zendesk, the email field on users is writable only at create time; after that, changes are recorded as secondary emails. ml-connector handles this limitation by creating users once with the primary email and then maintaining tier information via custom fields in subsequent updates. NetSuite remains the source of truth for customer status.

Related integrations

Connect Oracle NetSuite and Zendesk

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

Get started