Defining Streams
General
Streams consist generally of three elements: trigger, behavioral modifiers, and actions. These elements are connected via a simply flowchart-like tree that always begins with a single trigger. Once triggered, the stream's logic is evaluated against the current user and session. A stream must include a trigger and an action. Additionally, every branch created by an element that modifies behavior - like a A/B splitter - must end with an action.
Triggers
Streams can be triggered by one of the following events:
Session expiry
An order is received
An email address is collected
A form is submitted
A user subscribes to Web Push Notifications (if account supports notifications)
A user subscribers to SMS messages (if account supports SMS)
Any of these events can be used as a stream trigger. The stream's logic will be evaluated immediately upon the trigger occurring. Only one trigger can be used with a single stream, but multiple streams can be active at once with different triggers.
Modifying Behavior
Streams can optionally include behavioral modifiers to alter the runtime behavior of the stream. These nodes typically sit between the trigger and any of the stream's actions
A/B Splitter
This element branches the stream flow according to defined percentages.
By default, creating an A/B Splitter will split the stream flow into two branches, each evaluated 50% of the time. Once a splitter is created on the stream, you can click the "A/B Splitter" node to add another A/B Element to add branches. Of course, the sum of the defined percentages must add to 100%.
When this stream is triggered at runtime, the system will select a branch to follow based on the percentages set.
Condition Group + Condition(s)
A condition group can be added to the stream to ensure that a specific condition is met prior to continuing down the branch. Multiple conditions can be added to one condition group to split the flow into multiple branches. Also, multiple filters can be added to a single condition (Figure 2) that all have to be met before the entire condition is considered fulfilled.
If the condition or group of conditions are not met, the branch is completely abandoned. If all branches are abandoned because of this, the stream is ignored until the next trigger occurs. No action takes place in this case.
A list of all condition filters is located at the bottom of this page.
Note: Streams triggered by SMS or Web Push can only use the "Domain" condition filter in any of their condition groups.
Timer
A timer node will force the stream process to halt for a certain amount of time prior to continuing. There are two types of timers:
Relative to previous action: This means that the timer will start when the previous action node ends. This previous action node could be a trigger or an actual action.
Relative to custom data property: This means that the timer will operate off of a defined custom data property. This property must be a valid date, and the system will use the most recently captured value on the session. If this type is selected, the editor will allow you to choose the custom data property, time zone, and whether to calculate the timer so that it occurs prior to the custom data value or after.
No matter the type, the editor will allow you to edit the following:
Duration: This is the timer value. If "relative to previous action" is selected, this is the amount of time to wait after the prior action to continue the stream. If "relative to custom data property" is selected, this is the offset from the defined custom data value to continue the stream. It will be blocked and no actions executed until this date and time.
Continue flow on new session or order: If enabled, the timer will continue operating when the user creates a new session or order. By default, streams that use order or session triggers are stopped when the user starts a new session/order.
Actions
When a stream is triggered and any conditions or other behavioral modifiers are met, any valid actions will run if valid. The following actions are currently supported:
Send to Product Recommendations Service
Send a Web Push Notification
Send an SMS Message
Update User Data
Each action type supports the ability to add "Action data" that will be made available to the destination service of each action.
Send to ESP / HTTP / FTP
The "Send to Endpoint" action only requires a valid ESP / FTP / HTTP endpoint that can be setup in Endpoints. As the help text mentions, ESP endpoint actions will only run for users who have a known email address.
Optionally, you can choose to include product recommendations information (if enabled) inside the data sent to the endpoint.
Send to Product Recommendations
The "Send to Product Recommendations" action will send the data in "Action data" to the recommendations service.
This action is only available if product recommendations is enabled on your account.
Send a Web Push Notification
The "Send Notification" action will send the user the specified template web push notification. To learn more about template notifications, view the notifications documentation. Only an active and valid notification will be sent when an action of this type is triggered.
Send an SMS Message
The "Send SMS Message" action will send the user the specified template SMS message. To learn more about template SMS messages, view the SMS documentation. Only an active and valid SMS message will be sent this an action of this type is triggered.
There are additional limitations on whether SMS messages are sent to a user including their current subscription status, time of day, and country of origin. So just because this action is triggered, the SMS message may not be sent for a variety of reasons. Please take a look at the documentation for more.
Update User Data
The "Update User Data" gives you the ability to update Fanplayr's user data inside the stream. The "Action data" section of this action type is a little different because it allows you to customize the behavior of the user property saved. The "Update behavior" value can either be "Overwrite previous value" or "Set only if there is no value", and you can specify the number of days to retain the property and value.
A similar result can be achieved on the client by using Fanplayr's User Management system.
General Editing Information
Each node in the flow has a name automatically generated. This name can be edited to help uniquely identify similar nodes, but it is common to leave the name as default.
Actions can be chained to trigger multiple actions in the same branch. Still, the end node of a branch must be an action.
The flow UI can be rotated 90 degrees to a left-right orientation by clicking "Rotate layout" at the top of the screen.
List
Streams can be in one of four states:
Published: The stream is live on your site.
Disabled: The stream was previously published but is now deactivated. It can be reactivated in this state.
Draft: The stream is still being created and is not live.
Archived: The stream is considered deleted.
Only "Draft" streams can be edited, as editing a stream while published could cause issues. If you would like to make changes to a published stream, please duplicate the stream, edit, and publish. Then you can disable the old stream.
Only "Disabled" and "Draft" streams can be archived. If you want to completely remove a published stream, disable it first and then archive.
Your account can have as many streams as you want currently active, and multiple streams can be triggered by the same trigger type.
All Condition Filters
Page url
Viewed category ID
Viewed category name contains
Viewed product ID contains
Viewed product name contains
Cart category ID contains
Cart category name contains
Cart product ID contains
Cart product name contains
Domain
Browser language
Source
Source type
Device
Browser
Operating System
Segments
Widgets
Presented Offers
Trigger Source Widget
Page Views
Category Page Views
Product Page Views
Cart Page Views
Seconds on Site
Abandoned Cart Value
Visits Since Last Conversion
Order Value
Has notification subscription
Has SMS subscription
Has email subscription
User Data Property
Visited since previous step
Visited since process start
Order placed since previous step
Order placed since process start
Order placed in session
Last updated