- Writes a review
- Posts on Instagram
- Refers a friend
- Reuses or repairs something
- Marks an item as a favourite
Interactions data structure
A Customer Engagement interaction is a dynamic object, meaning that the data in an interaction does not need to be set by Voyado, but instead can be customized through a schema provided by the customer. An interaction is different from an activity in Customer Engagement. Activities have only one data type, and are imported through XML, whereas interactions can be fully customized and use the API. You can use the data collected through interactions in a number of ways: Segmentation: Create segmentations based on the number of times or the time when an interaction was received in Customer Engagement. Contact card: In the tab “Interactions” you can get an overview of which interactions a contact has received. Automations: Set up an automation flow using the triggers “New Interaction” (any interaction being received for the first time) or “New specific interaction” (an interaction of a specific schema, with a specific value, being received for the first time).Interactions API
Interactions use two dedicated endpoints.- /interactionschemas
- /interactions
The interactionschemas endpoint
This is used to define the interaction schemas your interactions can use:The interactions endpoint
This endpoint concerns the individual interactions (interaction events) sent to Customer Engagement. Such an interaction is always linked to a specific contact and a specific interaction schema.Creating a schema
The interaction, its data and identifier, are defined in a JSON schema. Read more about the formatting standards at this page. Once the schema is created, it must then be posted to the API, after which interactions that follow that schema can be used. Here is an example of a schema:Schema example with details
Schema example with details
Sending an interaction
Once the schema has been accepted by Customer Engagement, you can start sending that kind of interaction. Every interaction must be linked to a specific Customer Engagement contact. This interaction uses the schema defined above:The productSku property
Many customer interactions are events where a product might be involved, for example, a product review or repair. Product metadata - such as category, brand, dimensions - might be useful in these cases for personalisation in email communication or other purposes. Therefore you should always add all this data to the schema. It is good practice to also indicate which product is the subject of the interaction with the reserved property nameproductSku since Customer Engagement might later on develop functionality around this, automatically enriching the interaction product metadata.
The productSku property is a string value.
Use cases of interactions
Here are some use case examples of interactions, with example schemas.1 - Wishlist
1 - Wishlist
2 - Wholesale purchases
2 - Wholesale purchases
3 - Repairs
3 - Repairs
4 - Preowned products
4 - Preowned products
5 - Recycling of products
5 - Recycling of products
6 - Reward engagement
6 - Reward engagement
- Reviews or surveys: Track the number of product reviews your customers have made.
- Referrals: Track if you customers are making your database grow through referral recruitment.
As a placeholder for storing objects
The interactions entity can be seen as a log of events connected to a contact. Interactions stored for a contact can’t be changed once saved, although they can be deleted. The Customer Engagement interactions schema also allows a retailer to collect data on anything else that could be encoded as an interaction, for example the cars owned by a specific contact.Example: Subscriptions
A retailer’s business might involve subscription-based services. The events involved when such a subscription starts, changes or ends can easily be expressed as interactions. It’s possible to save the active subscription to a contact as a specific interaction type and then delete it when it is no longer valid. This allows the Customer Engagement user to segment customer with a specific number of subscriptions active. All the detailed information could be put into the interaction schema as properties, either for display in the Customer Engagement contact card or for use in automations. For targeting, however, this is somewhat limited in that Customer Engagement can’t tell how many active subscriptions a contact has at any one time.Example: Custom attributes
It’s possible to encode objects and their properties as multiple custom attributes. This allows an easier way to deal with having different properties for each instance of an object. The contact model is given a set of fields, some of which might be empty. For example:- Car1-type, Car1-brand, Car1-year
- Car2-type, Car2-brand, Car2-year
- Car3-type, Car3-brand, Car3-year
- Car3-type, Car3-brand, Car3-year
Personalizing messages
You can use individual data points from an incoming interaction to personalize your send-outs. To do this you’ll need the ID of the specific interaction schema.
ID of interaction schema

Name of the interaction property

Usage in the classic email editor
Interaction segmentation
The propertyaddToSegmentation can be used in interaction schemas. Adding this property to one of your schema’s properties with a value of “true” makes the property show up in the filtering tool. You’ll then be able to segment for contacts with a certain value of that property.
If a property is not to be segmentable, you can either include addToSegmentation with a value of “false” or just leave it out entirely for that property.
Read a general introduction to interaction segmentation
- Boolean
- String (date is stored as a string)
- Integer
- Number
addToSegmentation in a schema:

Example of using addToSegmentation
Limitations
Some limitations are imposed on the use of interaction schemas with segmentable properties:- A Customer Engagement environment can have a maximum of 15 interaction schemas in total
- A schema can contain a maximum of 6 segmentable propties. Validation exists to enforce this. For example, you can’t have an interaction with 6 segmentable properties of type “Number”, then 6 more of type “String”. In the example image above, every property has
addToSegmentationbut it is only “true” for 6 of them so only these will be segmentable.
Upgrading
There is no direct way to update an existing interaction schema to use the newaddToSegmentation functionality while still keeping the same schema name / ID. And when an interaction schema is deleted, all interactions associated with it are also removed, as well as all data displayed in the contact card or available for segmentation. This happens automatically.
So if you want to leverage addToSegmentation and retain old interactions for a certain interaction schema, there are two ways:
1 - Create a new schema using the same interaction structure
1 - Create a new schema using the same interaction structure
addToSegmentation property with a value of “true”. It will need a different name, and it’s good if this name is connected to the original schema’s name.For example, if the original schema is called “Repairs”, create a new scheme with a name such as “Repairs-segmentable” with exactly the same structure and properties, the only difference being that some of the properties will now have the property addToSegmentationset to “true”. Now segmentation will be possible for the new schema (“Repairs-segmentable”).The segmentation UI in Customer Engagement will display all the properties you’ve marked as filtering options / fields for that schema. Segmentation for the old schema (“Repairs”) will just allow you to access the number of interactions received for a specified date range (which is the original behavior).2 - Delete original schema and re-import interactions
2 - Delete original schema and re-import interactions
Confirm interactions exist
Delete the schema
Recreate the schema
addToSegmentation (as “true”) added to the properties you want to be able to segment on.Save the schema
Import old interactions