Create the "welcome stream" BPM journey
The BPM journey is the actual life cycle, where you define the states (steps) of the life cycle. It always starts with a BPM In component, and not an audience like other journeys. The BPM In component is followed by a series of BPM states components and their events (triggers), going from one state to the next. Here, when a contact enters a state, an email is sent.
1. Create a new journey and add one BPM In component and three BPM State components
2. In the properties of the BPM In component select the audience list for which the welcome stream is intended. Check "unique users", the contact can only be added once to this BPM life cycle.
When you save the journey, a BPM List is created as a profile extension (1:1) to the audience list. One record is created for the contact if he enters the welcome stream through the BPM In component. If unchecked, the contact can be added multiple times to the BPM process. Multiple records are created for him.
The BPM List holds when and in which state the contact currently is. The STATEID field holds the id of the BPM state component the contact currently is in. Click the "1" icon in the top left corner to see the id's of each component (also called journey "action ids").
If you need to store additional data to use in the BPM life cycle, you can create additional fields in the BPM List under the "Fields" tab. We do not need it in this example, so lets continue.
3. Immediately after passing the BPM In component, the "New record" event will transfer him to the "First touch" BPM State. Let's define the other events for the BPM State components:
- From First to Second touch: 3 days later and no purchase
- From Second to Third touch: 4 days later and no purchase
4. In the properties of the First touch BPM State, click the 'Events' tab and add a new event.
5. Name the event "+3d and no purchase". Leave the type to 'Data Check', We need to check the Products Info extended profile if the contact already has a purchase or not. Select an icon and set the delay to 3 days.
6. Click "Edit to create the constraint for the data check. Click "Set Filter" and create the following constraint:
PURCHASEINFO.PURCHASE_COUNT=0 OR PURCHASEINFO.PURCHASE_COUNT Is Empty
NOTE : Only use actual values when defining constraints. In the 'Check' field, the constraint will be visible with the correct syntax.
Do not use functions in the 'value' field, as this may result in an incorrect syntax!
Example of a correctly set value in the constraint editor, and the generated constraint syntax in the 'check' field of the BPM state properties :
7. Close the BPM State properties and connect "First touch" with "Second touch" using the newly created event "+3d and no purchase"
8. Do the same for the "Second touch" BPM State component but with a delay of 4 days
9. When the contact enters a state, we will send them an email. Connect the three emails on "Entry" to BPM state components:
- First touch = welcome offer email
- Second touch = reminder of new products
- Third touch = do not miss out
In this example the contact can only be once in each state. But in other BPM life cycles, it is possible the contact can return to a state they have already been in. In this case, the message will be sent every time the user enters the state.
You don’t have to set the emails to instant. Opt-outs are taken into account.
10. Schedule the journey to run 'data driven' every 60 minutes. You must launch the journey. With each execution, every 60 minutes, the contacts in the BPM process will be evaluated (data check events) to see if their state needs to change.
BPM journeys need to be data driven if they contain data check events. If a BPM journey only contains triggered or interactive events and the BPM source journey (see next) is executed instantly; triggered by an API call through an input component for example; the journey will execute even when it is 'in design' (not launched). Triggered and interactive BPM State events are not used in this example.
Back to example 'Welcome scenario'