Entities & Events

Your entity model will normally be created for you during your On-Boarding process and managed via the Intilery development team.

If you are an advanced user, you may make alterations to this model yourself using the following article.

Please note that modifying your entity model incorrectly can case serious issues with the operation of the Intilery platform, therefore it is recommended that you speak with your account manager before commencing.


Different entities or 'things' on your site are modelled with entities or nodes in the graph.

The things are the stuff of your site (products, hotels, flights, articles, brands, categories...) that visitors interact with.

Entities have values and generally have an ID (key) property. Entities can refer to one or more other entities.


Events link one entity to another. Events have a source entity and a target entity. Entities and events can be inspected/used by the Intilery system by traversing the customer graph, e.g.

  • Find all products that the customer viewed
  • Find all customers that viewed a range

Note: there are other ways to do this, this is just an example, data is also stored in a Big Data analytics database.

Events can also have properties along with Entities, but this is not required for every event.

Each event also has the following standard properties:

  • createdAt (date time of the event)
  • channel or brand (optional business channel, i.e. where business has different brands), stored in lowercase format in Intilery
  • properties (event properties, which can be blank)

To raise an event for a customer, the event is raised with the appropriate properties of the event, along with Entity data for related entities (shown as Refers To in the Behaviour Graph). When sending entities as part of an event, the key property of the event must be supplied as a minimum; other properties are optional.

Entity Relationship Diagram

A model (Entity Relationship Diagram) is a representation of data. It contains entities and relationships between entities. With Intilery, we model a ERD with customer engagement in mind. 

An entity is a physical object/person such as a customer or transaction. Each entity must contain one attribute which is used to uniquely identify the entity, this is known as the primary key of the entity. The relationships between entities, can contain edges which have events such as Flight Search, Check Out and Sign Up.

This is then also entered into the customer's model section of their dashboard. Once this page has been accessed you can implement this model by developing entities and relationships by using the model wizard like the screen below:

Once this has been saved and you re-open the models page, you will see a model like the example below:


The actions a visitor to your site performs on the different entities within your system's domain model are the edges in the model. These actions are represented as lines or arcs between visitors & the entities in your domain.

To pass multiple entities through from a single action, e.g. to model a search that stores the top 3 results:

Visit   --- search --->    Search Results    --- Search Results:Top Results --->    Product

  • Search Results must not have a property called Top Results
  • Search Results must also refer to Product

This can be passed through in a single ITQ event as:

_itq.push(['_trackUserEvent', 'search', [
  {"Search.Term" : "Gotham"},
  {"Search Results.Total" : 12},
  {"Search Results.Top Results": JSON.stringify(
          {"Product.Name":"Batman", "Product.Price":"£12.99", "Product.ID":"1234" },  
          {"Product.Name":"Robin", "Product.Price":"£2.99", "Product.ID":"1233" },  
          {"Product.Name":"Joker", "Product.Price":"£13.99", "Product.ID":"4321" }  
], 'Search']);


It is better to define the property types from the model builder, however if you upload a CSV with headings where the property isn't defined, the Intilery system will create a String property for you.

Each Entity has a number of  Properties, that can be of the following types:

Property Type



A True or False property, works with values being passed as either true, yes, on, 1 for True and false, no, off, 0 for False, unparsable values become False.

Campaign Subscription Status

A Boolean property that default to True if not set against a Customer

Currency Value

A number with a currency symbol, will default to GBP if no symbol passed.
Will parse values that are passed like $123.00 or $ 123.00 or 123,00$ or 123,00 $ or $123,456,234.00 or instead of $ any 3 letter currency code or one of #$£€¥


A date, will read formats like:  yyyymmdd (20130321), yyyy-mm-dd (2013-03-21), dd/mm/yyyy (21/03/2013), dd-mm-yyyy (21-03-2013), dd MMM yyyy (21 March 2013)


A Date Time, should be passed using standard  ISO-8601 format e.g. 2013-11-19T13:24:56.070Z, or a unix timestamp with or without millis
(The following timestamps: 1384867496070, and 1384867496 both work out to match 2013-11-19T13:24:56, but only one includes the milliseconds of 0.070.


A URL that points to an image (e.g.http://www2.intilery.com/sites/all/themes/intilery/xlogo.png.pagespeed.ic.k5LIEU8P5l.png)


A number, can be an integer or a decimal


Stores a nested JSON formatted object

Phone Number

Stores an international formatted phone number. If you pass a phone number like 0844 802 4581 it will assume UK and store +44 844 802 4581


A String (in UTF-8 format)


A String that is a URL (e.g. https://www.intilery.com/)

Still need help? Contact Us Contact Us