Building a product catalog with custom objects for customers to use

What's my plan?

All Suites | Team, Growth, Professional, Enterprise, or Enterprise Plus

Support | Enterprise

Custom objects provide a way for Zendesk admins to build a product catalog with custom objects and then make the data available to agents, customers, business rules, and reporting.

Previously, admins might have attempted to use drop-down fields rather than ticket lookup relationship fields that point to a custom object to create a simple list of products.

This recipe uses custom objects, custom object record permissions, the data importer, lookup relationship fields, and ticket triggers.

This article contains the following topics:

Workflow goal

Creating a custom object to use as a product catalog

Configuring agent and end-user permissions for the product records

Importing your products into the catalog

Incorporating the new product catalog into your ticket forms

Group agents by the types of product they support

Creating ticket triggers to route requests based on the product selected

Reporting on your product catalog workflow

Workflow goal

ShoeLaLa is a shoe company that sells more than 5,000 models of shoes across multiple categories, such as running shoes, lifestyle shoes, boots, and sandals. As the Zendesk admin for ShoeLaLa, you've been asked to create a product catalog that can be used in the ticket form, so customers must select the specific shoe they have an issue with when submitting a complaint. You'll also use this information to help route tickets to the correct agents and improve reporting on product issues.

Creating a custom object to use as a product catalog

The first thing you need to do is create a custom object named Product, which will serve as your product catalog. Each record for the Product object represents a different shoe sold by ShoeLaLa.

To create your Product custom object

In Admin Center, click Objects and rules in the sidebar, then select Custom objects > Objects.

Click Create object.

Under Name enter Product, and under Plural display name, enter Products.

Under Object key, enter product.

Select Add image icons for individual records.

Click Create object.

Click the Fields tab, click Add field, and add the following fields:

For the Type, select Drop down and then enter Category for the display name. Add your categories and tags, and then click Save.
Tip: If your categories change frequently, consider creating a separate custom object called Product category instead of relying on a custom field called Category.

For the Type, select Drop-down and enter Style for the display name. Add your style values and tags, and then click Save and add another.

For the Type, select Multi-line and enter Description for the display name. Click Save and add another.

For the Type, select Checkbox and then enter Active for the display name. Click Save and add another.

For the Type, select Multi-select and then enter Colors available for the display name. Add your color values and tags, and then click Save and add another.

For the Type, select Multi-select and then enter Sizes for the display name. Add the possible sizes and tags, and then click Save.

For the Type, select Lookup relationship and then enter Product Article for the display name. Select Article as the related object.

Open the custom object's Name field (field key standard::name), and then select Require unique record name to ensure each record's name is unique.

Click Save.

Note: Optionally, you can use the Cards page in Admin Center to configure which fields are included and the order in which they are listed in the record preview for agents. See Configuring cards to view additional information in the Agent Workspace.

Configuring agent and end-user permissions for the product records

In this workflow, you want agents and end users to be able to view and select product records related to their tickets.

To configure user permissions for your product catalog

In Admin Center, click Objects and rules in the sidebar, then select Custom objects > Objects.

Click Product to edit the product object.

Click the Permissions tab.

For Customer, select View.

Review agent permissions to access the object's records. On Enterprise plans, you can configure agent access to object records. On Team, Growth, and Professional plans, agent permissions are predefined.

Note: You can also use access rules to restrict agent access to the custom object's records that are relevant to their responsibilities. For example, if you have agents who handle only tickets related to shoes, you could define an access rule that restricts access to only records with a Product category value of Shoes, and then apply it to the agents' permissions for the custom object's records.

For more details, see Configuring access to custom object records.

Importing your products into the catalog

When you use a custom object as a catalog, each product within the catalog is a record. In this scenario, you have an existing set of products that ShoeLaLa already sells that you need to import. For the purposes of this scenario, we're going to use the data importer. However, you can also use the Custom Object Records API to create records in bulk. In both cases, you can use object triggers and webhooks to keep your product data in Zendesk synchronized back to an external service, such as a sales CRM.

After the initial import, you can either perform additional bulk imports periodically or admins and agents can manually add new products as needed.
Note: To provide a richer experience for agents and end users, after you import the product records, admins and agents with permission can manually upload icons to each product record to make it visually recognizable.

To import your product records

Create a comma-separated value (CSV) file with columns for each of the object's fields you want to import values for, and add one product per row.
Make sure to include unique external ID values for each record to ensure you can update the records with the data importer and API in the future. For additional guidelines, see Creating a custom object records CSV file.

In Admin Center, click Objects and rules in the sidebar, then select Tools > Data importer.

Under Import type, select Create only.

Under Target destination, select Product.

Under File upload, drag and drop your file or click to upload and select your CSV file from the file browser.

Click Next.

Review the Field mapping list.

If the field mapping is correct, click Next.

If the field mapping isn't correct, click Back. Edit your CSV file to adhere to the format requirements, and then re-upload the file.

Click Start import.

Incorporating the new product catalog into your ticket forms

After you've created the Product object and added records, you need to do the following:

Creating a ticket drop-down field for the product category.

Create a ticket lookup relationship field that points to the Product object.

Add the lookup relationship field to your complaint ticket form.

Creating a custom ticket field named product category

In this scenario, we want to be able to compare which product category a ticket is about and the related custom object's product category. To do this, you must create a custom drop down field for tickets that has identical values to the Category field you added to the product custom object.

To create a custom ticket field named Product category

In Admin Center, click Objects and rules in the sidebar, then select Tickets > Fields.

Select Drop down as the custom field type.

For the Display name, enter Product category.

Add your categories as Values and Tags, identical to those specified for the Product object's Category field.

Under Permissions, select Customers can edit.
This is the only option that allows the field to be visible as part of the request forms in the help center.

Click Save.

Creating a ticket lookup relationship field named product

Lookup relationship fields are used to define how custom data is related to other objects within Zendesk. In this scenario, you want customers to select a product while submitting a ticket. That means the lookup relationship field must be created as a ticket field that points to the Product object.

To create a ticket lookup relationship field that points to the product catalog

In Admin Center, click Objects and rules in the sidebar, then select Tickets > Fields.

Select Lookup relationship as the custom field type.

For the Display name, enter Product.

Under Related object, select Product.

Under Permissions, select Customers can edit.

(Optional) Enter Title shown to customers and Description shown to customers.

Select Required to submit a request.

Under Filters, click Add filter and configure the following filter that allows users to select only product records that have the same category as the ticket's product category value. :
(Product object field) Category | Matches | Product category (Ticket field)

Click Save.

Add the lookup field to your ticket form.

Adding the product lookup field to your complaint ticket form

After you create a custom ticket field, you must add it to your ticket form in order for agents and end users to use it.
Note: End users must be signed in to see lookup relationship fields.

To add the Product lookup field to your ticket forms

In Admin Center, click Objects and rules in the sidebar, then select Tickets > Forms.

Create a new ticket form or edit your existing ticket form named Complaint.

Select Editable for end users.

Drag and drop the Product ticket field into the form.

Click Save.

Group agents by the types of product they support

At ShoeLaLa, agents are grouped by the shoe styles they support. For example, one group of agents called Sports is responsible for handling all complaints related to sneakers, hiking boots, cleats, and so on, while another group of agents called Formal is responsible for handling complaints related to heels, loafers, fancy flats, and so on. This approach to grouping agents works well with this product catalog workflow.

To group agents by shoe categories they support

In Admin Center, click People in the sidebar, then select Team > Groups.

Create or edit groups of agents to handle complaints based on shoe style.

Creating ticket triggers to route requests based on the product selected

Because agents are grouped by the styles of shoes they support, you can use the product style values as conditions in ticket triggers and automatically assign them to the correct group.

To create a ticket trigger that assigns groups based on the related products' style

In Admin Center, click Objects and rules in the sidebar, then select Business rules > Triggers.

Create or edit a trigger.

Under Conditions, click Add condition to set up the trigger to meet Any of the style conditions you want to assign to the group of agents.
For example, to assign all athletic styles of shoes to a group named Sports, you might use the following conditions:

Ticket > Product > Style | Is | Running

Ticket > Product > Style | Is | Hiking

Ticket > Product > Style | Is | Cleat

See Building trigger condition statements.

Under Actions, specify the following action:

Ticket > Group | Sports

See Building trigger action statements.

Click Save.

Reporting on your product catalog workflow

After setting up your custom object workflow, you can use Explore to create reports based on lookup relationship field data. Specifically, you can use attributes of related custom object records to quantify ticket data, such as number of tickets by product, style, or whether the product is currently available.

To create a report for number of tickets for a style of shoe

Open Explore, or click the Zendesk Products icon ( ) in the top bar, then select Analytics.

Click the New report button.

Select the Support - Tickets dataset.

Click Start report.

Replace New report with Ticket number by shoe type as the report name.

Under Metrics, click Add.

Select Tickets > Tickets.
This appears as COUNT (Tickets) in the report's list of metrics.

Under Columns, click Add.

Select Ticket lookup relationships > Product - Style.

Click Save.