Journey builder

Journey builder UI

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.

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.

Journey builder steps

Journey builder steps modal
Step nameDescription
InputCollect data from a customer, map local variables to native claims, and/or display arbitrary HTML.
Persist dataSelect 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.
ConditionConfigures multi-branch workflows based on conditional rules written against native claim values, local variables, or session context variables
Identity verificationInserts a policy-driven identity verification workflow.
MFA authenticationEnforces MFA authentication and provides conditional branching based on a configured adaptive access policy.
Password authenticationEnforces password authentication and provides conditional branching based on the authentication outcome.
Exit successDefines variables that can be passed back to the calling Lifecycle Event Hook after a successful journey.
Exit failureDefines 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

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