September 18, 2018
Segment options
This article describes all available options for segment creation.
Things to know before starting
- Adherence to existing contact variables when setting group conditions; only predefined variables are supported for segmentation.
- Differentiation between ENUM_STRING (text-based, no specific format) and ENUM_DATE (date-based, strictly requiring YYYY-MM-DD format) for variable types within a Contact List.
- Utilization of both customer-provided data (via API, manual entry, or file import) and behavioral data collected by Wooxy for building segments.
- Flexibility in group conditions, allowing an unlimited number of conditions at the same level linked by "AND" or "OR" operators.
- Independence of "AND/OR" operator changes within each group, regardless of external group configurations.
- Awareness of segment recalculation wait times, which depend on the Contact List size or current processing queues.
- Manual update requirement for segments not included in an Automation; automatic periodic recalculation applies only to segments used in active Automations.
- Automatic compliance recheck by the system before sending communications, ensuring only contacts that meet the current conditions receive messages.
- Dynamic nature of contact counts: the segment list displays the count from the last recalculation, rather than a real-time, exact number.
- Mandatory manual recalculation after adding or updating contacts to ensure they are reflected in the segment.
- Exclusion of inactive contacts from segments, regardless of whether they meet the specified conditions.
- Finalization of the total recipient count occurs only at the moment of Campaign dispatch for scheduled, drafted, or paused launches.
Variables
This filter group consists of custom global variables and variables defined for specific Contact Lists. The available operators support both String and DateTime formats, enabling precise data filtering to meet technical requirements.
-
String variable
- Equal - contact’s data exactly matches the specified text.
- Not equal - contact’s data does not match the entered text; any contacts with an exact match are excluded from the segment.
- Greater than - contact’s data is larger than the specified value based on lexicographical order (alphabetical and numerical arrangement).
- Greater than or equal - contact’s data is larger than or equal to the specified value according to lexicographical order.
- Lower than - contact’s data is smaller than the specified value based on lexicographical order.
- Lower than or equal - contact’s data is smaller than or equal to the specified value according to lexicographical order.
- Contains - contact’s data includes the entered text or a specific fragment of it.
- Not contains - contact’s data does not include the entered text or any of its fragments; such contacts are excluded from the segment.
- Start with - contact’s data begins with the specified string of characters.
- End with - contact’s data ends with the specified string of characters.
- Is empty - filters for contacts whose corresponding field contains no data.
- Is not empty - filtering for contacts where the corresponding field contains any value.
-
Date variable
- Is current day - compares only the month and day (MM-DD) from the contact's field, ignoring the year.
- Today - matches contacts whose data exactly matches the current date (YYYY-MM-DD) at the time of segment recalculation.
- Equal - filters for contacts where the field data exactly matches the date selected via the date picker.
- Not equal - excludes contacts whose data exactly matches the date selected via the date picker.
- Greater than - selects contacts with a date later than the one picked, based on lexicographical order.
- Greater than or equal - selects contacts with a date that is the same or later than the one picked.
- Lower than - selects contacts with a date earlier than the one picked, based on lexicographical order.
- Lower than or equal - selects contacts with a date that is the same or earlier than the one picked.
- Is empty - filters contacts whose date field contains no data.
- Is not empty - filters for contacts where the date field contains any value.
- Days before - filters contacts whose date falls within the specified number of days, using the full YYYY-MM-DD format.
- Days after - filters contacts whose date passed the specified number of days ago, considering the full YYYY-MM-DD format.
- Days between - filters contacts based on a range relative to an event date; for instance, setting a range of 4 days before and 2 days after an event includes contacts within that specific window.
-
Contact fields
- email - supports precise matching, fragment search (contains, start with, end with), availability checks (is empty), and lexicographical filtering for alphabetical organization.
- name / firstName / lastName - allows filtering by exact value, fragments, availability, or alphabetical range based on lexicographical order.
- phoneNumber - supports exact match, partial search, and availability checks, while maintaining the requirement for a single unique number per contact list.
- userId - provides filtering via exact match, fragment search, availability, or alphabetical range for system-specific identification.
- contactBirthday / createdAt (exact matches) - requires the full YYYY-MM-DD format for operators like Today, Equal, and Not equal; the year must match exactly to include the contact.
- contactBirthday / createdAt (annual events) - the Is current day operator ignores the year and compares only the month and day (MM-DD), making it essential for recurring events like birthdays or anniversaries.
- contactBirthday / createdAt (relative ranges) - operators Days before and Days after calculate the interval based on the full YYYY-MM-DD date; for instance, "2 days after" on March 5th will filter for contacts with the date March 3rd.
- contactBirthday / createdAt (date windows) - the Days between operator filters based on a specified range around an event; for example, if the event is 15.08.24 with a range of 4 days before and 2 days after, contacts with dates from 11.08.24 to 17.08.24 are included.
- contactBirthday / createdAt (lexicographical logic) - Greater than and Lower than operators treat dates as alphanumeric strings, enabling chronological filtering by comparing the character sequence of the YYYY-MM-DD format.
- avatarLink - restricted to availability checks to determine whether a profile image URL is present or absent in the contact record.
-
Subscription
- channelSubscribed - filters contacts who are subscribed to the selected channel (Email, SMS, Desktop/Mobile Web Push, Telegram, or Viber) at the moment of segment recalculation. If multiple channels are selected, the segment will include only contacts who are subscribed to all selected channels simultaneously.
- unsubscribed - filters contacts who are unsubscribed from the selected channel at the moment of segment recalculation. If multiple channels are selected, only contacts who are unsubscribed from all chosen channels will be included in the segment.
-
Marketing
- source - allows filtering contacts based on their registration source via a drop-down menu; supports matching (Equal, Not equal) and availability checks (Is empty, Is not empty).
- contactScore - filters contacts based on their score value; utilizes lexicographical order for range comparisons. For example, using Greater than with a score of "50" will include "100" because "100" follows "50" in the alphanumeric sequence.
- cacValue - manages Customer Acquisition Value filtering; uses lexicographical logic for comparisons. For instance, using Lower than or equal to " with a value of "1" will include "0.55" because "0.55" appears before "1" in the sorted sequence.
- Marketing Field Logic - all numerical marketing fields (contactScore, cacValue) support Equal, Not equal, range operators (Greater than/Lower than), and emptiness checks; filtering is consistently based on the character-by-character arrangement of the input values.
-
Demography
- contactGender - filters contacts based on the specified gender; supports matching (Equal, Not equal) and availability checks (Is empty, Is not empty).
- age - value is derived from the contactBirthday variable; supports exact matching, availability checks, and lexicographical range operators. For example, using the greater-than operator with an age of "20" includes "30" because "30" appears after "20" in the sequence.
- contactLanguage - allows filtering by the contact's language; supports matching (Equal, Not equal) and checks for whether the language field is filled or empty.
- Demographic Field Logic - numerical comparisons for age follow a character-by-character arrangement; for instance, Lower than or equal to "20" will include "18" as it precedes "20" in lexicographic order.
-
Social networks
- facebook - allows checking whether a link to the contact's Facebook profile is present (Is not empty) or missing (Is empty) in the database.
- instagram - filters contacts based on the presence (Is not empty) or absence (Is empty) of an Instagram profile link.
- linkedin - checks for the existence of a LinkedIn profile URL in the contact's field; supports availability filters only.
- twitter - enables segmentation of contacts who have a connected Twitter (X) profile (Is not empty) or those who don't (Is empty).
- tiktok - used to identify contacts with a TikTok profile link by checking if the field contains any value or is completely empty.
-
Geography
- timezone - filters contacts based on their geographical time zone; supports matching (Equal, Not equal) through a selection menu and availability checks (Is empty, Is not empty) to identify contacts with or without time zone data.
-
Engagement
- Has Opened - filters contacts who opened messages via Email, WebPush, Telegram, or Viber; strictly excludes messages sent via direct API, Profile, or Preview. This parameter allows filtering by specific templates, campaigns, or periods (1, 7, 14, or 30 days). It also supports aggregated logic: "Any of the last 5 Campaigns" includes contacts who opened at least one of the 5 most recent campaigns (requires at least 5 campaigns to have been sent), while "All of the last 5 Campaigns" requires a perfect opening record for all five.
- Has not Opened - identifies contacts who received but did not open messages; includes those with "hard" or "soft" delivery statuses. For "Any Campaigns within 7/14/30 days", a contact is excluded only if they open all campaigns sent during that period. Under aggregated logic, "Any of the last 5 Campaigns" keeps a contact in the segment even if they opened one or a few of them, whereas "All of the last 5 Campaigns" includes only those who failed to open every single one of the 5 most recent campaigns.
- Has clicked on - filters contacts who both opened and clicked a link in a message; supports specific templates, campaigns, and periods. Aggregated options include "Any of the last 5" (at least one click among the last five sent) or "All of the last 5" (clicks in every one of the last five).
- Has not clicked on - includes contacts who received messages but did not click. For the "Any of the last 5 Campaigns" filter, a contact remains in the segment if they haven't clicked on all of them. The segment is only cleared if a contact clicks every campaign sent during the specified relative period (7/14/30 days).
- Has been sent / Has not been sent - tracks delivery across all channels; supports filtering by specific templates or aggregated periods. "Any of the last 5" filters based on whether a contact was (or was not) a recipient of the most recent campaign cycle.
- Dismissed WebPush - specific to Desktop and Mobile WebPush; filters contacts who received the notification but manually closed it in the browser instead of clicking or ignoring it.
- Last delivered - filters based on the timing of the most recent delivery (e.g., "During 1 day" for yesterday/today) or identifies contacts who have "Never" received a message on a specific channel.
- Total clicked/opened/delivered - quantitative filters for unique actions within a set period; allows entering a specific message count to identify users based on the frequency of their engagement.
-
Behavior
- Simple events (Event happened) - filter all contacts for whom a specific interaction between a user and the product has occurred; the action must be previously registered as an event in the platform.
- Simple events (Event didn’t happen) - includes contacts who have not engaged in the specified interaction with the product within the platform’s records.
- Simple events (Event happened multiple times) - selects contacts who have performed a specific action a predetermined number of times (e.g., 3 or 5), based on registered event data.
- Events with conversion (Event happened) - identifies contacts who completed a conversion action, such as making a purchase, signing up for a newsletter, or downloading a whitepaper.
- Events with conversion (Event didn’t happen) - filters for contacts who have not yet reached the specified conversion milestone (e.g., have not made a purchase).
- Events with conversion (Event occurred multiple times) - groups contacts who have achieved a specific conversion (e.g., "Purchase") a defined number of times, enabling identification of frequent customers or users.