
Zendesk
Overview
Zendesk offers CRM software for support, sales, and customer engagement designed to create better customer relationships. Integrate Zendesk with Superblocks to build powerful internal tools that tie together customer interactions, support data, and service workflows with the rest of your company's data.
Setting up Zendesk
Create an access token
To get started using Zendesk, choose your authentication method and configure your integrations based on the instructions below.
Username / Password Authentication
- Find your Zendesk tenant. It typically follows the format
https://your-tenant.zendesk.com
, whereyour-tenant
is your Zendesk tenant. - Copy and paste your username and password to configure your integration's connection
API Token Authentication
- Find your Zendesk tenant. It typically follows the format
https://your-tenant.zendesk.com
, whereyour-tenant
is your Zendesk tenant. - In Admin Center click Apps and integrations
- Under APIs select Zendesk API
- Click Add API token
- Copy the API token and configure your integration's connection as follows
- Email:
{your_email}/token
- Password: Your API token
- Email:
Learn more about Zendesk API Authentication
Add integration
Once you have an access token, you're ready to set up your Superblocks integration.
- In the web app, navigate to the Integrations page
- Click on the Zendesk tile
- Name the integration
- Paste your credentials into the relevant fields
- Optionally, add more configurations to set credentials for different environments
- Click Create
success
Zendesk connected Now you can use Zendesk in any Application, Workflow, or Scheduled Job.
Use Zendesk in APIs
Once your Zendesk integration is created, you can start creating steps in Application backend APIs, Workflows, and Scheduled Jobs to call Zendesk API actions. Zendesk actions are REST requests. To learn more about REST requests in Superblocks, see the Building REST requests guide.
Supported actions
Autocomplete Problems
Returns tickets whose type is "problem" and whose subject contains the string specified in the `text` parameter. You can specify the `text` parameter in the request body rather than the query string. Example: `{"text": "fire"}` #### Allowed For * AgentsList Requests
#### Allowed for * End UsersSearch Requests
Examples: * `GET /api/v2/requests/search.json?query=printer` * `GET /api/v2/requests/search.json?query=printer&organization_id=1` * `GET /api/v2/requests/search.json?query=printer&cc_id=true` * `GET /api/v2/requests/search.json?query=printer&status=hold,open` #### Pagination * Offset pagination only See [Using Offset Pagination](/api-reference/ticketing/introduction/#using-offset-pagination). #### Results limit The Search Requests endpoint returns up to 1,000 results per query, with a maximum of 100 results per page. See [Pagination](/api-reference/ticketing/introduction/#pagination). If you request a page past the limit (`page=11` at 100 results per page), a 422 Insufficient Resource Error is returned. #### Allowed For * End UsersShow Request
#### Sideloads The following sideloads are supported: | Name | Will sideload | ---------------- | ------------- | users | The email ccs for a request by side-loading users #### Allowed For * End UsersUpdate Request
Updates a request with a comment or collaborators (cc's). The end user who created the request can also use it to mark the request as solved. The endpoint can't be used to update other request attributes. #### Writable properties This endpoint can only update the following properties in the request. | Name | Type | Required | Description | | ------------------------ | ------- | -------- | ---------------------------------------------------- | | comment | object | no | Adds a comment to the request. See [Request comments](#request-comments) | | solved | boolean | no | Marks the request as solved. Example: `{"request": {"solved": "true"}}` | | additional_collaborators | array | no | Adds collaborators to the request. An email notification is sent to them when the ticket is updated. See [Adding collaborators](/documentation/ticketing/managing-tickets/creating-and-managing-requests#adding-collaborators) | #### Allowed For * End usersShow Satisfaction Rating
Returns a specific satisfaction rating. You can get the id from the [List Satisfaction Ratings](#list-satisfaction-ratings) endpoint. #### Allowed For * AdminsShow Reason for Satisfaction Rating
#### Allowed For * AdminsList Search Results
Use the ampersand character (&) to append the `sort_by` or `sort_order` parameters to the URL. For examples, see [Searching with Zendesk API](/documentation/ticketing/using-the-zendesk-api/searching-with-the-zendesk-api). #### Pagination * Offset pagination only Offset pagination may result in duplicate results when paging. You can also use the [Export Search Results](/api-reference/ticketing/ticket-management/search/#export-search-results) endpoint, which uses cursor-based pagination and doesn't return duplicate results. See [Pagination](/api-reference/introduction/pagination/) for more information. #### Allowed For * Admins, Agents and Light Agents #### Errors JSON Format Errors are represented as JSON objects which have the following keys: | Name | Type | Comment | --------------------- | ---------------------| -------------------- | error | string | The type of error. Examples: "unavailable", "invalid" | description | string | ##### Example Error ```js { "error": "unavailable", "description": "Sorry, we could not complete your search query. Please try again in a moment." } ```Show Results Count
Returns the number of items matching the query rather than the items. The search string works the same as a regular search.Search Tags
Returns an array of registered and recent tag names that start with the characters specified in the `name` query parameter. You must specify at least 2 characters. #### Pagination * Offset pagination only See [Using Offset Pagination](/api-reference/ticketing/introduction/#using-offset-pagination). #### Allowed For * AgentsList Ticket Fields
Returns a list of all system and custom ticket fields in your account. Cursor pagination returns a maximum of 100 records per page and fields are returned in the order specified by their id. If the results are not paginated every field is returned in the response and fields are returned in the order specified by the position and id. For accounts without access to multiple ticket forms, positions can be changed using the [Update Ticket Field](/api-reference/ticketing/tickets/ticket_fields/#update-ticket-field) endpoint or the Ticket Forms page in Zendesk Support (**Admin** > **Manage** > **Ticket Forms**). The Ticket Forms page shows the fields for the account. The order of the fields is used in the different products to show the field values in the tickets. For accounts with access to multiple ticket forms, positions can only be changed using the [Update Ticket Field](/api-reference/ticketing/tickets/ticket_fields/#update-ticket-field) endpoint because products use the order defined on each form to show the field values instead of the general position of the ticket field in the account. Consider caching this resource to use with the [Tickets](/api-reference/ticketing/tickets/tickets/#json-format) API. #### Pagination - Cursor pagination (recommended) - No pagination See [Pagination](/api-reference/introduction/pagination/). #### Allowed For * AgentsShow Ticket Field
#### Allowed for * AgentsUpdate Ticket Field
#### Updating drop-down field options You can also use the update endpoint to add, update, or remove options in a drop-down custom field. Updating field options for multi-select fields works exactly the same as drop-down field options. **Important**: Unless you want to remove some options, you must specify all existing options in any update request. Omitting an option removes it from the drop-down field, which removes its values from any tickets or macros. Use the `custom_field_options` attribute to update the options. The attribute consists of an array of option objects, with each object consisting of a `name` and `value` property. The properties correspond to the "Title" and "Tag" text boxes in the admin interface. Example request body: ```json {"ticket_field": { "custom_field_options": [ {"name": "Apple Pie", "value": "apple"}, {"name": "Pecan Pie", "value": "pecan"} ] } } ``` #### Example Request ```bash curl https://{subdomain}.zendesk.com/api/v2/ticket_fields/{id}.json \ -d '{"ticket_field": {"custom_field_options": [{"name": "Apple Pie", "value": "apple"}, {"name": "Pecan Pie", "value": "pecan"}]}}' \ -H "Content-Type: application/json" -X PUT \ -v -u {email_address}:{password} ``` #### Example Response ```http Status: 200 OK { "ticket_field": { "id":21938362, "type":"tagger", "title":"Pies", ... "custom_field_options": [ { "id":21029772, "name":"Apple Pie", "raw_name":"Apple Pie", "value":"apple", "default":false }, ... ] } } ``` #### Allowed for * AdminsDelete Ticket Field
#### Allowed for * AdminsShow Ticket Metrics
Returns a specific metric, or the metrics of a specific ticket. #### Pagination - Cursor pagination (recommended) - Offset pagination See [Pagination](/api-reference/introduction/pagination/). Returns a maximum of 100 records per page. #### Allowed For * AgentsGeneric HTTP Request
Every SaaS integration in Superblocks comes with a built in Generic HTTP Request Action. This is a powerful action you can use to call Zendesk API endpoints not in the Superblocks supported actions.
To use this action simply add the method, path, required query parameters, and body for the desired endpoint.
info
Learn more about REST requests in Superblocks in our Building REST requests guide.
Generic HTTP Requests use the authentication set up and base URL you've configured for your integration, making it an easy for your team to extend Superblocks Integrations to meet their needs.