Setting up a Custom Object
How to model and store external data to suit your specific use case with Custom Objects.
Beth-Ann Sher avatar
Written by Beth-Ann Sher
Updated over a week ago

Custom Objects make Intercom more customizable by giving you a flexible way to import and model your external data, in a way that makes sense for your business, without the need for engineering resources or building custom integrations.

Once configured, you'll gain a more accurate, single customer view that makes all of Intercom’s features more contextual, resulting in better customer experiences and more powerful capabilities for teammates. Using Custom Objects, you can build bots that resolve complex queries, create sophisticated support workflows, and save your support reps time in the Inbox.

For example, an E-commerce shopper could:

  • See their order status or delivery date.

  • View multiple orders associated with their account and select one.

  • Cancel an order.

Create a Custom Object

Create your first Custom Object by clicking on “Create new object”. Give the object a name (e.g. Order) and then click “Save”.

Note: The object name is how you’ll identify it later in your workflows. It must be a unique name and once saved, it can’t be renamed.

This creates a new parent object with some recommended default attributes:

  • ‘external_id’

  • ‘external_created_at’

  • ‘external_updated_at’

Create your own attributes

You can add your own attributes by clicking on “+ Create attribute”:

Select the format for this attribute. You can choose from:

  • Text - To display simple information such as order is “canceled” or “open”.

  • Number - To display a numeric value such as an order ID.

  • Decimal number - To display a numeric value containing a decimal such as order price.

  • List - To display multiple values.

  • Boolean - To display a value that is either true or false.

  • Date - To display a date.

  • Reference - To link this object with another standard or Custom Object.

Give the attribute a unique name and describe what it does. In this example, we’ll use boolean format to say whether an order has been shipped:

Note: The attribute name is a unique identifier and can’t be renamed once you save it.

You can continue to create and save different types of attributes and these will appear under the Custom Object:

Relate a Custom Object to another object

To use the Custom Object in your bot flows and automatically present customers with object data they can select from, you’ll need to create a references between your Custom Object and your other data objects (People and Conversation). Learn how to set up references for Custom Objects here.

Create a reference between objects by clicking on “+ Create attribute” again:

Select the 'Reference' format type in the dropdown:

Select the object to relate to from the list. Note: this includes standard objects of ‘People’ and ‘Conversation’ and other Custom Objects.

  • Create a new Reference attribute:

    • Name the reference

    • Option: Allow referencing multiple people = Off

    • Option: Allow referencing multiple people = On

    • Note: by default the ‘has many’ is on

Important: The direction of a reference can be important. Reference Attributes can also be added to the People and Conversation objects in the same way as the above steps. To do this, navigate to these data objects in settings and create the attributes.

  • People

  • Conversation

  • Custom Object

Populate a Custom Object with data values

Next, you’ll need to populate your Custom Object with data. This can be done by:

  • Using a Custom Action to pull data in from an external system via a GET request.

  • Using the Messenger JS snippet to pull data in from a webpage (temporarily unavailable).

  • Via the public API (coming soon).

Using a Custom Action

Custom Actions can be used to return an array of objects from an endpoint and then map the response data to a Custom Object. Learn how to set up Custom Actions here.

What’s next?

Use this Custom Object in your Custom Bots or Resolution Bot to provide customers with contextual support. Customers will be able to see and select from reply buttons in the bot flow based on the object data you have stored.


Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts

Did this answer your question?