Journey builder
![Journey builder UI](https://files.readme.io/475d98a-image.png)
Journey Builder
The Journey Builder allows you to create custom login, registration, and self-service workflows without having to write any code. This feature augments the existing policy-driven approach by allowing you to define custom journeys that can be dropped into policy-driven workflows. You get the flexibility of custom code with the usability of clicks and configuration.
The UI-based workflow definition engine allows non-technical admins to select and configure steps in a workflow, including complex branching on rules and conditions. Its hub and spoke interface makes it easy and intuitive to lay out flows and visually inspect them for accuracy.
Capabilities
- Define registration fields to include in a registration/self-service step
- Display custom HTML content
- Split workflow into multiple branches using rules-based conditional statements based on claim values, local variables, or context variables from Lifecycle Event Hooks
- Define conditional branching based on claim values, local variables, or context variables from Lifecycle Event Hooks.
- Persist data into local variables, context variables, or account attributes via native claims
- Force an MFA authentication step based on a configured policy
- Force a password step and branch based on the authentication outcome
- Insert an identity verification workflow as a journey step
- Pass key-value pairs to the calling hook when the flow reaches an exit point
Sample use cases
- Create a multi-step registration process
- Providing a different registration flow for private vs. business customers
- Create a custom error screen when the provided registration information is not valid
- Force an MFA step before allowing a customer to update sensitive information
- Require different authentication methods based on information passed from a brand portal
- Progressively profile a user based on their account creation date
![A ample use case for providing different registration flow for private vs business customers.](https://files.readme.io/251ed3b-image.png)
A sample use case for providing different registration flow for private vs business customers.
Configuring a journey
View existing or create new journeys by selecting “Journey builder” from the main menu. Click “Create journey” to create a new journey or select an existing journey to view/edit.
![](https://files.readme.io/7dc140b-Screenshot_2024-02-05_at_10.52.48_AM.png)
Journey builder steps
![Journey builder steps modal](https://files.readme.io/9cf7805-Screenshot_2024-05-01_at_1.54.13_PM.png)
Step name | Description |
---|---|
Input | Collect data from a customer, map local variables to native claims, and/or display arbitrary HTML. |
Persist data | Select data to be persisted into the user's account record. Data can be mapped from local variables, session context variables, static values, or the value from another native claim. |
Condition | Configures multi-branch workflows based on conditional rules written against native claim values, local variables, or session context variables |
Identity verification | Inserts a policy-driven identity verification workflow. |
MFA authentication | Enforces MFA authentication and provides conditional branching based on a configured adaptive access policy. |
Password authentication | Enforces password authentication and provides conditional branching based on the authentication outcome. |
Exit success | Defines variables that can be passed back to the calling Lifecycle Event Hook after a successful journey. |
Exit failure | Defines variables that can be passed back to the calling Lifecycle Event Hook after a failed journey. |
Implementing a journey
Journeys are implemented via a function call inside of a lifecycle event hook.
For example, to implement a multi-step registration flow, add the following logic to the module.exports function:
module.exports = function({
application,
oidc_context,
saml_context,
customer,
session,
continue_context,
continue_request_parameters,
journey_result
}, callback, deny) {
// implement your logic here
// the following function call does not modify the registering user
if (journey_result) {
// handle result returned by the journey
callback(new RegistrationData(customer.attributes, [], session));
return;
}
callback(new StartJourney(new Journey('journey-id'), session));
where "journey-id" equals the unique identifier of the journey you want to implement.
Journey identifiers can be copied from the journey's line-item on the journey listing page.
![Copy journey ID](https://files.readme.io/9f52e40-image.png)
Copy journey ID
Journeys can be launched from any of the following Lifecycle Event Hooks:
- At failed identification
- After external Login
- After identity verification
- After customer identification
- After registration
- Before authenticator enrollment
- Before external registration
- Before identity verification
- Before multi-stage registration
- Before password validation
- Before progressive profiling
- Before registration
Updated 11 days ago