Freshdesk offers objects that are native to a helpdesk system, like tickets, contacts, and companies. These objects form the core of any business and contain the basic information related to the issue (ticket) a particular customer (contact) mapped to an organization (company) is facing. More often than not, this basic information falls short of helping agents get the full context behind the ticket. And at scale, it becomes absolutely necessary to provide contextual support proactively.
With Freshdesk, you can create custom objects to capture all relevant information right from the get-go, so that your agents can get down to solving customer issues as soon as possible. A custom object can help you get more information related to your native objects. You can even link or associate custom objects with native objects to provide agents with a comprehensive and complete view of the issue raised by your customers.
Here are a few use cases where custom objects can come in handy:
‘Contracts’ in Property Management
A property management company that leases homes and apartments needs to support both tenants and landlords. Having the latest rental contract information is highly relevant to agents providing support. With Custom Objects, businesses can create a new data entity in Freshdesk called ‘Contract’ and define attributes for the object like Contract ID, Renewal date, Property Type, and Name of Signee. Every tenant can be ‘associated’ with a Contract so that when they raise a support ticket requesting the renewal date, the contract information is stored in Freshdesk as the system of record, and it would be available for agents to access and/or update.
‘Stores’ in Retail
A high-tech security company provides CCTV cameras and support to hundreds of grocery stores across the country. When a store owner calls in to complain of a damaged camera, it would be useful for a support agent to know details about the store (Store code, location, or size), as well as details of the type of camera (Make, model and type). This information helps the support agent dispatch the right technician for the job and avoids accessing different tools to capture all the missing pieces.
‘Cars’ in a car rental company
A car rental company keeps track of all cars rented by their customers. This includes details about the car like its make & model, rental date, body type, and status. When a customer reaches out with an issue related to payments, the agent would have all details handy to diagnose and resolves the customer’s payment related to the rental based on the car type and the number of days it was rented for.
Let us consider an example to understand how you can use custom objects better.
Let’s say you are an eCommerce company that sells furniture online. Customers can report problems with their orders/check their order status by raising a ticket, calling, or starting a chat with your support team. When a ticket (native object) is created, you can associate it with the corresponding order through its Order ID (custom object), so that agents can get a better understanding of which order the customer requires assistance with, without any back and forth.
Here’s a high-level overview of how this will work:
Create a custom object in Freshdesk as Orders.
Create multiple fields within this object to hold order information, like Order ID, Furniture category, Payment status, etc.
Create/import object records that hold the actual order information.
Establish a relationship between the custom object ‘Orders’ and the native object ‘Tickets’. This will help agents associate tickets with the corresponding order.
Create and view reports to improve overall operations.
Let us now see in detail how you can perform each of these actions.
Creating a Custom Object
Note - Only Admins can create a new custom object
In our example - the furniture business, we create the Custom Object ‘Orders’, and each order will be represented as a custom object record. Every time a customer places an order for any furniture, you can add them as individual object records in your system. To make identifying the orders easier, you can define each order with attributes like Order ID, Category, Order status, Price, etc.
A quick guide to creating a custom object:
Go to Admin -> Support Operations -> Custom Objects
Click on ‘Create a custom object’
Enter the Custom Object name, in this case, we can use ‘Orders’
Enter a description for the object
Choose a relevant icon from those displayed and click ‘Create’
Once you create the custom object, the relevant icon will appear on the sidebar for quick and easy access
Here is a small video to help you understand how to set up custom objects:
Defining custom object fields
On the next page, you can start defining the object fields. These fields can be used to represent the relevant order details - like Order ID, Delivery status, Furniture category, etc.
The ‘Primary field’ holds values that will uniquely identify each custom object record. It is an identifier that will only be associated with that particular order, similar to how a Ticket ID is only associated with only one particular ticket. The primary field has the following characteristics:
It is similar to the concept of a primary key for a table in a database
It is of text field type
It cannot be deleted
It is marked as a unique identifier by default in Freshdesk. This means
No two records can have the same value in the primary field
It can be used as a record identifier in Search and Lookup functions
You can uncheck the ‘Accept unique value’ setting if you want to have more than one record with the same value in this field
The primary field can also be referred to as the unique identifier or Lookup field
Things to keep in mind when creating fields:
A maximum of only 100 fields can be created within an object
Here are the limits for each field type within the custom object:
Number - 30
Checkbox - 30
Decimal - 20
Multi-select - 20
Date - 30
Text - 80
Dropdown - 30
Lookup relationship - 10
For example, you can create 80 text fields and 20 multi-select fields in an object, or 60 text fields, 30 number fields, and 10 check box fields in an object
A maximum of only 25 fields can be marked as filterable, excluding the Lookup field
A maximum of 5 Lookup fields can be created, and they are filterable by default
You can update the setting to filter records only when you create the field, it cannot be modified/edited later
This is how you can create the custom object fields for our use case:
Enter the field Label as Order ID, and click on ‘Add field’. The primary field will get created.
Create more fields based on your requirement. The following are the field types available to use:
The fields above will have certain behavior associated with them, like
Required when submitting the form - check this box if you want to make this field mandatory
Accept unique values - Check this box if you want this field to only accept unique values. This setting will only be available for the Primary field
Use this field to filter records - Check this box if you want to filter records using this field
You can search for fields based on Field Labels using the Search box on the top right corner of the page
You can use the Customize widget button to decide what is displayed to agents in the custom widget on the Tickets page and any other related objects
Here’s how this will work for our considered use case:
The Order ID field is ‘Required’ here because that is the field we’ll use to associate the orders with the relevant tickets that customers raise. You can also search for records using this field. You can see how associations work here.
1. For Freshdesk, Custom Objects is available only for ticket-specific use cases. If you have a contact-specific use case, reach out to us at firstname.lastname@example.org
2. For Freshdesk Omnichannel, CUstom objects is available only for ticket-specific use cases. It will be made available for all use cases tentatively by the end of August.
Translating custom object fields
Sometimes, your agents may be located in different countries and may require the Custom Object names and field labels to be translated into their language. To do so, you can upload the custom object names, their descriptions, field labels, and the field names (including the lookup field label names) in the language chosen in your helpdesk settings. This way, you can provide more personalized support to your agents and customers worldwide.
As an admin, you can:
Download or delete an existing language file
Upload a new translations file
To enable translations:
Click on Settings > Account > Helpdesk Settings
Click on Manage Languages and add all the languages that you'd like the custom object fields to be displayed in
Now, click on the ‘Manage translations’ button in the Custom Objects edit page
A slider will be displayed with an option to download the YML file in the primary language
Upload translations for the list of supported languages
Export the current version of the .yml file in the selected language (similar to Freshdesk ticket fields languages support)
The .yml file will have the below fields (This is a sample .yml of Freshdesk ticket fields)
Custom Object name
Custom Object Description
Picklist values of the respective fields (for dropdown/multi-select field types)
Add the labels and upload the .yml file (other formats are not allowed)
Click on ‘Confirm Upload’, and agents with their profile set to this language will be able to view the respective translated labels.
If you have fields without a translation label in the .yml file, you should remove the tag for those fields. This will display the fields inthe default language.
For example: if 'Country' is a field in a custom object, and you want to show 'Country' as a label in all languages, then you should remove the tag against the Country field in the .yml file.
Create custom objects with APIs
You can get custom object schemas, create/update/delete/view records, and associate objects using Freshdesk APIs. You can use Freshdesk’s marketplace platform to create custom apps to display the custom objects and associated entities in Freshdesk.
You can also create custom objects using an API. Learn more here.