FlexEngage filters let you define exactly which customers receive a message. Each filter evaluates a specific piece of customer data and returns customers that match your criteria. You can use filters individually or combine them for precise targeting.
Every filter operates on the customer identity level. A customer identity ties together all of a customer’s accounts, vehicles, and contact info across your locations. This means filters automatically account for multi-location activity.
Wash History Filters
This set of filters specifically allow you to re-target based on wash behavior. These are useful for retail customers to re-target and get them back on site, and for members to ensure they are using the membership at a base frequency (which increases LTV).
Total Washes
Counts the total number of paid washes a customer has completed across all locations. This only counts orders associated to a package with count as wash set to true.
| Operators | Value |
|---|
= != > >= < <= | A number (e.g., 5) |
Total Washes Within X Days
Counts the number of paid washes a customer completed within a rolling window of days. Customers must have been created before the start of that window to qualify.
This filter is useful for identifying customers whose visit frequency has changed recently.
| Operators | Value |
|---|
= != > >= < <= | Two numbers: a wash count and a number of days (e.g., 0 washes in 30 days) |
Washes Since Subscription Status Change
Counts the number of paid washes a customer has completed since their most recent vehicle subscription status change. This looks at the latest entry in the subscription status log and counts all qualifying orders placed after that date.
| Operators | Value |
|---|
= != > >= < <= | A number (e.g., 3) |
Membership Filters
This set of filters is to allow you to segment members and specific activity around sign up, cancellation, number of vehicles, etc. with date range ability. This lets you test a new messaging concept specifically to new members only so you don’t risk large unintended effects.
Is Ever a Member
Checks whether a customer has ever had a membership with at least one vehicle subscription, regardless of current status.
| Operators | Value |
|---|
= | True or False |
Membership Status
Evaluates the overall membership status of a customer across all their vehicle subscriptions.
The logic accounts for customers with multiple subscriptions:
- Active: The customer has at least one subscription with an active or payment-failed status.
- Cancelled: All of the customer’s subscriptions are cancelled (none are active or in another state).
- Invalid CC: All of the customer’s subscriptions are in the invalid credit card state (none are active, cancelled, or in another state).
| Operators | Value |
|---|
= | Active, Cancelled, or Invalid CC |
Number of Vehicle Subscriptions
Counts how many vehicle subscriptions a customer has with a specific status.
| Operators | Value |
|---|
= != > >= < <= | A number and a subscription status (e.g., 2 subscriptions with Active status) |
Current Vehicle Subscription Status
Checks the current status of a specific vehicle’s subscription. This filter requires trigger context (a license plate), so it is only available in Smart Messaging campaigns, not Scheduled Blasts.
| Operators | Value |
|---|
in not in | A vehicle subscription status (e.g., Active, Cancelled) |
This filter is a trigger filter and is only available in Smart Messaging
campaigns that fire in response to a real-time event, such as a wash.
Membership Signed Up At
Checks the date a customer’s earliest active subscription was created. The date is evaluated in the car wash’s local timezone.
| Operators | Value |
|---|
= != > >= < <= | A date (e.g., 2025-01-15) |
Membership Cancelled At
Checks the date of a customer’s most recent cancellation. Only matches customers whose subscriptions are all cancelled (no active subscriptions remain). The date is evaluated in the car wash’s local timezone.
| Operators | Value |
|---|
= != > >= < <= | A date (e.g., 2025-03-01) |
Membership Invalid CC At
Checks the date of a customer’s most recent invalid credit card status change. Only matches customers whose subscriptions are all in the invalid CC state. The date is evaluated in the car wash’s local timezone.
| Operators | Value |
|---|
= != > >= < <= | A date (e.g., 2025-02-01) |
Billing Attempts
Checks the number of billing attempts on a customer’s membership. This is useful for identifying members whose payments are failing repeatedly.
| Operators | Value |
|---|
= != > >= < <= | A number (e.g., 3) |
Days Since Latest Status
Calculates the number of days since a customer’s most recent vehicle subscription status change.
| Operators | Value |
|---|
= != > >= < <= | A number of days (e.g., 7) |
Membership Anniversary
Identifies customers approaching an anniversary of their membership sign up. You specify how many days before the anniversary to match and the month interval for the anniversary cycle. The sign up date is evaluated in the car wash’s local timezone.
For example, setting 5 days before every 12 month anniversary will match members whose yearly anniversary is exactly 5 days away.
| Operators | Value |
|---|
= | Two numbers: days before anniversary and month interval (e.g., 5 days before every 12 month anniversary) |
This is a recurring filter and is only available on Scheduled Blasts with
a recurring send schedule.
Offer Expiring in X Days
Identifies customers whose promotional offer (promotion, upsell, or downsell) on an active subscription is about to expire. The filter checks that the subscription has exactly one billing cycle remaining and that the next billing date is a specific number of days away.
| Operators | Value |
|---|
= | A number of days and one or more offers (promotions, upsells, or downsells) |
This is a recurring filter and is only available on Scheduled Blasts with
a recurring send schedule.
Segmentation Filters
These filters allow you to use our CRM functionality to further refine and target customers. You can use these to build A/B tests and to customize messaging.
Tag
Checks whether a customer has a specific tag assigned. Tags are labels your team applies to customer accounts for internal organization.
| Operators | Value |
|---|
in not in | A tag from your tag list |
CRM List
Checks whether a customer belongs to a specific CRM list. CRM lists are manually or automatically curated groups of customers.
| Operators | Value |
|---|
in not in | A CRM list |
Customer Primary Car Wash
Checks which car wash location a customer is associated with as their primary location.
| Operators | Value |
|---|
= != | A car wash location from your account |
Phone Number
Matches a customer by their exact phone number. This is useful for testing a campaign with a single recipient before sending to a broader audience.
| Operators | Value |
|---|
= | A phone number |
Loyalty Filters
Loyalty Points Balance
Checks a customer’s current loyalty points balance across all their accounts.
| Operators | Value |
|---|
= != > >= < <= | A number (e.g., 100) |
Campaign History Filters
These filters are critical for building customer journeys.
Received Scheduled Blast
Checks whether a customer has already received a specific Scheduled Blast campaign.
| Operators | Value |
|---|
= (has received) != (has not received) | A Scheduled Blast campaign from your account |
Received Smart Messaging
Checks whether a customer has already received a specific Smart Messaging campaign.
| Operators | Value |
|---|
= (has received) != (has not received) | A Smart Messaging campaign from your account |
Checks whether a customer has redeemed a specific promotion by looking at their order history for line items tied to that promotion.
| Operators | Value |
|---|
= (has redeemed) != (has not redeemed) | A promotion from your account |