The Data Index is where you find a description of all user traits and tracked events that are stored in your Refiner environment.
What are user traits?
You can think of Traits as a high level description of all the data that can be found in your Refiner environment. If you think about all your Refiner data as a giant spreadsheet, there would be one column for each Trait.
All data in your Refiner account is represented by a Trait – user data that you provide, automatically computed traits, as well as survey response data provided by your users.
Traits are created automatically for you whenever we receive user data for your Refiner environment.
- When you identify a user, a trait is created for each data attribute that you include in the identifyUser call.
- When we receive a new survey response, a trait is created for each survey question if no matching trait can be found
- Computed traits are automatically generated when new user data is available, for example “User first seen”, “Last survey submission”, “Total survey submissions”, etc.
You can also create traits manually if needed. For example if you want start building segments before connecting an actual data source to your environment.
The number of traits is limited to 1.000 traits per environment. Once this number is reached, we won’t create new traits on data reception which might lead to data loss. If you think you’ll exceed 1.000 traits, please contact our support team.
Supported data types
Refiner supports the following data types:
- Strings – 10.000 characters max length
- Integer numbers – ranging from -2147483647 to 2147483647
- Dates – ISO date format or Linux timestamp
Strings and Integer numbers are detected automatically by our APIs.
To import dates to Refiner, your field identifier needs to follow a certain pattern. Our APIs detect dates if the field name ends with “_at” (e.g. created_at, upgraded_at, another_event_at, …) or “_date” (e.g. subscription_date, last_login_date, …). You can provide dates as ISO strings or Unix Timestamps.
You are in full control over what user data you want to send to Refiner. When identifying your users (e.g. with our Web-Client, Mobile SDKs, …) you have the option to provide any additional user trait you think might be useful for segmentation and data analysis. A
Refiner has a couple of reserved field identifiers which you should be aware of. If you use any of the following data field, Refiner will interpret the provided data in a certain way or ignore the provided data.
|id||A unique string identifier for the current user. This field is the mandatory if you don’t provide an email address.|
|The email address of a the current user. This field is optional. If provided without a user Id, Refiner uses the email address as the user identifier.|
|first_seen_at||The date and time when a user was first seen by any of our APIs. The date value is calculated automatically and can’t be overwritten.|
|last_seen_at||The date and time when a user was last seen by any of our APIs. The date value is calculated automatically and can’t be overwritten.|
|last_form_view_at||The date and time a user saw a survey the last time. The date value is calculated automatically and can’t be overwritten.|
|last_form_submission_at||The date and time a user responded to a survey the last time. The date value is calculated automatically and can’t be overwritten.|
|form_submissions_count||The number of times a user responded to a survey. The date value is calculated automatically and can’t be overwritten.|
|form_views_count||The number of times a user saw a survey. The date value is calculated automatically and can’t be overwritten.|
|locale||If provided when identifying a user with our Web-Client, Refiner uses the locale value to overwrite the automatically detected language of a user. The provided value is then used for the language targeting option, as well as for the multi-language translation feature. The expected value is a two characters ISO 639-1 code.|
|country||If provided when identifying a user with our Web-Client, Refiner uses the value to overwrite the automatically detected country of the user. The value is then used for the country targeting feature. The expected value is a two characters ISO 3166 country code.|
Finite dataset means that there is a limited and well defined number of possible values. For example, a list all countries or the activation status of a user, are both finite datasets. The opposite of a finite dataset are continuous datasets, such as arbitrary strings (e.g. “first name”) or numbers (e.g. “login count”).
When a dataset is set to “Finite”, you’ll have access to different kind of filters when creating a data-driven segment.
Refiner tries to figure out automatically if a field holds a finite or continuous dataset, based on the name of the field (e.g. “country”, “role”, …). If Refiner didn’t get it right, you can change switch a data field from finite to continuous and vice versa anytime.
Besides user traits, Refiner lets you also store data on an “account” level. An account groups multiple users in one entity. You can think of accounts as “groups” or “companies”.
Account traits are typically only created when you are using our Segment integration, or when you explicitly provide and account object when identifying users with our Web-client or our API. By default, all data in your Refiner environment is linked to user records.
User Events are created whenever you track event data with our Web-Client, Mobile SDKs, our Rest API, or one of our integrations.
Event data can be used to create Data-Driven Segments. In the list of all tracked events you can see how often an event is used in a segment. Events that are used in at least one segment can’t be deleted.