Supported Data Types
Table of Contents
Supported Data Types in Appcues
When passing data such as user attributes or events into Appcues, it's important to ensure they are formatted in a way that Appcues can recognize. Here are some good notes to be aware of:
User And Group Properties
-
Numbers, Strings, and Booleans
Appcues targeting can only operate on numbers, strings, and booleans. You can send complex objects or arrays in your Appcues.identify() call, but they will be ignored. We don't recommend sending objects or arrays to Appcues as a user property. -
Dates
Make sure that each user property has a consistent type. As an example, "signup_date" (and date properties in general) must either be sent as a non-fractional timestamp (number), as an ISO date (string), or with the format MMM, DD, YYYY HH:MM:SS AM/PM (Jan 1, 2025 10:00:00 PM) (string). Whichever you choose, make sure to be consistent every time that value is sent to Appcues. Inconsistency could result in over- or under-targeting content to users. A date sent in an unsupported format—such as 06/20/2025—cannot be used in date-type targeting conditions.
Appcues uses UNIX Epoch timestamps for dates and times internally. -
Don't Reformat Types
Send numbers as numbers, strings as strings, etc. Appcues uses type inference to match targeting criteria, so you don't need to think about types. This is really important when doing comparison, since the number 10 is greater than the number 2, but the opposite is true if those values are converted to strings.
In the same vein, if a value is undefined or null, either don't send it to Appcues, or send it as null. Do not send an empty string for any non-existent value. Additionally, string properties are case sensitive. -
Objects
Objects are not supported as a property type in Appcues. If you need to send information from an object, flatten the object before calling Appcues.identify(). For example, if you had a user property called "invoices" that was a collection of billing information, you could reduce that into the following useful properties:
<script>
var invoices = user.invoices || [];
var totalInvoices = invoices.length;
var lastInvoiceDate = (invoices[0] || {}).created_at;
Appcues.identify(user.id, {
name: user.name,
email: user.email,
totalInvoices: totalInvoices,
lastInvoiceDate: lastInvoiceDate
})
</script>
Events
Events passed to Appcues are composed of two parts:
-
Event Name (required) – Events are unique based on the Event Name, so do not reuse names for different events.
- Note: If you are installing Appcues on web and on a mobile app, event names must be different in each installation to be recognized as a web versus mobile event. Using the same name will result in the events being pooled together.
- Event Attributes (optional) – Provide extra context on the triggered event. Note: Event attributes are not visible in Studio or reporting, and can currently only be used with Event Triggering.