Skip to main content
Condition node

The condition node is a powerful tool to segment the customers going through your flow based on specific criteria.

Updated over 2 months ago

For example, use the condition node to check if customers who have purchased something from your shop in the last 2 weeks. Then: If no → send them a special offer to entice them to If yes → ask for feedback on their experience or considering up/cross-selling

ALL vs. ANY conditions

In charles there are two ways that you can connect single conditions within the Condition Builder:

  • ALL: a customer must meet all conditions to be included in this flow path

  • ANY: a customer must meet 1 condition to be included in this flow path

Want more details? Click below ⬇️ to deep dive into an example and see how ALL vs. ANY change the outcome.

Example

ALL is more exclusive. When using an ALL joiner, somebody must meet all the conditions in order to be included. For example, if you create a segment of people who have a certain tag and have placed an order, this will only include people who fulfilled both criteria.

ANY on the other hand is more inclusive. This means that somebody only has to meet one of the conditions in order to be included. Using the same example, let’s say that we build a segment of people that have a specific tag or have placed an order. In this case, somebody only needs to have placed an order or have the tag, not both.

While this will include everyone who is in our ALL segment, it will also include people who have the tag but have never placed an order and vice versa.

For this reason, segments with ANY conditions would be larger than segments with ALL conditions.

When using the ALL and ANY joiners, we must pay attention when we have a negative condition. The goal then is to check if none of the elements satisfy a certain condition. When using the OR connector in a negative condition, it is better to use the ALL joiner instead of ANY. This is because ALL checks if all elements satisfy a condition, while ANY checks if at least one element satisfies a condition.

For example, we want to display all the clients that don’t live in Canada or US. Naturally, we should use the ALL joiner to check that a client is neither living in Canada nor in US. First it will check if a client is not in Canada and then not in US; only if the client is in neither, it shall be displayed.

If you are not sure which to use when building a condition, think about the number of people who meet the conditions. If you use ANY when you should instead use ALL, this number will likely be much larger than what you expect.

Rules

Events that have happened

Events form the foundation of personalized messaging flows. They can include actions such as filtering if someone placed an order, triggered a flow or clicked a campaign link. By using events, you can create an engaging experience, making it more relevant for the end user.

Rule

Filters

Description

Example/s

Source

Person has placed an order

Where;

- Items contains x

- Discounts contains x

- total order value is greater/less than x

Check the contents or value of their last order and funnel customers into different flow paths.

- If a customer has placed an order more than 2 times in 30 days

- If customer has brought a product that contains “makeup”

- If a specific discount was used

- What the total order value is

Shop system

Clicked a campaign link

Where; - Campaign name is [completed campaigns]

Filter the flow based on whether a customer has engaged with a certain campaign.

-If a customer has clicked a campaign link at least once in the last 30 days

- If a customer engaged with last year’s Black Friday campaign

charles

Triggered a flow

Where;

- Flow name is [available flows]

Check if a customer has triggered a certain flow before funnelling them into different flow paths.

- If a customer has triggered a flow more than 2 times in the last 1 hour

- If a customer triggered the product finding flow

charles

Properties about a customer

Tags are labels or identifiers that can be assigned, through the Manage tag node, to users based on specific attributes or answers they have given. You can use tags segmentation to enable targeted messaging based on their unique attributes. To learn how to add Tags using Journeys, click here Storing responses of your customers

Rule

Description

Example/s

Source

Tags

Filter the flow based on tags from a customer’s actions or previous responses

- If a customer is shopping for women’s clothing vs men’s

charles

Opt-in status

Make sure you stay GDPR compliant with an opt-in status check. If already opted in, funnel the customer to start the flow. If not, get them to opt-in first.

Rule

Description

Example/s

Source

Person’s opt-ins include

Filter the flow based on specific opt-ins.

- If a customer opted in for a specific event or VIP sale

charles

Has at least one opt-in

Contacts having at least one opt-in.

❗️We recommend always checking if a customer has at least 1 opt-in to be GDPR compliant.

charles

Last activity was an opt-in

The customer’s last opt-in activity was an opt-in.

❗️Be even more GDPR compliant and check that the customer’s last activity was to opt-in to receive communication from you.

charles

Person has no opt-out

As a customer can have multiple opt-ins, this helps to segment based on who hasn’t opted out of them.

- If a customer hasn’t opt-ed out

charles

To be super GDPR compliant, the best combination is: Last activity was an opt-in + person has no opt-out

Flow variables - charles

Rule

Description

Source

Preferred name

Contact’s preferred name

charles

First name

Contact’s first name

charles

Last name

Contact’s last name

charles

Name

Contact’s full name

charles

Nickname

Contact’s nickname

charles

Contact’s channel ID

Contact’s channel ID

charles

Flow variables - shop systems, webhooks & Klaviyo

To use the flow variable rules, the condition node needs to be connected to a shop system or Incoming webhook trigger or the outgoing webhook node. This way, the available variables can be fetched and used within the condition node.

Mix and match rules

Now that you have a glimpse of all possibilities to customize your content based on your customers’ actions, you can build rules as specific as you want.

Grouping

Rule groups are powerful when you want to combine ANY and ALL joiners in the same condition. For example, Someone who has the tags A OR B, AND has the tags C OR D, would be in the shaded segment below.

ANY

To recreate this kind of segment in Journeys, first create the following rule:

  • All conditions must be met

  • Person’s tag(s) include tag A

  • Person’s tag(s) include tag B

Next,add another condition.

This time, create the same rule you did before, just with tags C and D. To combine these two rules with the ANY joiner, simply connect both outgoing ports to the same node, for example, a message:

ALL

If you want to combine groups with the ALL operator, you can do that by simply chaining multiple condition nodes, as shown in the example below.

Did this answer your question?