General Availability (GA) release of the Custom Objects feature

We are pleased to announce general availability for building apps that use Custom Objects to model data. As of today, any developer building apps for Freshdesk will be able to use Custom Objects, in addition to the product’s native objects, to model data. Developers can share such apps as a custom app or publish it on the Freshworks Marketplace.

Installing such apps is currently limited to accounts on the Support Desk - Enterprise plan and Omnichannel - Pro and Enterprise plans / (for older accounts) Support Desk - Forest plan or Omnichannel - Estate, Forest plans.

Who is it for

If you are a developer who needs to model non-native business domain objects in an app, so far, your only option was to store them in a key-value store (client.db.set() or $db.set()) and handle all the logic of insertion, updation, deletion and searching yourself. For an advanced use case, you’d have to create and host a database-backed API layer externally and use HTTP requests to access the records.

With Custom Objects, you can model business objects as entities with multiple fields, right in the app, and you get a ready-made interface to perform ORM-like CRUD operations on those entities. This removes the need to build and maintain external HTTP services simply to persist complex business objects that are relevant to the app.

How it works

Using Custom Objects in an app has two aspects:

  1. Defining the entities’ schema in config/entities.json, where each entity can have multiple fields and each field can be of any of the supported data types.
  2. Accessing and performing operations on the entities, programmatically through the front-end or serverless app code.

For information on how to define entities, create entity records, access and work with the entity records, see our Entity storage - Custom objects documentation.

If you want to see how this looks in code, we have written a few sample apps for Custom Objects.

Note: You will need to update the Freshworks CLI (fdk) to v7.3.x to use Custom Objects GA features in local development.

Changes from EAP

Note: This section is for developers who leveraged our Custom Objects Early Access Program (EAP) to build custom apps for Freshdesk.

The valid values for the config/entities.jsonfields[].type attribute are modified as follows. Please ensure to update your app files to accommodate the same. This is a breaking change and app validation and testing will throw errors if the fields[].type attribute values are not modified.

Old field type values (EAP) New field type values (GA)
TEXT text
PARAGRAPH paragraph
CHECKBOX boolean
DATE_TIME datetime
NUMBER integer

In addition, you can also make use of some of the new types introduced: enum, date, and section. For more information, please see the “Attributes of field object” section of our Custom Objects documentation.

With our EAP, it was not possible to modify the entity definition of the custom objects used in the app and submit a new version of the app. With the GA release, you can modify the entity definition, test the changes, and submit a new version of the app. For information on the modifications possible, please see the “Modify entity definition specification” section of our Custom Objects documentation.