Logic Basics
AND (All Must Match)
When conditions are combined with AND, a contact must satisfy every condition:- Clicked in the last 7 days, AND
- Received more than 3 messages, AND
- Have
custom_fields.stateequal to “California”
OR (Any Can Match)
When conditions are combined with OR, a contact must satisfy at least one condition:custom_fields.state matching California, Texas, OR Florida is included.
Result: Contacts meeting ANY criterion are included.
Condition Groups
Creating Groups
Groups let you combine AND and OR logic. Each group is evaluated first, then groups are combined. Structure:Example: Engaged OR New
Target engaged contacts OR brand new signups:- Recent multi-clickers (engaged users)
- Brand new signups who haven’t been messaged
Common Patterns
Geographic Targeting
Target multiple states or regions:Engagement Tiers
Target by engagement level:- Highly Engaged
- Moderately Engaged
- At-Risk
Revenue-Based Segments
- High Value
- Has Purchased
- No Purchase Yet
Re-Engagement
Target lapsed contacts who were once active:- Have been messaged recently
- Haven’t clicked in a month
- BUT previously showed strong engagement
Exclusion Logic
Exclude certain contacts using NOT conditions:Advanced: Nested Groups
For complex logic, nest groups within groups:Deeply nested groups (groups within groups) are supported in the data model but are not currently exposed in the UI. The UI supports one level of group nesting.
Evaluation Order
Conditions are evaluated in this order:- Individual conditions within groups
- Groups combined (AND/OR between groups)
- Final audience membership
- Evaluate A AND B → Result 1
- Evaluate C AND D → Result 2
- Result 1 OR Result 2 → Final audience
Debugging Audiences
Audience Too Small
If your audience is smaller than expected:- Check that conditions aren’t too restrictive
- Try removing conditions one at a time
- Preview to see what’s filtering contacts out
- Verify the field has data (e.g.,
custom_fields.statemay be blank)
Audience Too Large
If your audience is larger than expected:- You may have OR where you meant AND
- Check group logic (groups OR’d together include more)
- Add additional qualifying conditions
Preview Tool
Always use the preview before sending:- Click Preview in the audience builder
- Review the sample contacts
- Check if they match your intent
- Adjust conditions if needed
Performance Tips
Indexed fields are faster
Indexed fields are faster
Fields like
last_clicked_at, send_count, and signup_date are stored on ListContact and are indexed for fast queries. Custom fields may be slower on large lists.Cross-collection lookups are slowest: Timezone, carrier, and DNC conditions require a $lookup join to the Contact collection, which is significantly slower than ListContact-only conditions. Use these sparingly in complex audiences.Fewer groups = faster
Fewer groups = faster
Simple audiences with 2-3 conditions evaluate faster than deeply nested logic.
Cache audience sizes
Cache audience sizes
For audiences used frequently, the cached size updates periodically. Don’t refresh constantly.
Next Steps
Dynamic vs Static
Choose the right audience type
Campaign Targeting
Use audiences in campaigns