Filters allow you to select which users will move on to the next step in a workflow depending on which queries they fulfill. To apply a filter, drag a filter node from the left-side tray to the desired location in the workflow. Filters are represented by purple nodes in the workflow.
Table of contents
This document describes three types of filters:
Fields Match
You can use the query builder to create your filters based on whether a list of users match certain profile fields or have certain events set on their profile. The interface is similar to the segmentation interface.
The following query filters on a user profile field (in this case, catName
):
To apply a filter that looks specifically at the event that triggered the workflow, enable the toggle labeled Match on Data Fields from the Event that Triggered this Workflow.
The filter below will only be applicable to a workflow that is triggered by a
completedTasteQuiz
event that has the data field results
.
NOTE
A race condition may occur if you are using a fields match filter node directly after a trigger node. For example, you may be triggering a workflow with a signup event; right after the trigger node, you have a filter that is checking the user profile for a certain field. However Iterable may not have had time to update the user profile before the user enters the field node. To account for the race condition, add a one min delay after the trigger node before the filter node.
Dynamic field matching across custom events
Perhaps your company helps customers find and apply to multiple jobs. Or maybe you have an online clothing rental company that allows people to have multiple outstanding rentals at once. As a result, you need the ability to check if two events (e.g. job viewed and job applied or order shipped and order returned) have matching ids.
This example deals with a business ness that helps people find their
lost cats. The events to compare are lostCat
and foundCat
. A person may
have multiple cats that are lost at a given time.
The workflow is triggered with a lostCat
event. The user's lostCat
event
payload looks like this:
{ "email": "sherry@iterable.com", "eventName": "lostCat", "dataFields": { "catId": "Lucifer" } }
However, the user may have multiple cats that are lost, and therefore
multiple lostCat
events. In five days you want to check if there is a
foundCat
event for the same cat (Lucifer
) that first triggered the
workflow. If the person has a foundCat
event with the same catId
as the
triggering lostCat
event, send an email congratulate them on finding
their cat.
Here's the payload for the foundCat
event:
{ "email": "sherry@iterable.com", "eventName": "foundCat", "dataFields": { "catId": "Lucifer" } }}
By setting up the filter in this way, Iterable will only send an email if the
user has a foundCat
event with the same catId
as the triggering lostCat
event. If the user finds any cat other than Lucifer
, then she will get the
congratulatory email for the other cat and not Lucifer.
If the field you are matching on is a numeric data type (integer, long, float, etc), be sure to cast the type of the field as a Merge Param. This way, you can type in the curly braces for the merge parameter:
A/B Split
You can create multiple splits if you’re interested in testing different email series or delays. In the filter node, select A/B Split. You can create up to five splits and can specify the percentage split by dragging the allocation bar.
Field Split
Using a field split filter node, you can check if a user profile field matches up to ten different values. Based on the match, you can route users to different parts of the workflow.
You can also include a default split for users who do not match any of the specified splits and route all of these users into a specified workflow.
If you do not include a default split and no matches were found for any available splits the user will exit the workflow.
For example, if you wanted to send a customized email template based on a user’s favorite color, you could apply a field split filter. If a user’s favorite color is not found or does not match one of the given choices, the workflow can put them in a default path or cause them to exit the workflow, depending on the configuration you specify.
NOTE
A race condition may occur if you are using a field split filter node directly after a trigger node. For example, you may be triggering a workflow with a signup event; right after the trigger node, you have a filter that is checking the user profile for a certain field. However, Iterable may not have had time to update the user profile before the user enters the field node. To account for the race condition, add a one min delay after the trigger node before the filter node.
For a complete overview of Iterable workflows, read Workflow Overview.
Comments
0 comments
Please sign in to leave a comment.