100 Fields To Manage

Helps Zendesk Admins to hide, disable, show, enable and make fields required

Zendesk Support app enables advanced Zendesk Administrators to manage ticket, user and organization fields behaviour. App allows hiding, disabling, showing, enabling and making fields required.

Installation

Supported browsers

App was built with Zendesk system requirements in mind and should work in all supported browsers.

Limitations & Technology

App was built using

and bounded by all limitations and technical and legal restrictions of these technologies.

License

Software is Licensed under the Apache License, Version 2.0.
Software is the subject of Terms and Conditions

Settings & configuration

Use this section to understand app settings and app configuration. Settings grouped according by app features.

TICKET: Required fields (optional)

Required fields feature allows listing ticket fields that should have any value at every ticket submission. Fields validation happen when Agent press Submit button. If any of visible required fields are missing value the ticket submission will be interrupted, Agent will be informed about ticket fields missing value in form of pop-up.

TICKET: Fields reference

Use the following ticket fields reference in App setting page to configure required fields. Although, other field references may work, the app was only tested with the following references.

TICKET: hide / disable / show / enable fields (optional)

This app feature allows to hide / disable / show / enable fields and field values on new and existing ticket screen.

All these functions utilising the same Zendesk Apps framework (ZAF) API. Hence the same fields reference structure cam be applied to all of them.

TICKET: Fields reference

Use ticket fields reference below to hide / disable / show / enable ticket fields.

Subject, Description, Attachments, Macros, Apps tray, Post Save Action can not be hidden.

At the moment of publishing this app the tests with Credit Card field type revealed that ticket fields of this type can not be disabled. This may be fixed by Zendesk later.

TICKET: Field value reference

There are two possible ways to refer to a field value:

  1. By value identifier. For example, status.optionValues:new will only refer to the record in status field which has value new.
  2. By value zero based index. For example, status.optionValues.0 will only refer to the very first value in status field. On new ticket screen the very first record in status field is ‘new’, so “Submit as New” option will be referred. On existing and assigned tickets, the very first record in status field is ‘open’, so “Submit as Open” option will be referred.

Note the difference in syntax:

  1. {FIELD IDENTIFIER}.optionValues:{VALUE} - optionValues-colon-value
  2. {FIELD IDENTIFIER}.optionValues.{INDEX} - optionValues-dot-index

Drop-down fields mat have optional default values. If default value will be hidden the field will default to "-".

If using{FIELD IDENTIFIER}.optionValues.{INDEX} to hide all options under expandable drop-down option (e.g. drop-down titles that using "::" separator) the parent level option will still be visible, but not selectable. To hide the parent level including all sub-levels use custom_field_{TICKET FIELD ID}.optionGroups.0 to refer such records by index.

Assignee field

Assignee field is listing Groups and Agents where ticket can be assigned to.

Index based reference is possible assignee.optionValues.{GROUP ZERO BASED INDEX}

Status field

Status field is Submit button in Zendesk Agent UI

Index based reference is possible status.optionValues.0
Status Closed is not presented in Submit button. Hence can not be referred.
Hiding all available options for status will keep Submit button visible and active, but none of the status will be displayed. The text of Submit button will also be hidden.

Type field

System field Type with possible values: Questions, Incidents, Problems, or Tasks

Index based reference is possible type.optionValues.0

Priority field

System field Priority with 2 possible set of values configurable in field settings: “Low, Normal, High, or Urgent” or “Normal or High”.

Index based reference is possible priority.optionValues.0

Ticket form

Ticket Form is Zendesk feature available on Enterprise and above Zendesk plans. Ticket Forms referred by form id. Which can be seen as a number in URL on Ticket Form configuration page.

Index based reference is possible ticket_form_id.optionValues.0

Attempt to hide default Ticket Form will result in the following behaviour. When new ticket screen is opened the default form will be visible in Ticket Form selector. As soon the ticket form has changed the default value will disappear from the form selector.

Ticket Sharing

Sharing is system ticket drop-down listing available sharing agreement with other Zendesk instances. This field is only visible when Zendesk account has at least one active accepted ticket sharing agreement. Ticket sharing records referred by sharing agreement id. Which can be found in the link for agreement ‘view’ or via API.

Index based reference is possible sharedWith.optionValues.0
For referring to the very first value in Sharing field (e.g. “-”) use index based reference: sharedWith.optionValues.0

Custom fields

Any custom ticket field which has options. At this moment only ticket Drop-down list (tagger) was tested with the following reference.
Custom fields referred by Zendesk field ID. Which can be found in ticket field settings page.
Custom field value is the tag associated with the value. Tags and values can be found in ticket field settings page.

Index based reference is possible custom_field_{TICKET FIELD ID}.optionValues.0
For referring to the very first value in custom drop-down (e.g. “-”) use index based reference: custom_field_{TICKET FIELD ID}.optionValues.0

USER: hide / show fields (optional)

Disabling and enabling user fields, hiding, showing, disabling and enabling user field values is not currently supported by Zendesk Apps framework (ZAF) v2.

USER: Fields reference

User name, email, phone, twitter, Facebook, “+ add contact”, “+ New Ticket”, Created, Updated, Last sign-in, Apps tray, ticket Views, Organization tab are not supported.

ORGANIZATION: hide / show fields (optional)

Disabling and enabling organization fields, hiding, showing, disabling and enabling organization field values is not currently supported by Zendesk Apps framework (ZAF) v2.

ORGANIZATION: Fields reference

Organization name, options, Created, Updated, Apps tray, ticket Views, User tab are not supported.

Exclude agents by groups / tags / emails / organization (optional)

Exclude agents feature allows listing Agents for whom the app will not run. In app settings it is possible to provide Agent Group ID(s), Tag(s), Primary email address and/or organization ID(s).

As soon as app is loaded:

  1. it will get current Agent attributes (groups, tags, email and organizations)
  2. check whether any Agent attributes listed in app settings
  3. if at least one attribute will be found the app will not run. Means no ticket/user/organization fields will be hidden or disabled
  4. in all other cases the app will run

Exclude agents feature makes it possible to create more granular ticket/user/organization fields behaviour. For example, app may not run for Zendesk Admins and Manager allowing them to see and edit all the fields. While hide/disable fields for regular agents.

In case app behaviour needs to be defined by Agent role the native app settings can be used. Use “Role restrictions” section under app’s “General settings” tab.

Exclude agents by Groups (optional)

Provide comma separated list of Agent group IDs. If current Agent belongs to one or more of listed groups the app will not run.

Group ID can be taken from Group view/edit URL or via Zendesk REST API.

Value example: 11223344,55667788 Where 11223344 and 55667788 are Zendesk group IDs.

Exclude agents by Tags (optional)

Provide comma separated list of Agent tags. If current Agent profile contains at least one listed tag the app will not run.

Agent tags can be taken from Agent profile or custom user drop-downs.

Value example: type_l1,role_manager Where type_l1 and role_manager are Agent tags.

Exclude agents by Email (optional)

Provide comma separated list of Agent(s) email addresses. If primary email of current Agent profile is listed the app will not run.

Agent primary email address can be seen in Agent profile.

Value example: [email protected],[email protected] Where [email protected] and [email protected] are Agent email addresses.

NOTE: Only primary email address can be used. Secondary emails will be ignored.

Exclude agents by Organization (optional)

Provide comma separated list of Agent organisation IDs. If current Agent belongs to one or more of listed organisation the app will not run.

Organization ID can be seen in URL when viewing organization profile or via API.

Value example: 99887766,55443322 Where 99887766 and 55443322 are Zendesk organization IDs.

Error message when required fields are missing values (optional)

Error message is the text displayed when ticket submission is interrupted due to required fields missing values. Default value is The following fields/settings are marked as required for submitting this ticket:.

If error messaged is not provided the app will default to localised version of the message.
If error message is provided the app will use this message.

Optional delay in milliseconds (optional)

Optional delay is intended to solve possible conflicts between several installations of this app or between this and other apps that handling fields. Optional delay will pause execution of the code for N milliseconds allowing other apps to complete their actions first. For example, if optional delay will be set to 1000 it will delay the code execution for 1 second.

Optional delay field is expecting numeric value from 0 to infinity. Value example: 2000 Where 2000 stays for 2000 milliseconds or 2 seconds delay. Default value is 0. Means nothing will delay the code execution.

Optional delay is recommended to be set to 1000 when used together with show or enable features of this app.

Optional delay is not applied to Required ticket fields feature.

Use cases

These are some app use cases overview.

Require user information for new tickets

When creating a ticket Agent should always provide client ID into appropriate ticket text field.
To make this happening add ticket field ID custom_field_{TICKET FIELD ID} into TICKET: Required fields (optional) setting of the app and make sure app runs for desired Agent category.

Private comment only for new starters

Often newly started agents are not allowed to communicate with customers from day one. New agents are welcomed to pick (or get assigned to them) some tickets where they allowed to leave private comments only. So more experienced colleagues can review those comments. To make sure new starters never send public reply by accident the app can be configured in the following way:

Unwanted values in System Type field

System Type field can only have these 4 values Questions, Incidents, Problems, or Tasks. Some values may not be relevant to the business and should never be used. For example, “Incidents” and “Problems” are 2 unwanted values which should be hidden.

Ticket fields that controlled by a macro

Some business would like to have “Internal status” drop-down to be set only by a macro and never manually. To make this field visible and editable only by business rules the app can be configured as follows.

Hide sensitive info on user profile

In some cases user profiles may contain information that should not be easily visible for Agent. For example, NPS rating given by specific customer. To answer this the app can hide user fields that contains NPS related information.

Show time tracking fields on a ticket

If you use Time Tracking app and would like to show to your Admins 2 hidden ticket fields that this app silently use on every ticket consider the following configuration: