Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{% include "../../../../../includes/guides/flows/trouble-shooting.md" %}

Check failure on line 1 in en/identity-server/next/docs/guides/flows/trouble-shooting.md

View workflow job for this annotation

GitHub Actions / lint

Files should end with a single newline character

en/identity-server/next/docs/guides/flows/trouble-shooting.md:1:72 MD047/single-trailing-newline Files should end with a single newline character https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md047.md
1 change: 1 addition & 0 deletions en/identity-server/next/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -712,6 +712,7 @@ nav:
- Self Registration: guides/flows/self-registration.md
- Password Recovery: guides/flows/password-recovery.md
- Invited User Registration: guides/flows/invited-user-registration.md
- Troubleshooting: guides/flows/trouble-shooting.md
Copy link
Contributor

@himeshsiriwardana himeshsiriwardana Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

file name should be one word. troubleshooting.md

- User self-service:
- User self-service: guides/user-self-service/index.md
- My Account portal:
Expand Down
85 changes: 54 additions & 31 deletions en/includes/guides/flows/build-a-flow.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,113 @@
# Get started with flows

A **flow** defines the sequence of steps a user goes through during a specific interaction with your application. This guide introduces the **Flow Builder**, a visual environment with all the necessary elements to build flows that meet both security requirements and user experience goals.
A **flow** defines the step by step journey a user takes during a specific interaction with your application, like signing up or resetting a password. This guide introduces the **Flow Builder**, a visual canvas where you can design and customize these journeys to meet your security and user experience goals without writing complex code.

Using the flow builder in {{product_name}} you can fully customize the following flows. Click on a flow to view a sample scenario built using the flow builder.
The Flow Builder allows full customization of the following user journeys. Click on a flow to view a sample scenario built using the flow builder.

- [Self-registration]({{base_path}}/guides/flows/self-registration/)
- [Self registration]({{base_path}}/guides/flows/self-registration/)
- [Password recovery]({{base_path}}/guides/flows/password-recovery/)
- [Invited user registration]({{base_path}}/guides/flows/invited-user-registration/)

## Access the flow builder
## Create and Enable a flow

The following sections outline the process for creating and publishing a custom flow.

### Step 1: Navigate to flow builder

You can access the flow builder by following the steps below:

1. On the {{product_name}} Console, go to **Flows**.
1. On the {{product_name}} Console, navigate to **Flows**.

2. Click on the card corresponding to the flow you want to build.

3. [Build the flow](#build-a-flow) and [enable](#enable-a-flow) it.
This will open the Flow Builder canvas for that specific flow.

## Build a flow
### Step 2: Build the flow

The **Flow builder** provides all the building blocks you need to create user journeys.

For a selected flow, you can start building it using one of the methods below and use [flow elements](#reference-flow-elements) to customize it to your requirements.
For a selected flow, you can start building it using one of the methods below and use [flow elements](#flow-elements) to customize it to your requirements.

{% if product_name == "Asgardeo" %}

### Generate with AI
#### Generate with AI

With **Generate with AI**, you can use plain language instructions to build a complete flow, allowing you to start with a minimal effort and customize components as needed.

![Flow builder AI]({{base_path}}/assets/img/guides/flows/flow-builder-generate-with-ai.png){: width="auto" style="display: block; margin: 0;"}

{% endif %}

### Use a starter template

Starter templates offer commonly used starting points, so you don’t have to begin from scratch. Click the `+` button next to a template to add it to the flow.
#### Use a starter template

![Starter Templates]({{base_path}}/assets/img/guides/flows/flow-builder-starter-templates.png){: width="auto" style="display: block; margin: 0;"}
Select from a list of pre-built templates for common use cases to avoid starting from scratch. Click the `+` icon next to a template to add it to the canvas.

### Build from scratch
![Starter Templates]({{base_path}}/assets/img/guides/flows/flow-password-recovery-start-from-template.png){: width="auto" style="display: block; margin: 0;"}

Check warning on line 45 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 45, "column": 155}}}, "severity": "INFO"}

Check warning on line 45 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 45, "column": 144}}}, "severity": "INFO"}

If you prefer to take complete control of the building process, you can start with a blank canvas and add steps, widgets, and components to build your flow.
#### Build from scratch

![Custom Flow]({{base_path}}/assets/img/guides/flows/flow-builder-custom-flow.png){: width="auto" style="display: block; margin: 0;"}
For complete control, start with a blank canvas and build the flow by dragging and dropping the required [flow elements](#reference-flow-elements).

Check failure on line 49 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / lint

Link fragments should be valid

en/includes/guides/flows/build-a-flow.md:49:106 MD051/link-fragments Link fragments should be valid [Context: "[flow elements](#reference-flow-elements)"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md051.md

## Enable a flow
![Build flow manually]({{base_path}}/assets/img/guides/flows/flow-builder-build-flow-manually.png){: width="auto" style="display: block; margin: 0;"}

Check warning on line 51 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 51, "column": 147}}}, "severity": "INFO"}

Check warning on line 51 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 51, "column": 136}}}, "severity": "INFO"}

{{product_name}} provides default sequences for every flow in the flow builder. You can design and refine your customized flow at your own pace, keeping it disabled until you’re ready to share it. While your customized flow is disabled, users continue to experience the default flow. Once enabled, your users will seamlessly change to the customized experience you’ve created.
!!! Note

To enable a flow,
Save the flow at any point while building. The saved version stays as a draft. Edit the draft later as needed.

1. On the {{product_name}} Console, go to **Flows**.
### Step 3: Enable the flow

2. Select the flow you want to enable.
Once the prepared flow is ready to publish for users, enable it.

Check warning on line 59 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [write-good.E-Prime] Try to avoid using 'is'. Raw Output: {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 59, "column": 24}}}, "severity": "INFO"}

3. On the top-right corner of the screen, turn the toggle ON to enable the flow.
1. On the top-right corner of the screen, turn the toggle ON to enable the flow.

!!! warning "Immediate Publication"
Enabling the flow will immediately publish the current configuration on the canvas, making it live for all users.
!!! Note

If you disable a customized flow, your users will automatically continue with the default experience until you’re ready to publish it again.

## Reference: Flow elements
## Flow inheritance for sub organizations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to move from this doc to the organizations section. We have a separate section in Organizations to explain how inheritance work. This info is irrelevant to the flow doc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


Flow elements work together to create the user journey. They define the structure, functionality, and appearance of each step in the flow.
If your organization uses sub organizations, flows from the parent are inherited by default. Sub orgs use the parent flow unless you make changes.

Check warning on line 71 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Passive] 'are inherited' looks like passive voice. Raw Output: {"message": "[Microsoft.Passive] 'are inherited' looks like passive voice.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 71, "column": 68}}}, "severity": "INFO"}

Check warning on line 71 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [write-good.Passive] 'are inherited' may be passive voice. Use active voice if you can. Raw Output: {"message": "[write-good.Passive] 'are inherited' may be passive voice. Use active voice if you can.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 71, "column": 68}}}, "severity": "WARNING"}

Check warning on line 71 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [write-good.E-Prime] Try to avoid using 'are'. Raw Output: {"message": "[write-good.E-Prime] Try to avoid using 'are'.", "location": {"path": "en/includes/guides/flows/build-a-flow.md", "range": {"start": {"line": 71, "column": 68}}}, "severity": "INFO"}

### Widgets
!!! Note
[Connections]({{base_path}}/guides/authentication/#manage-connections) aren't inherited by sub organizations.

Widgets are reusable components that enhance the flow. Drag and drop widgets into your desired view to build a flow.
**To customize a flow for a sub org:**

![Widgets]({{base_path}}/assets/img/guides/flows/flow-builder-widgets.gif){: width="auto" style="display: block; margin: 0;"}
- Go to the Flow Builder in the sub org.
- Edit the inherited flow as needed.
- Publish to override the parent flow for this sub org only.

**To undo customizations:**

- Click **Revert** to restore the parent flow and remove all sub org changes.

![Revert flow]({{base_path}}/assets/img/guides/flows/flow-builder-revert.gif){: width="auto" style="display: block; margin: 0;"}

## Flow elements

The Flow Builder provides a library of reusable, no-code elements. These building blocks integrate to facilitate the straightforward creation and customization of any user journey.

### Steps

Steps are the core building blocks of a flow. Drag and drop steps to create a multi‑step user journey.
Steps function as the core building blocks for creating multi-page experiences. A flow contains one or more steps.

![Steps]({{base_path}}/assets/img/guides/flows/flow-builder-steps.gif){: width="auto" style="display: block; margin: 0;"}

### Widgets

Widgets provide powerful functionality through pre-built, reusable modules, like a social login button. Drag and drop widgets directly into a step.

![Widgets]({{base_path}}/assets/img/guides/flows/flow-builder-widgets.gif){: width="auto" style="display: block; margin: 0;"}

### Components

Components are atomic UI elements that you can add to a step. Drag and drop components inside a step.
Components represent the individual UI elements placed inside a step, such as input fields, buttons, and paragraphs.

!!! Note

Field components such as **Text Input** and **Email Input** etc. have the following contraints:
Field components such as **Text Input** and **Email Input** etc. have the following constraints:

- Only a **Form** component can contain them.
Expand All @@ -94,4 +117,4 @@

- From the **Attribute** dropdown, select the relevant attribute. Only attributes **displayed in user profiles** are available for mapping. Learn how to [display attributes in user profiles]({{base_path}}/guides/users/attributes/manage-attributes/#configure-attributes).

![Components]({{base_path}}/assets/img/guides/flows/flow-builder-components.gif){: width="auto" style="display: block; margin: 0;"}
![Components]({{base_path}}/assets/img/guides/flows/flow-builder-components.gif){: width="auto" style="display: block; margin: 0;"}

Check failure on line 120 in en/includes/guides/flows/build-a-flow.md

View workflow job for this annotation

GitHub Actions / lint

Files should end with a single newline character

en/includes/guides/flows/build-a-flow.md:120:131 MD047/single-trailing-newline Files should end with a single newline character https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md047.md
19 changes: 11 additions & 8 deletions en/includes/guides/flows/index.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# Flows

A flow defines the sequence a user follows during a specific interaction with your application. These can include forms, verification actions, conditional logic, and other components that guide users from start to finish.
Design and customize key user journeys in your application with Flows. A flow defines the step-by-step journey a user takes during a specific interaction, such as registering for your service or recovering a password.

{{product_name}} lets you build fully customizable sequences for the following user interactions.
{{product_name}} lets you build fully customizable flows for the following user interactions.

- **Self-registration** - Create registration experiences for new users, with support for multi step forms, validations, and identity verification.
- **Self registration** - Create seamless registration experiences for new users, with support for multi-step forms, data validation, and identity verification checks.

- **Password recovery** - Build secure recovery flows to help users regain access, using steps such as email verification or one time passwords (OTP).
- **Password recovery** - Build secure recovery processes to help users regain access, using steps such as email verification or one-time passwords (OTP).

- **Invited user registration** - Build flow that allows new users to securely set their password when an administrator creates their account, including steps to verify the user's identity.
- **Invited user registration** - Design a secure flow for new users when an administrator invites them. Let users set their password after verifying their identity.

You can build flows using starter templates, widgets, steps, and components, giving you complete control over how users interact with your application. To get started with building flows, refer to [Build a flow]({{base_path}}/guides/flows/build-a-flow/).
Building with starter templates, widgets, and other components provides complete control over how users interact with the application, all without writing complex code.

For specific examples of building flows, refer to [Self-registration]({{base_path}}/guides/flows/self-registration/), [Password recovery]({{base_path}}/guides/flows/password-recovery/) and [Invited user registration]({{base_path}}/guides/flows/invited-user-registration/).
## Next steps

![Flows]({{base_path}}/assets/img/guides/flows/flow-builder-steps.gif){: width="auto" style="display: block; margin: 0;"}
- To learn the fundamentals of building a flow, refer to the [get started]({{base_path}}/guides/flows/build-a-flow/) guide.
- For detailed examples of specific use cases, see the guides on [Self registration]({{base_path}}/guides/flows/self-registration/), [Password recovery]({{base_path}}/guides/flows/password-recovery/) and [Invited user registration]({{base_path}}/guides/flows/invited-user-registration/).

![Flows]({{base_path}}/assets/img/guides/flows/Flow-builder-overview.png){: width="auto" style="display: block; margin: 0;"}

Check warning on line 20 in en/includes/guides/flows/index.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/index.md", "range": {"start": {"line": 20, "column": 122}}}, "severity": "INFO"}

Check warning on line 20 in en/includes/guides/flows/index.md

View workflow job for this annotation

GitHub Actions / Vale style check

[vale] reported by reviewdog 🐶 [Microsoft.Semicolon] Try to simplify this sentence. Raw Output: {"message": "[Microsoft.Semicolon] Try to simplify this sentence.", "location": {"path": "en/includes/guides/flows/index.md", "range": {"start": {"line": 20, "column": 111}}}, "severity": "INFO"}
Loading
Loading