Conditions are a node type in FunnelFlux that allow you to route users depending on rules that you set.
These condition nodes can be used inside a funnel and can be either local or global.
Global Conditions are ones that you make on the conditions page. These can be inserted into any funnel and their configuration is linked -- if you change their settings anywhere, including in the funnel builder, it will affect every funnel. This is useful for universal rule sets like routing certain ISPs, devices, user-agents, or generically routing by mobile vs desktop.
Local Conditions are any condition nodes you make from the funnel builder directly, by right-clicking or using the node palette. These conditions and their config exist only within that funnel. They are thus isolated and their changes do not affect anything except the current funnel/node. Use these for general routing that you're making for a specific situation.
You can visually see the difference between local and global nodes by the (G) on the node:
Conditions are built from three components:
- Routes. These are represented in the funnel builder by the connections coming from the condition node -- users will match a route and travel down that path.
- Rule groups. These are groups of rules items
- Rules. These are the actual matching items, like "country = US".
Here you can see how these items exist in a hierarchy:
When a condition node is processed, the route blocks will be checked from lowest number (1) to highest number, i.e. from top to bottom. Whichever route the user first matches, that is the one they will proceed down.
If they do not match any rule, the default route is returned.
When creating a condition node in the funnel builder, every route must have a corresponding connection. You can create these by clicking and dragging from the condition node to a destination and choosing the route.
As below, these routes will be labelled with the name you have set in the condition settings:
You can right click a connection > reassign route > if you would like to switch connections. Or just right-click and delete connections, then create them again.
When you create routes, inside you will see two buttons -- add group, and add rule.
Rule items are your individual logics, like X must equal Y. Sometimes you may need multiple conditions to be true, thus rule groups allow you to put multiple rules together and set an operator between them -- that is OR, AND.
For example, you may want to match users who are from the United States AND have device OS of Android.
For this you would need a single rule group with two rules inside, for country and OS, with an AND operator between them:
Now lets say you wanted this, but you also wanted users from Canada AND iOS to be routed to the same place. You can't add Canada and iOS to the rule group like this:
Because now, users from Canada with OS of Android would also match. So, you would need two separate rule groups with an OR between them -- an AND would not work, because a user couldn't be Android AND iOS at the same time:
In the end these are basic logic arguments, but its important to take care and ensure you don't have illogical statements, or ones that would always evaluate to true or false -- as those would not be conditional and would not achieve the behaviour you want.
Another example - you may want to match annoying ISPs and route them away from an affiliate link that would always bounce them anyway. You could create a rule group like this:
Here, we are using CONTAINS to match all ISP name variations containing the text "google" and in others we use exact matching.
Note, for complex/broad parameters like ISP, we do not provide a list -- you'll need to write individual entries (there are tens of thousands of ISPs so it's not sensible to maintain a nice dropdown list here). You will also need to add individual lines for each one, you cannot comma separate multiple values.
In the above example, selecting AND would be illogical, as a visitor cannot satisfy every rule line at once > it would always evaluate false.
These should be pretty self-explanatory if you have already read the above.
Rules just state if X operator Y, where the operator could be IS, IS NOT (or similarly EQUALS, does NOT EQUAL), contains, does not contain, etc.
Contains uses string matching and is available for text entry fields like ISP.
For attributes where there is a small number of possible values, we provide a dropdown for you to select items.
For example, Country will provide equals and "any in" -- the latter allowing you to select many items to create a list --> will match any items in that list. The available operators vary per attribute.