Skip to content

Commit c4dd395

Browse files
Merge pull request #5287 from brionmario/feature-reg-flow
2 parents b18aa90 + 21c45aa commit c4dd395

12 files changed

+243
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{% set product_name = "Asgardeo" %}
2+
{% include "../../../../includes/guides/user-self-service/self-register-flow.md" %}

en/asgardeo/mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ nav:
368368
- Manage consents: guides/user-self-service/manage-consents.md
369369
- Manage login sessions: guides/user-self-service/manage-login-sessions.md
370370
- Self-register: guides/user-self-service/self-register.md
371+
- Self-register Flow: guides/user-self-service/self-register-flow.md
371372
- Register passkeys: guides/user-self-service/register-passkey.md
372373
- Register Push Notification Device: guides/user-self-service/register-push-notification-device.md
373374
- Password recovery: guides/user-self-service/user-password-recovery.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
<h1>Self-register Flow Builder <div class="md-chip md-chip--preview"><span class="md-chip__label">Preview</span></div></h1>
2+
3+
![Self register flow banner]({{base_path}}/assets/img/guides/organization/self-registration/self-register-flow-banner.png){: width="auto" style="display: block; margin: 0;"}
4+
5+
!!! Note
6+
7+
The self-registration Flow Builder is currently in **Preview**. Some features may be subject to changes in future releases.
8+
9+
The self-registration Flow Builder provides administrators with a powerful tool to create fully customizable user registration experiences. Whether you're building a simple registration form or a complex, multi-step flow, the builder gives you complete control over the design and process.
10+
11+
It includes a variety of starter templates, widgets, steps, and components, allowing you to define exactly how users will interact with your registration process.
12+
13+
---
14+
15+
## Pre-requisites
16+
17+
You need to **enable self-registration** inorder to try this out.
18+
19+
!!! Note
20+
Learn how administrators can [enable self-registration]({{base_path}}/guides/user-self-service/configure-self-service-portal/#enabledisable-the-my-account-portal) in an organization.
21+
22+
## Get Started
23+
24+
### Enabling the flow builder
25+
26+
!!! Warning
27+
Enabling the self-registration Flow Builder will override the exitsing self-registration experience in your organization. You can always revert back to the previous experience by [disabling the Flow Builder](#disabling the Flow Builder).
28+
29+
To enable the self-registration Flow Builder, you have two options:
30+
31+
#### Option 01: Enable from the Home page
32+
33+
1. Navigate to the **Home** page.
34+
2. Click on the **Enable and try out** button inside the banner.
35+
3. In the feature preview dialog, toggle the feature status switch to **Enabled** mode and close the dialog.
36+
4. Click on the **Try out** button in the banner to access the Flow Builder.
37+
38+
![Enable self-register flow builder from Home]({{base_path}}/assets/img/guides/organization/self-registration/enable-self-registration-flow-builder-from-home.gif){: width="auto" style="display: block; margin: 0;"}
39+
40+
#### Option 02: Enable from the Feature Preview
41+
42+
1. Click on the user dropdown in the top right corner.
43+
2. Select **Feature Preview**.
44+
3. In the feature preview dialog, toggle the feature status switch to **Enabled** mode and close the dialog.
45+
4. Go to **Login & Registration**.
46+
5. Click on the **Registration Flow** card.
47+
48+
![Enable self-register flow builder from Feature Preview]({{base_path}}/assets/img/guides/organization/self-registration/enable-self-registration-flow-builder-from-feature-preview.gif){: width="auto" style="display: block; margin: 0;"}
49+
50+
## Building your first flow
51+
52+
The self-registration Flow Builder is designed to make creating user registration flows intuitive and efficient. With AI ✨ support, you can describe your ideal flow in natural language and let the builder generate it for you.
53+
54+
Alternatively, you can start with pre-defined templates or build from scratch using the drag-and-drop interface. This flexibility allows you to create new flows or extend existing ones effortlessly.
55+
56+
### Starter Templates
57+
58+
Starter templates give you a quick start with pre-defined flows that are easily customizable. You can click on the `+` button next to the template to add it to the flow.
59+
60+
![Self-register flow builder templates]({{base_path}}/assets/img/guides/organization/self-registration/self-registration-flow-builder-templates.gif){: width="auto" style="display: block; margin: 0;"}
61+
62+
- **Generate with AI ✨**
63+
Describe your ideal registration flow in natural language, and Asgardeo will automatically generate a customized flow for you.
64+
65+
![Self-register flow builder AI]({{base_path}}/assets/img/guides/organization/self-registration/self-registration-flow-builder-generate-with-ai.png){: width="auto" style="display: block; margin: 0;"}
66+
67+
- **Blank**
68+
Start from scratch for full flexibility.
69+
70+
- **Basic Details**
71+
Collect only basic user details such as name, email, and password.
72+
73+
- **Basic + Google**
74+
Combine a basic form with Google sign-up for users preferring existing credentials.
75+
76+
### Widgets
77+
78+
Widgets are reusable components that enhance the registration flow. You can drag and drop widgets into your desired view to build a flow.
79+
80+
![Self-register flow builder widgets]({{base_path}}/assets/img/guides/organization/self-registration/self-registration-flow-builder-widgets.gif){: width="auto" style="display: block; margin: 0;"}
81+
82+
- **Username + Password**
83+
Traditional signup with username and password.
84+
85+
- **Continue with Email OTP**
86+
Sign up with email and verify using a One-Time Password.
87+
88+
- **Continue with Google**
89+
Sign up using Google credentials.
90+
91+
### Steps
92+
93+
Steps are the core building blocks of a registration flow. You can drag and drop steps to create a multi-step registration flow.
94+
95+
![Self-register flow builder steps]({{base_path}}/assets/img/guides/organization/self-registration/self-registration-flow-builder-steps.gif){: width="auto" style="display: block; margin: 0;"}
96+
97+
- **View**
98+
Each step acts as a view or section of the registration process.
99+
100+
### Components
101+
102+
Components are atomic UI elements added to steps. You can drag and drop components inside a step.
103+
104+
!!! Note
105+
Field components such as **Text Inputs**, **Email Inputs**, etc. has the following constraints:
106+
107+
- They should be added inside a **Form** component.
108+
- They should be mapped to a user Attribute. This can be done by clicking on the pensil icon on the element action panel and selcting the relevant attribute from the `Attribute` dropdown. Only attributes set as display on Self-Registration profile in the [Attribute Configurations]({{base_path}}/guides/users/attributes/manage-attributes) will be available for mapping.
109+
110+
![Self-register flow builder components]({{base_path}}/assets/img/guides/organization/self-registration/self-registration-flow-builder-components.gif){: width="auto" style="display: block; margin: 0;"}
111+
112+
- **Form** – Group fields for registration details
113+
- **Text Input** – Basic input for names/usernames
114+
- **Password Input** – Hidden input for passwords
115+
- **Email Input** – Field for email addresses
116+
- **Phone Input** – Collect phone numbers
117+
- **Number Input** – For numeric values
118+
- **Date Input** – Collect dates
119+
- **OTP Input** – Enter One-Time Passwords
120+
- **Checkbox** – For agreements like terms and conditions
121+
- **Button** – Triggers actions (e.g., submit)
122+
- **Text** – Add static instructions/explanations
123+
- **Divider** – Visually separate sections
124+
- **Image** – Add images like logos/icons
125+
126+
### Disabling the flow builder
127+
128+
If you want to revert back to the previous self-registration experience, you can disable the self-registration Flow Builder by following these steps:
129+
130+
1. Click on the user dropdown in the top right corner.
131+
2. Select **Feature Preview**.
132+
3. In the feature preview dialog, toggle the feature status switch to **Disabled** mode and close the dialog.

en/theme/material/assets/css/theme.css

+108
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,22 @@
6767

6868
--md-divider-color: var(--colors-mystic);
6969
--md-surface-fg-color: var(--colors-white);
70+
71+
/* START OF - Chip Colors */
72+
--md-chip-bg-color: var(--md-primary-fg-color);
73+
--md-chip-beta-bg-color: linear-gradient(131deg, rgba(143, 197, 246, 0.30) 0%, rgba(72, 141, 180, 0.30) 100%);
74+
--md-chip-beta-border-color: #488DB4;
75+
--md-chip-beta-text-color: linear-gradient(93deg, #488DB4 0%, #1F3D4E 100%);
76+
--md-chip-preview-bg-color: linear-gradient(131deg, rgba(233, 95, 255, 0.30) 0%, rgba(140, 57, 153, 0.30) 100%);
77+
--md-chip-preview-border-color: #8C3999;
78+
--md-chip-preview-text-color: linear-gradient(93deg, #8C3999 0%, #2F1333 100%);
79+
--md-chip-new-bg-color: linear-gradient(131deg, rgba(117, 237, 161, 0.30) 28.46%, rgba(52, 146, 86, 0.30) 119.09%);
80+
--md-chip-new-border-color: #349256;
81+
--md-chip-new-text-color: linear-gradient(93deg, #349256 28.46%, #102C1A 119.09%);
82+
--md-chip-premium-bg-color: linear-gradient(131deg, rgba(224, 184, 52, 0.30) 25.98%, rgba(181, 138, 0, 0.30) 112.91%);
83+
--md-chip-premium-border-color: #928934;
84+
--md-chip-premium-text-color: linear-gradient(93deg, #928934 28.46%, #2C2910 119.09%);
85+
/* END OF - Chip Colors */
7086
}
7187

7288
:root,
@@ -109,6 +125,13 @@
109125
--md-divider-color: rgba(255, 255, 255, var(--md-divider-opacity));
110126
--md-surface-fg-color: var(--colors-shark);
111127
--md-default-box-shadow: 0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
128+
129+
/* START OF - Chip Colors */
130+
--md-chip-beta-text-color: linear-gradient(93deg, #adcddf 0%, #59859e 100%);
131+
--md-chip-preview-text-color: linear-gradient(93deg, #ef85ff 0%, #e1bae7 100%);
132+
--md-chip-new-text-color: linear-gradient(93deg, #5bb77c 28.46%, #65d48d 119.09%);
133+
--md-chip-premium-text-color: linear-gradient(93deg, #d9d07c 28.46%, #867f46 119.09%);
134+
/* END OF - Chip Colors */
112135
}
113136

114137
@supports selector(::-webkit-scrollbar) {
@@ -602,6 +625,91 @@
602625
margin-bottom: 15px;
603626
}
604627

628+
.md-chip {
629+
max-width: 100%;
630+
font-family: Gilmer, sans-serif;
631+
display: inline-flex;
632+
align-items: center;
633+
justify-content: center;
634+
color: var(--md-default-fg-color);
635+
background: var(--md-chip-bg-color);
636+
cursor: default;
637+
vertical-align: middle;
638+
box-sizing: border-box;
639+
font-size: 0.6125rem;
640+
height: 24px;
641+
border-radius: 6px;
642+
white-space: nowrap;
643+
transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1);
644+
outline: 0px;
645+
text-decoration: none;
646+
border-width: 0px;
647+
border-style: initial;
648+
border-color: initial;
649+
border-image: initial;
650+
padding: 0px;
651+
}
652+
653+
.md-chip__label {
654+
overflow: hidden;
655+
text-overflow: ellipsis;
656+
padding-left: 12px;
657+
padding-right: 12px;
658+
white-space: nowrap;
659+
}
660+
661+
.md-chip--beta {
662+
background: var(--md-chip-beta-bg-color);
663+
border: 1px solid var(--md-chip-beta-border-color);
664+
color: var(--md-chip-beta-text-color);
665+
}
666+
667+
.md-chip--beta .md-chip__label {
668+
background-image: var(--md-chip-beta-text-color);
669+
background-clip: text;
670+
-webkit-background-clip: text;
671+
color: transparent;
672+
}
673+
674+
.md-chip--preview {
675+
background: var(--md-chip-preview-bg-color);
676+
border: 1px solid var(--md-chip-preview-border-color);
677+
color: var(--md-chip-preview-text-color);
678+
}
679+
680+
.md-chip--preview .md-chip__label {
681+
background-image: var(--md-chip-preview-text-color);
682+
background-clip: text;
683+
-webkit-background-clip: text;
684+
color: transparent;
685+
}
686+
687+
.md-chip--new {
688+
background: var(--md-chip-new-bg-color);
689+
border: 1px solid var(--md-chip-new-border-color);
690+
color: var(--md-chip-new-text-color);
691+
}
692+
693+
.md-chip--new .md-chip__label {
694+
background-image: var(--md-chip-new-text-color);
695+
background-clip: text;
696+
-webkit-background-clip: text;
697+
color: transparent;
698+
}
699+
700+
.md-chip--premium {
701+
background: var(--md-chip-premium-bg-color);
702+
border: 1px solid var(--md-chip-premium-border-color);
703+
color: var(--md-chip-premium-text-color);
704+
}
705+
706+
.md-chip--premium .md-chip__label {
707+
background-image: var(--md-chip-premium-text-color);
708+
background-clip: text;
709+
-webkit-background-clip: text;
710+
color: transparent;
711+
}
712+
605713
/* Media query breakpoints
606714
607715
$base_px: 16px;

0 commit comments

Comments
 (0)