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:

  1. ‘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. 

  1. ‘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. 

  1. ‘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:

    • Text 

    • Paragraph

    • Number

    • Decimal

    • Date

    • Dropdown

    • Checkbox

    • Multiselect 

    • Lookup relationship 

  • 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:

Record name




Order ID



Primary field, unique identifier. Assigned by you to each order

Order status



Delivered/Not delivered

Furniture category



Living room furniture, Patio furniture, etc.

Furniture price




Furniture type 




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
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

    • Field labels

    • 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.