Customer Studio is available as an add-on on Business tier plans.
Overview
Once you've set up your schema data models, you can start creating audiences using the visual audience builder.
Required skillset
Building audiences requires an understanding of your business goals. Usually, business stakeholders like marketers complete this step.
Setup
- Go to the Audiences overview page and click Add audience in the top right corner.
- Select the parent model to segment.
- Build an audience by configuring filters and Boolean logic (
AND
/OR
).
- As you build, click Preview results to ensure the audience you're building is the intended one. You can see the audience size and more closely inspect audience members by clicking on them. If you've chosen to redact any columns in your model configuration, they're redacted here.
- Once finished, click Continue.
- Give the audience a name, and optionally move it a folder if you're organizing your workspace in this way.
- Click Finish.
After building the audience, it appears on the Audiences overview page. The last step is to configure its sync to a destination. Check out the audience sync docs to learn more.
Filter conditions
Filter conditions are the core of the visual builder. You can mix and match the different conditions to segment your parent model to a specific audience.
The builder provides five types of filters you can use with nested Boolean (AND
/ OR
) logic:
- Property conditions
- Related model conditions
- Event conditions
- Audience conditions
- Trait conditions
Property conditions
The property condition is the most basic condition. You can use it to filter audiences based on the column values in your parent model. For example, if your parent model is a table of users and includes columns like city
and age
, you can create an audience of:
- All users where their city is "New York"
AND
- where their age is less than 25
Here's how it looks in the visual builder:
Related model conditions
The related model condition filters users based on data in related models. In SQL speak, it lets you filter based on the matches on a foreign key to another table.
For example, if your parent model is a table of users and you have related models for purchases and workspaces, you can create audiences like this:
- All users that have purchased more than three items
- All users that are part of workspaces with only one member
Here's how it looks in the visual builder:
Event conditions
The event condition filters audiences based on what events they've performed. To use it, you need to have set up events. The event condition supports specifying multiple events that have to happen in order.
For example, if your parent model is a table of users and you've set up different web events the users took, you can create audiences like this:
- All users that viewed your website but then didn't create an account
- All users that viewed a promo page on your website and then checked out
Here's how it looks in the visual builder:
Audience conditions
The audience condition filters users based on whether they're a part of another audience. This condition helps construct complex audiences and ensures you're not duplicating users across campaigns.
Audience conditions can only be set up between audiences that use the same parent model.
For example:
- All users that added an item to their cart and aren't part of the "Cart abandoners" audience.
Here's how it looks in the visual builder:
Trait conditions
The trait condition filters users based on traits you've defined in your Hightouch workspace. Traits are computed or calculated attributes. Check out the Traits documentation for more information.
For example:
- All users who last purchased a "Nike" item where the price was greater than $200
Nested conditions
The Hightouch audience builder supports nesting filter conditions using Boolean operators up to a depth of three layers.
For example, imagine you are running a campaign targeting users with a high likelihood of purchasing Nikes. You could create an audience with the following conditions:
- Users who have a Nike brand affinity AND at least one of the following is true:
- Their lifetime value is greater than or equal to $250.
- They've engaged with the site or app at least three times in the last week
- They're a loyalty customer
You could express those conditions using this Boolean logic:
brand_affinity="Nike" AND (LTV >= 250 OR engagement_last_seven_days >= 3 OR loyalty_customer=true)
The visual audience builder makes it intuitive to build this audience using nested OR conditions.
The builder also makes it easier to organize logic around subconditions.
Let's say you want to create a variation of the last audience targeting customers who've recently added an item to their cart that is either expensive or has the Nike brand. You could define this audience like this:
Users who have added a product to cart within the last seven days AND one of the following is true:
- the product brand is Nike
- OR the product's price is greater than $200
The builder also allows you to adjust conditions you've set. If you wanted to make the audience have stricter inclusion policies, you can toggle the OR to an AND, so the audience definition is now:
Users who have added a product to cart within the last seven days AND all the following are true:
- the product brand is Nike
- AND the product's price is greater than $200
Filter operators
Filter operators allow you to build your filter conditions. For example, you may want to create a property condition based users' ages or an event condition based on when an action occurred. The operators you can use depend on the underlying data type you're filtering on—either textual, numerical, boolean, or timestamp.
These operators are the same whether you are creating property, related model, event, or trait conditions. Audience conditions only provide the operators is included in and is not included in.
Drag and drop values
Certain textual and numerical operators allow you drag and drop TXT
or CSV
files containing comma-separated values rather than entering values individually.
For example, you may have a list of organization IDs that you want to create a property condition with.
Instead of entering each value one by one, you can drag and drop a file with all the values in the Hightouch UI.
Refer to the textual and numerical operators sections for which operators support this feature.
Textual operators
When filtering on textual data, for example on a product's brand or a user's location, you can use these operators:
- equals
- does not equal
- contains
- does not contain
- starts with
- does not start with
- ends with
- does not end with
- exists
- exists and is not empty
- does not exist
You can use the drag and drop feature with the following operators: "contains," "does not contain," "equals," and "does not equal."
The contains operator uses a fuzzy search; it translates to the SQL LIKE
operator with the compared value surrounded in % %
.
The equals operator looks for an exact match. It also uses LIKE
operator, but with ' '
surrounding the operand.
Numerical operators
When filtering on numerical values, for example, a product's price or a user's lifetime value, you can use these operators:
- equals
- does not equal
- greater than
- less than
- greater than or equal to
- less than or equal to
- exists
- does not exist
You can use the drag and drop feature with the following operators: "equals" and "does not equal."
When using the "greater than," "less than," "greater than or equal to," and "less than or equal to operators" you can enter an absolute numerical amount, or enter a percentile.
The following example screenshot shows a filter for users in the top fiftieth percentile of lifetime value.
To use the percentile option, make sure the column has suggestions turned off.
Boolean operators
When filtering on Boolean (true or false) values, you can use these operators:
- equals
- does not equal
- exists
- does not exist
Timestamp operators
When filtering on timestamps, you can use these operators:
- before
- after
- within (for example, "within the previous 3 months")
- not within
- exists
- does not exist
- between
- anniversary
The anniversary operator checks whether it's an anniversary of the timestamp today. This operator is useful when building campaigns around birthdays or anniversaries.
Limit audience size
You may want to limit your audience size to make it more cost-effective or to only focus on those who are most likely to respond to a campaign. You can do this in Hightouch by clicking the three dots to the left of Preview Results. Then, select:
- whether you want to use the top or bottom of the audience, as sorted by a particular column value
- the size of the audience
- the column to use for sorting
It usually makes the most sense to use a column with numerical values for sorting.
Click Save to update the audience.
You can open the same menu to remove the size limit.
Clone audiences
After creating an audience, you can clone it by opening the horizontal three-dot menu on its configuration page and clicking Clone.
This opens a new page where you can:
- edit the cloned audience's configuration
- select which syncs to clone, if the audience you're cloning has syncs associated with it
- give it a custom name and description
Once you finish creating the cloned audience, you can further edit it and configure additional syncs on it like any other audience.
Tips and troubleshooting
Filter value suggestions not appearing
If you want to see suggested filter values, make sure you've configured the relevant parent, related, or event model's columns to show suggestions.
For example, to see suggestions for the brand of a product that was added to the cart:
You need to turn on suggestions for the brand column in the Product Added to Cart event's model:
If you still aren't seeing suggestions though suggestions are enabled, refresh the suggestions using the refresh button.
Percentile option not appearing for numeric filters
To use the percentile option, make sure you've configured the relevant parent, related, or event model's numerical column to not show suggestions.
The percentile option only appears for numeric columns without suggestions enabled.
Error: column "..." does not exist in _ht_with_column_casts
This error can appear when previewing your audience, when syncing your audience results to a destination, or when hovering over the warning icons displayed next to the suggestion toggles in your parent model:
This issue occurs because a parent model no longer contains certain columns. Although these columns no longer exist in the dataset, Hightouch cached their names for the UI, causing the error.
To resolve this, preview the parent model's results and save the new configuration. Previewing and saving the configuration refreshes the cached values and removes non-existing columns from the UI.