Skip to main content

String

You can use the ‘String’ data type in the Zeotap Catalogue to represent text, numbers and alpha-numeric values like Firstname, Lastname as per your use case. Note that the operations available in the activation/downstream modules like Audiences and Journeys depend on the data type selected when adding the catalogue field. In the below image, you can see the illustration of an example of a Catalogue field added as a String, along with the associated operations available for that specific field in Audience.

Integer

You can use the ‘Integer’ data type in the Zeotap Catalogue to represent whole numbers like Age, Customer ID. Ensure that you map any incoming field of integer values to an Catalogue field of the integer type only. Otherwise, you may encounter ingestion failures for those records or for the file. Note that the operations available in the activation/downstream modules like Audiences and Journeys depend on the data type selected when adding the catalogue field. In the below image, you can see the illustration of an example of a Catalogue field added as an Integer, along with the associated operations available for that specific field in Audience.

Double

You can use the ‘Double’ data type in the Zeotap Catalogue to represent decimal/floating numbers such as cart_value, car_price. Ensure that you map any incoming field of type double to an Catalogue field of the double type only. Otherwise, you may encounter ingestion failures for those records or for the file. Note that the operations available in the activation/downstream modules like Audiences and Journeys depend on the data type selected when adding the catalogue field. In the below image, you can see the illustration of an example of a Catalogue field added as a Double, along with the associated operations available for that specific field in Audience.
NoteWhen you opt for European notation of decimal, which is using comma, you need to apply the necessary customtransformation before storing the value. Otherwise, it may lead to ingestion error. Ensure to find and replace custom transformerfor such fields at the time of mapping the source. For more information about how to use the custom transformation enricherwhile mapping the source, refer here.

Timestamp

You can use the Timestamp data type in the Zeotap Catalogue to denotes a specific point in time, typically recording when an event occurred. In other words, it refers to a precise date and time combination, stored in a format that enables chronological sorting and calculations between different time instances. For Example, 2023-11-30 15:45:00 - This timestamp represents November 30, 2023, at 3:45 PM. Note that the operations available in the activation/downstream modules like Audiences and Journeys depend on the data type selected when adding the catalogue field. In the below image, you can see the illustration of an example of a Catalogue field added as a Timestamp, along with the associated operations available for that specific field in Audience.
By default, the system considers the ingested timestamp as the timestamp information in the record. However, if you wish to recognise a specific field as a Timestamp field, then ensure to map the incoming field to the “event timestamp” field in the Zeotap Catalogue. For example, if you are importing consent data and want the date of consent collection to be stored as the date for that consent in Zeotap, map the date attribute from your source to the event timestamp field. Note that for streaming sources, Zeotap automatically maps this field to the time of the record.
NoteFor information about the different formats that can be selected for Timestamp, refer here.

List (Array) of String/Integer/Double

This represents a type of attribute in the Zeotap catalogue which can hold any incoming data that is of the type string, integer or double or a List of string integer or double. This incoming data is stored as a list of values against a user profile. For instance, you can map a list of incoming source data of cars or productcode to List type catalogue fields. That is, the the values for car is mapped to List of strings and values for the productcode is mapped to List of integers and the result is as shown below. List of String cars:["Ford", "BMW", "Fiat"] List of Integer Productcode:[1102,1105,1456] Note that you can also map a single value string, integer and double and store it as a List in Zeotap. Let’s consider an example to understand this better. Imagine you have incoming data of Cars for the UserID: U1 as shown in the table below.
UserIDCars
U1Ford
U1BMW
U1Fiat
In this case, if you map the incoming cars data as a List of Strings within the Zeotap Catalogue, then it organises these individual car entries into a unified list format as shown below. cars:["Ford", "BMW", "Fiat"]
Note:Ensure that you consider the following points while selecting the List Data Type:
  • You can map both List and single-value source fields to the List type catalogue field. Therefore, when a single value source field comes into the system for this Category, then the new data is upserted (update+insert) on the existing data without overwriting it. For example, if the source field is a single value field like “Product Name” and it is mapped to ProdName field of the data type List in the Catalogue, then any new value that comes into the system for the product name will append to the existing one in the format, {p1, p2, p3…}, preserving the previous entries.
  • You can only map a source field of the data type List to a catalogue field of the data type List. For example, if the source field is of type List of String, then you can map it to only List type attributes in the Catalogue field drop-down of the source mapping screen.
  • When sharing source data containing List type information, ensure that you use the correct format and avoid null values. Otherwise, it might lead to mapping issues or data being dropped during the data ingestion process.
  • By default, you can store up to 200 values only per List attribute and can create up to 15 List attribute only in your Zeotap catalogue. For List of String/Integer/Double under User trait or Product category, FIFO logic is applied after reaching the limit for new value ingestion. Reach out to your Zeotap POC for any specific requirements about the system limit.
  • The ObjectList and List of Object data types are only supported for the categories–User trait, Product, Event and Campaign. Raw personally identifiable information (PII) is not supported for these data types. Hence, refrain from mapping PII information to these types.

Object

Object represents a type of attribute in Zeotap Catalogue that can hold a JSON object that contains one or more key-value pairs, also called properties. In the following example, producItem is an object in a user profile with properties, ProductName, price and photo as shown below.
Code
productItem
{
  productName: "EXP Portable Hard Drive",
  price: "800.00",
  photo: "external-hard-drive.jpg"
}
The system can store any incoming data field of the type string, integer, double, timestamp, list or object into an object type data field in Zeotap Catalogue. Note that the properties of an object in Zeotap Catalogue can be of type string, double, integer and list of string/integer/double only. Object can hold only one set of properties. Hence, any incoming data will always override the entire object with the incoming set of properties. To understand this better, refer to the ‘scenario 1’ explained below.
Note:Ensure that you consider the following points while mapping the Object data fields:
  • By default, you can store up to 50 properties in an object and create maximum up to 10 object type catalogues in your Zeotap account. Please note this limit includes both catalogue datatypes Object and List of Objects, therefore there can be a total of
    10 object and list of objects catalogue attributes in your Zeotap account. Reach out to your Zeotap POC for any specific requirements about the system limit.
  • We recommend you to share the object type data is shared in the following format only:
    • Enclose the data within curly braces {}. For example,
    Code
    "personal_details": { "first_name": "John",
    "age": 25,
    "birthdate": "1999-03-15" }
    
    • Separate each key-value pair with a comma. Note that the order of key-value pairs is irrelevant.
    • A key-value pair consists of a key and a value, separated by a colon ( : ).
    • The ObjectList and List of Object data types are only supported for the categories–User trait, Product,  Event and Campaign. Raw personally identifiable information (PII) is not supported for these data types. Hence, refrain from mapping PII information to these types.

Scenarios of using the ‘Object’ Data Type

Scenario 1: Let’s say, there is an existing producItem object in a user profile with properties, ProductName, price and photo as shown below.
Code
productItem
{
  productName: "EXP Portable Hard Drive",
  price: "800.00",
  photo: "external-hard-drive.jpg"
}
Whenever there is an incoming record for the producItem object, it replaces the above object stored in the user profile as shown below.
Code
productItem
{
  productName: "Luxury Ultra thin Wrist Watch",
  price: "500.00",
  photo: "laptop.jpg"
}
Scenario 2: If you want to store the incoming campaign object properties in a separate attributes in the Zeotap catalogue such as ID, user trait, consent, event and more, then you can achieve that by mapping the object properties to the regular Zeotap Catalogue fields. For example:
Code
Campaign
{
  email: "p@gmail.com",
  hasclicked: "true",
  hasclickedtime: "2023-09-15T22:32:59.873Z"
}
  1. email can be mapped to the Email raw attribute of type ID.
  2. hasclicked can be mapped to the hasclicked attribute of type event.
  3. hasclickedtime can be mapped to the timestamp attribute of type event.
Scenario 3: When two profiles with Object attributes merge due to unification, the most recent Object data among the two profiles will be retained against the profile.

List (Array) of Objects 

List of Object represents a type of attribute in the Zeotap catalogue that can hold a list of JSON objects that contains one or more key-value pairs, also called properties. It can be used to store an object or List of object from source data as a List of object type attribute in the Zeotap catalogue. When adding a Catalogue field, if you choose List of Object as the Data Type as shown in the image below, then along with adding the properties for the object, you need to select a property as the Primary Key. A Primary key can be used to ensure a unique set of objects in the list when executing an upsert operation. For example, imagine you are a TV broadcasting company that serves three customers: Viewer A, Viewer B and Viewer C. Each has unique preferences(properties) for TV package (object) - subscription name,renewal date, engagement scores and package cost. These details are subject to change with time. Here, by configuring the incoming data as List of Objects and choosing the subscription name as the Primary Key, you establish a crucial link between records that allows the system to update and insert the data for the properties renewal date , engagement scores and package cost, whenever new data arrives for the respective fields. Based on the result obtained, you can plan your marketing strategies accordingly. Note that without this designated Primary Key, incoming data would merely accumulate without ensuring the accuracy of your customer records.
Note:Ensure that you consider the following points while selecting the List of Objects Data Type:
  • By default, you can store up to 200 objects only per List of Object attribute, upto 50 properties per object and can create up to 10 List of Objects attribute only in your Zeotap catalogue. Please note this limit includes both catalogue datatypes Object and List of Objects, therefore there can be a total of _10 object and list of objects catalogue attributes in your Zeotap account. _For List of Object under User trait or Product category, FIFO logic is applied after reaching the limit for new value ingestion. Reach out to your Zeotap POC for any specific requirements about the system limit.
  • The ObjectList and List of Object data types are only supported for the categories–User trait, Product, Event and Campaign. Raw personally identifiable information (PII) is not supported for these data types. Hence, refrain from mapping PII information to these types.

Sample JSON Structure for “List of Objects”

Code
{
  "wishlist": [
    {
      "SKU": "ABC123",
      "Product": "T-Shirt",
      "Price": 19.99,
      "Size": "M",
      "Color": "Red"
    },
    {
      "SKU": "XYZ456",
      "Product": "Jeans",
      "Price": 49.99,
      "Size": "32",
      "Color": "Blue"
    },
    {
      "SKU": "LMN789",
      "Product": "Sneakers",
      "Price": 89.99,
      "Size": "10",
      "Color": "White"
    }
  ]
}
Last modified on February 26, 2026