Many Zendesk customers manage assets, such as hardware, software licenses, or physical items. Custom objects can replace the external systems you've used in the past to manage these assets. Bringing this data into Zendesk streamlines agent productivity by providing all the information they need directly in the ticket and can even improve your record keeping.
Workflow goal
You work in the IT department of a software development company. Your company already has a process in place for employees to submit software requests to your team through Zendesk. You want to make this process more efficient by maintaining all records of approved software and the licenses you have for them in Zendesk, alongside the tickets your coworkers submit about them. You also want to reference the custom objects in business rules to assign tickets to the right agents at each step.
Planning your custom object workflow
Before you create custom objects, it's important to plan out your custom object workflow. In this case, you know you want to track assets within Zendesk, but you still need to identify which details you need to capture for each object and how the object is related to other objects in your account. Sketching out a plan before you start will save you time in the long-run.
After going through this planning exercise, you find that you need three custom objects: Software, License, and Project.
You make a spreadsheet for each object, with the field names and types serving as column headings.
Custom object: Software | |||||
---|---|---|---|---|---|
Software name | Description | OS compatibility | Needs approval? | Status | |
Field type | (standard: Name) | (multi-line) | (drop-down) | (checkbox) | (drop-down) |
Designs | Collaborative design software for people to create, share, and test designs for digital products and experiences. | All | Yes | Pending | |
Flowcharts | Software that helps create flowcharts and manage processes. | Windows | Yes | Approved | |
Photo editing | Photo editing and raster graphic design software to create, edit, and manipulate graphics. | MacOS | Yes | Approved |
Custom object: License | ||||
---|---|---|---|---|
License Key | Software | Status | Assigned to | |
Field type | (standard: Name) | (lookup field > Software object) | (drop-down) | (lookup field > user) |
X67Z-8WFC-2V9M-QBJD | Flowcharts | Assigned | Yuki Murakami | |
HJ12-RP5E-7TZN-1XKQ | Flowcharts | Active | - | |
N9VB-6CQW-4LKZ-2XTE | Photo editing | Active | Spencer Willig | |
R4SD-8FJL-1PQX-5CGM | Photo editing | Expired | - |
Custom object: Project | ||||
---|---|---|---|---|
Project name | Project code | Status | Project Manager | |
Field type | (standard: Name) | (text) | (drop-down) | (lookup field > user) |
Janus | 255 | Completed | Keith Ellis | |
Vesta | 256 | Active | Adele Arment |
Defining custom objects to represent your assets
Next, use the data you gathered to create your custom objects in Admin Center. See Creating custom objects to integrate with custom data.
The following example demonstrates how to create the Software custom object you just planned.
- In Admin Center, click Objects and rules in the sidebar, then select Custom objects > Objects.
- Click Create object.
- Under Name and Plural display name, enter Software.
- Under Object key enter software_asset.
- Click Create object.
- Click the Fields tab, click Add field and add the following fields:
- For the Type, select Multi-line and then enter a Description for the display name. Click Save and add another.
- For the Type, select Drop-down and then enter OS compatibility for the display name. Add the following Field values: All, Windows, and MacOS. Click Save and add another.
- For the Type, select Checkbox and then enter Needs approval? for the display name. Click Save and add another.
- For the Type, select Drop-down and then enter Status for the display name. Add the following Field values: Pending, Approved, Not approved. Click Save.
- Click the Permissions tab to 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.
- Repeat steps 1–8 to create the Licenses and Project objects as planned in the spreadsheets.
Add a lookup relationship field to your tickets
Both your License and Project objects contain lookup relationship fields pointing to other custom objects and users. This is a great start to integrating your custom data into Zendesk. However, surfacing relevant custom data in tickets is how you're going to improve agent efficiency. Agents will be able to preview details about records related to the ticket without navigating away from the ticket.
In this example, you want to add all three objects to the tickets. That means you need to create three lookup relationship ticket fields.
- In Admin Center, click Objects and rules in the sidebar, then select Tickets > Fields.
- Click the Fields tab, and then click Add field.
- Add a lookup field pointing to the Software object:
- For Field type select Lookup relationship and enter Software requested.
- Under Select a related object, select Software.
- (Optional) To restrict valid values to approved software, you can add a filter of Status > is > Approved.
- Click Save and add another.
- Add a lookup field pointing to the License object:
- For Field type select Lookup relationship and enter License Assigned.
- Under Select a related object, select License.
- Click Save and add another.
- Add a lookup field pointing to the Project object:
- For Field type select Lookup relationship and enter Project.
- Under Select a related object, select Project.
Because both the project's Name and Project code fields are text-based, agents will be able to search for either value when adding a project to a ticket.
- (Optional) To restrict valid values to active projects, add a filter of Status > is > Active.
- Click Save.
Import your asset data into Zendesk
- Remove the first row with the custom object's name.
- Remove the third row with the field types.
- Ensure the column headings are identical to the custom object's field names.
- Export your spreadsheet as a .CSV file.
Then, use the Data importer to upload each of your spreadsheets and generate your initial records for your respective custom objects. See Bulk importing custom object records.
Alternatively, if you only have a few records for an object, you can also manually add the records.
Configure triggers to use your custom objects
Finally, you have your custom objects and data in Zendesk. Agents can connect tickets to your custom object records through the lookup fields in tickets. Now you want to leverage the custom data to route tickets to the right agents and notify stakeholders when things change. To do this, you create two triggers: Approvals and Notifications.
- 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 All or Any conditions under which you want to assign the
ticket to the project manager.
- Software > Needs approval | Is | Checked
- Project > Project code | Is | Present
- Under Actions, specify the following actions:
- Ticket > Ticket status | Pending
- Ticket > Assignee | Project > Project manager
- Click Save.
- 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 All or Any conditions under which you want to notify the
requester and project manager.
- Ticket > Ticket status | Is | Solved
- Under Actions, specify the following actions:
-
Notify by > Email user | Ticket >
(requester)
Email subject: Solved: Request for {{ticket.ticket_field_17531163245847}}
Email body: {{ticket.ticket_field_17531163245847}} has been installed for {{ticket.requester.first_name}} {{ticket.requester.last_name}}.
-
Notify by > Email user | Project > Project
manager
Email subject: Solved: Request for {{ticket.ticket_field_17531163245847}}
Email body: {{ticket.ticket_field_17531163245847}} has been installed for {{ticket.requester.first_name}} {{ticket.requester.last_name}}.
-
Notify by > Email user | Ticket >
(requester)
- Click Save.