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.
|Criteria||Suitable for ZIS||Possibly suitable for ZIS||Not 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 system||Manual trigger. It may work if a Zendesk event or inbound webhook is generated||Scheduled jobs or API polling (not supported)|
|Which systems?||Zendesk to an external system or Zendesk-to-Zendesk||External system-to-Zendesk. It depends on whether the right inbound webhooks are available||Two external systems or no integration with Zendesk. ZIS is not a generic iPaaS|
|How many systems?||Zendesk and one external system||Zendesk and a few external systems. This is possible depending on the complexity of the integration||Zendesk 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 instance||One Zendesk instance to several external instances||Several external instances syncing into one Zendesk account or many Zendesk accounts to many external instances|
|Workflow/business logic complexity||Simple. 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 code||Complex. 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 types||HTTP REST with JSON response||HTTP REST with non-JSON response. There’s additional complexity in parsing the response payload||GraphQL, SOAP/ XML, Streaming APIs, Websockets, etc are not supported by ZIS|
|External system API authentication methods||OAuth 2.0||API key and basic authentication are not recommended. It could be done with ZIS Configs but is not end-to-end encrypted.||OAuth 1.0|
|Data transformation||Simple to moderate JSON transformation using JQ, simple type conversions, math and string operations, simple conditional logic, iterating over nested object or array, and regex||Complex JSON transformation using JQ. This may become too complex to build and maintain efficiently||Niche type conversions such country to currency code or state code to state name, randomization functions, and encryption functions (not supported)|
|Installation and configuration UI||Simple configuration surfaced in a Zendesk Apps framework app||Installation or configuration UI hosted elsewhere. Example: standalone middleware or within external a SaaS product||Complex configurations|
|Limit: Zendesk API limits||Anticipated use of Zendesk APIs comfortably within the plan limits||Anticipated use of Zendesk APIs occasionally spiking above plan limits. Consider how the use case is impacted if rate limiting kicks in||Anticipated regular use of Zendesk APIs beyond the plan limits. ZIS does not circumvent Zendesk limits|
|Limit: flow run time||Up to 100 seconds||N/A||Over 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 consumption||TBC||TBC||TBC|
|Limit: triggering event size||TBC||TBC||TBC|
|Limit: Action response payload size||TBC||TBC||TBC|
|Limit: Flow invocations per second||TBC||TBC||TBC|
|Limit: iterations of a map state||Up to 100 iterations||N/A||Over 100 iterations|
|Limit: state transitions||Up to 250 transitions||N/A||Over 250 transitions|