
End-User access for Custom Objects and Lookup Fields
Zendesk’s Custom Objects, released last year, enable you to expand platform data, like linking assets or contracts to tickets. Initially, end-users couldn’t interact with custom objects, but a recent update allows you to add Lookup Fields in forms.
When Zendesk released their Custom Objects last year, they made it possible to expand the existing ticket, user, organization objects in the platform with any data type you needed to enrich your ticket and agents experience.
You can use custom objects to store assets like computers or printers, you can store service contracts or purchased licenses, or you can use it to build fun demo's and store movies or Pokémon within the platform.
Custom objects can be linked to tickets via Lookup Fields and, when linked, will show more detailed detail right next to a ticket when an agent handles it. When linking – for example – service contracts you can see its duration and services within the contract. Or when linking an employees laptop you can see its type, operating system and warranty duration.
One element that was missing was a way for end-users to interact with custom objects. Where agents could fill in lookup fields in the ticket sidebar, you couldn't make these same fields available to end-users, like you can with regular drop-down or text fields.
In part 4 of my Custom Objects series last year I showed a workaround leveraging the Zendesk API, an external worker and modifications to the Help Center. But luckily, with Zendesk's latest Custom Objects release, this can now be done natively!

What's possible now
Mid summer Zendesk released the ability to use placeholders in macros that pulled data from Custom Objects. To demonstrate that capability I created a Custom Object to store movie details. If a visitor of my movie theater showed interested in a movie, we could use those placeholders to reply to their email with more information.
In that article I purposefully used email as an example to work around the fact that there is no elegant way to ask for that information in forms. Or at least not while filling in the ticket field that contains the movie without resorting to custom code.
Now, with this new Custom Objects for the Help Center release we can take an existing or new Lookup Field and give permissions to an end-user to view or edit that field from within a form or request page.
This way, I can ask a customer to select a movie, a trainer to select a Pokémon or an employee to select a laptop from a nice list.
You might wonder what the benefit of these kind of Lookup Fields is compared to regular drop-down fields. For one, Lookup fields can be filtered and only show those records that apply to the current user, organization or other condition.
Secondly, even though the customer still sees a list of options, your agents can see all related data to a customer's choice (warranty date, SLA type, movie genre,...) giving them more context when working on tickets. And the record editor in Agent Workspace is a lot nicer to work in than the dropdown editor in the Admin Center.
Setup
Making Custom Object data available to end-users is a three step process.
Create a custom object
This first step is obvious, but in order to make data available to the end-user, you should create a Custom Object type in the Admin Center, and add data via the Record editor in Agent Workspace, or by bulk importing data via the Admin Center.

Create or Update a Lookup Field
The next step is adding the Custom Object to your forms. If you previously created a Lookup Field for your agents, you can update its settings to make them viewable or editable to end-users.

If you haven't yet, create a new Lookup Field and make sure to select either the Customers can edit or Customers can view option. When doing so an alert will appear underneath the options to update your custom object with view permissions for end-users. Do so.

Just like with any ticket field you can give the field an end-user visible name and description.
Add your lookup field to a webform
As a final step, you can update your webform to add your new Custom Objects Lookup field.
If you already created an Agent Only field in the past, you can skip this step.

End-user Experience
When a customer now opens our Movie form they see a new dropdown to pick their movie. They get a dropdown of all available movies (pulled from our custom objects) and once they submit the ticket, this choice will be visible to Agents in the Agent Workspace.


Migrate from old article code
If you previously used my workaround to get Custom Objects working for end-users, you'll need to take the following steps to undo your work and enable the native solution:
- In the admin center:
- Enable end-user edit rights on your Lookup Field
- Delete the intermediate field we created
- Delete (or deactivate) the trigger that copied the value from the intermediate to the lookup field
- Go to your Help Center theme and open the
new_requests.hbs
page. Remove the javascript block we added to detect the form and intermediate field, as well as the code that gets the data from the external worker - Remove the external worker and remove the API key we used to make it work.
Filters
One final features that's pretty cool with these new Lookup Fields capabilities are Filters. When linking a Custom Object to a Lookup Field you can filter the data shown in the dropdown.
If you have, for example, a single Object type for Assets containing laptops, phones and printers, you can use the Filter type | is | laptop to only show laptops in your "Select a laptop" lookup field
Or, if you have a list of Pokémon in your custom objects you can link each Pokémon to a trainer by adding a Lookup Field to the Pokémon object that allows you to select a trainer.
If you then create a ticket Lookup Field "Select a Pokémon" you can use the filters to set Trainer | is | requester When a logged in user then uses your contact form they will only see those Pokémon that belong to him. (Or in a more realistic scenario, an employee will only see their devices)



Limitations
As always, even though this feature is a major release that will unlock tons of new flows and possibilities, there a few things I'd love to see happen with Custom Objects:
- You can't make Lookup Fields that link to organizations or users accessible to end-users. I assume this is for security reasons as to not accidentally leak your entire customer base in a dropdown, but for e.g. scenario's where you want to select a vendor, partner or manager, having those kind of fields would be useful.
- Lookup fields are currently not accessible within Zendesk Bot flows in the Ask for Details step. I'd love to see some feature parity there too!