Understanding ZIS capabilities for building an integration

Before designing and building an integration with Zendesk Integration Services (ZIS), you should determine if the platform’s current capabilities are suitable for your use case and requirements.

The following table describes the criteria, capabilities, and limits to consider when deciding to use ZIS to build an integration.

Note: This table is subject to change as more capabilities are added to ZIS.

CriteriaSuitable for ZISPossibly suitable for ZISNot suitable for ZIS
Public or private integration?Private integrations used on Zendesk instance(s).Public integrations. Publishing integrations to the the Marketplace for use across multiple accounts is not currently supported on ZIS.
How is the workflow invoked?Events examples: Zendesk events such as User Created, Ticket Status Changed, or Custom Object Changed. Or inbound webhooks received from an external systemManual trigger. It may work if a Zendesk event or inbound webhook is generatedScheduled jobs or API polling (not supported)
Which systems?Zendesk to an external system or Zendesk-to-ZendeskExternal system-to-Zendesk. It depends on whether the right inbound webhooks are availableTwo external systems or no integration with Zendesk. ZIS is not a generic iPaaS
How many systems?Zendesk and one external systemZendesk and a few external systems. This is possible depending on the complexity of the integrationZendesk and many external systems. This use case is too complex to build and maintain efficiently
How many instances of each system?One Zendesk instance to one external instanceOne Zendesk instance to several external instancesSeveral external instances syncing into one Zendesk account or many Zendesk accounts to many external instances
Workflow/business logic complexitySimple. This consists of a few flows and narrow/shallow branching logic.Moderate. This consists of less than 20 flows and a few levels of branching logic. This may be mitigated using Lambda functions to implement logic in codeComplex. This consists of many flows and layers of wide,deep, or nested branching logic. This is probably too complex to build and maintain efficiently
External system API typesHTTP REST with JSON responseHTTP REST with non-JSON response. There’s additional complexity in parsing the response payloadGraphQL, SOAP/ XML, Streaming APIs, Websockets, etc are not supported by ZIS
External system API authentication methodsAPI key, bearer token, and OAuth 2.0OAuth 1.0
Data transformationSimple to moderate JSON transformation using jq, simple type conversions, math and string operations, simple conditional logic, iterating over nested object or array, and regexComplex JSON transformation using jq. This may become too complex to build and maintain efficientlyNiche type conversions such country to currency code or state code to state name, randomization functions, and encryption functions (not supported)
File and image handlingZIS does not support sending or receiving binary files such as images or PDF documents. These types of payloads and responses are likely to be corrupted by ZIS
Installation and configuration UISimple configuration surfaced in a Zendesk Apps framework appInstallation or configuration UI hosted elsewhere. Example: standalone middleware or within external a SaaS productComplex configurations
Limit: Zendesk API limitsAnticipated use of Zendesk APIs comfortably within the plan limitsAnticipated use of Zendesk APIs occasionally spiking above plan limits. Consider how the use case is impacted if rate limiting kicks inAnticipated regular use of Zendesk APIs beyond the plan limits. ZIS does not circumvent Zendesk limits
Limit: flow run timeUp to 100 secondsN/AOver 100 seconds ZIS terminates any ZIS flow whose run time exceeds 100 seconds. This includes when it is caused by a Wait state or iterating through a Map state
Limit: Flow overall memory consumptionTBCTBCTBC
Limit: triggering event sizeTBCTBCTBC
Limit: Action response payload sizeTBCTBCTBC
Limit: Flow invocations per secondTBCTBCTBC
Limit: iterations of a map stateUp to 100 iterationsN/AOver 100 iterations
Limit: state transitionsUp to 250 transitionsN/AOver 250 transitions