A segment is a dynamic list of contacts that updates when a new contact meets the conditions. A list is static and won’t update.
Build a dynamic segment
1. Go to Contacts > Segments & lists & click Create a new segment or list
2. Select Create a segment:
3. Give the segment a name
4. Now build your segment using the Audience Builder:
Segment conditions:
Condition groups: Using All / Any logic
When building a segment, you can create multiple condition groups. Each group can have its own logic settings, allowing you to create simple or advanced targeting rules.
There are two levels where you can control logic:
1. Segment-level logic (top level)
At the top of your segment, you can choose whether:
All of the condition groups must be true
Any of the condition groups must be true
This determines how the groups relate to each other.
Example:
If you set the top selector to All, then every condition group in the segment must be true for a contact to qualify.
2. Condition group logic
Inside each condition group, you can also choose between:
All of the following conditions are true
Any of the following conditions are true
This gives you even more control over how conditions combine.
Example:
If you set the condition group to Any, the contact only needs to match one of the conditions inside that group.
How it works together
Top-level All + group-level All
→ Contacts must meet every group and every condition inside each one.Top-level All + group-level Any
→ Contacts must meet every group, but only one condition inside each group.Top-level Any + group-level All
→ Contacts must fully match at least one entire group.Top-level Any + group-level Any
→ Contacts can match any condition in any group.
Rules for Building Segments:
There are several filters you can use to fine‑tune your conditions. Go ahead and explore them to see what fits your needs.🤗
Events:
Event type | What it means | Common use cases in segmentation | Example rule patterns |
clicked message | The contact clicked a link in a message. | • Highly engaged audiences | • Contact has → clicked message → at least once → in the last X days |
received message | The contact who received a message. | • General sends | • Contact has → received message → at least once → in the last X days |
read message | The contact opened/read a message. | • Mid-funnel audiences | • Contact has → read message → at least once → in the last X days |
received last message | The most recent message sent by the business was delivered to the contact. | • Reachability checks | • Contact has → received last message in the last X days |
sent last message | The most recent message in the conversation was sent by the contact. | • Detecting active inbound conversations | • Contact has → sent last message in the last X days |
bought product | The contact purchased a product in the Shopify store. | • Cross-sell/upsell | • Contact has → bought product → at least once → over all time |
placed order | The contact placed an order in the Shopify store. | • Cross-sell/upsell | • Contact has → placed order → at least once → in the last X days |
Properties:
Property | What it means | Common use cases in segmentation | Example rule patterns |
tag | A tag assigned to the contact. | • VIP labeling | • Contact has tag → is any of … |
total order | The total number of orders the contact has placed in the Shopify store. | • High‑value customers | • Contact total order → is greater than or equal to → X |
created date | The date when the contact was added to charles. | • New customer onboarding | • Contact created date → in the last → X days |
last order date | The date of the contact’s last order. | • Win‑back campaigns (“has not ordered since…”) | • Contact last order date → before → DATE |
The contact’s email address. | • Identify missing emails | • Contact email → is not empty | |
birthday | The contact’s birthday. | • Birthday automation | • Contact birthday → is today |
custom property | Additional or custom information collected and saved in the contact profile. | • Industry-specific use cases | • Contact custom property → is any of … |
Opt‑in:
Opt‑in rule | What it means | Common use cases | Example rule pattern |
Opt-in as last activity | The contact’s most recent consent action is an opt‑in. | • Sending campaigns only to currently subscribed contacts | • Contact has → Opt-in as last activity |
Opt-out as last activity | The contact’s most recent consent action is an opt‑out. | • Excluding unsubscribed contacts | • Contact has → Opt-out as last activity |
Opt-in and no Opt-out | The contact opted in at least once and has no opt-out. | • Retargeting previously subscribed customers | • Contact has → Opt-in and no Opt-out |
Multiple Opt-ins | The contact has more than one Opt-in. | • Strong engagement indicators | • Contact has → Multiple Opt-ins -> select opt-in |
Single Opt-in | The contact has a single opt-in. | • Identifying new subscribers | • Contact has → Single Opt-in |
Double Opt-in | The contact has a double opt-in. | • High-trust audiences | • Contact has → Double Opt-in |
List:
Condition | What it means | Common use cases | Example rule pattern |
Contact is in list | The contact is included in a specific list you previously created. | • Targeting contacts imported via CSV | • Contact is → in → selected list |
Contact is not in list | The contact is not included in a specific list. | • Excluding audiences | • Contact is not → in → selected list |
Build a static list
To start building your List:
1.Go to Contacts > Segments & lists & click Create a new segment or list
2.Select Create a list:
3. Give the List a name
4. Select Add a contact
To add contacts from existing contacts;
5. Select From Existing Contacts. A modal will open.
6. Single-select or select all contacts:
OR
To add from phone number;
Select Enter Phone Number
Enter the phone number into the dropdown
Once you’ve added your contacts, click Next
Review your List and select Save
You may also import your contact list and assign it to a list you've created in charles.
Best Practices:








