Use Cases: Configure a progressive profile form using Forms

Before you start

Create a Machine-to-Machine Application with the following scopes enabled:

  • read:users

  • update:users

  • create:users

  • read:users_app_metadata

  • update:users_app_metadata

  • create:users_app_metadata

Forms for Actions allows you to create a custom form to prompt the user for missing information, such as company name and job title, and store them as user_metadata attributes.

Dashboard > Forms > Use Cases > Progressive Profile Form

The sections below outline how you can create a progressive profile form using nodes and flows, along with steps for adding your form to a Post Login Action.

Create a form with Forms for Actions

To create a new information gathering form, follow these steps:

  1. Navigate to Auth0 Dashboard > Actions > Forms.

  2. Select Actions > Forms to open the Form editor in a new tab.

  3. Select Create form > Start from scratch.

By default, a new form contains a Start node, a Step node, and an Ending screen node.

Dashboard > Forms > Use Cases > Form

Configure the Start node

To ensure that the Auth0 pipeline connection is secure, add a Hidden field variable named context_token by following these steps:

  1. Select the Start node from the Form editor.

  2. Select Add New Item.

  3. Enter context_token. A Default value is not needed.

  4. Select Publish to save.

Dashboard > Forms > Uses cases > Start node

Add a Get user flow

Add a Get user Flow node to validate the context_token value, gather user data, and store this information for further processing by following these steps:

  1. Select Flow from the bottom of the Form editor.

  2. Remove the existing link between the Start and Step nodes.

  3. Select the new Flow > Click to add a flow > Create a new flow.

    1. Enter Get user in the Name field.

    2. Select Create.

  4. Link the Flow Get user node to the Start and Step nodes.

  5. Select Publish to save.

Dashboard > Forms > Use Case > Get user flow node

Add a Router node

Add a Router node that reviews the user_metadata.company_name and user_metadata.job_title values to determine the appropriate next steps. If the values are missing, the flow continues to the Step node to prompt the user for the information. If the values are present, the authentication flow resumes to login.

  1. Return to the Form editor and select Router.

  2. Remove the existing link between the Get user Flow and Step nodes.

  3. Select the new Router node to add a new rule.

    1. Select Rule 1.

    2. Alias: Enter Check company_name and job_title.

    3. Variable:

      1. Enter {{state.user.user_metadata.company_name}}.

      2. From the dropdown menu, select has not value.

    4. Select Or.

    5. Variable:

      1. Enter {{state.user.user_metadata.job_title}}.

      2. From the dropdown menu, select has not value.

    6. Select Publish to save.

  4. Add a link from the rule Check company_name and job_title to the Step node and link the Default Case rule to the Ending screen node.

  5. Select Publish to save.

Dashboard > Forms > Use Cases > Progressive Profile router node

Configure the Step node

The Step node is the graphical interface visible to users. Add Fields to the Step node to collect the new agreement acceptance value by following these steps:

  1. Drag a Rich text field from the Components menu into the Step node.

    • Rich text: Enter a custom message.

      • Example: Complete your profile! We need you to complete your profile to personalize your experience.

  2. Drag a Text field into the Step node.

    • ID: Enter company_name.

    • Label: Enter Company name.

    • Label: Enable the checkbox.

    • Required: Enable the checkbox.

  3. Drag a Text field into the Step node.

    1. ID: Enter job_title.

    2. Label: Enter Job title.

    3. Label: Enable the checkbox.

    4. Required: Enable the checkbox.

  4. Select Publish to save.

Dashboard > Forms > Use Case Progressive Profile Step Node

Add an Update user_metadata flow

Add a Flow node after the Step node to update the user_metadata and resume the authentication flow by following these steps:

  1. Select Flow from the bottom of the Form editor.

  2. Remove the existing link between the Step and Ending Screen nodes.

  3. Select the new Flow > Click to add a flow > Create a new flow.

    • Enter Update user_metadata in the Name field.

    • Select Create.

  4. Link the Flow node to the Step and Ending Screen nodes as pictured below.

  5. Select Publish to save.

Dashboard > Forms > Use Cases Progressive Profile Update metadata flow

Retrieve your form embed code

Retrieve your form embed code to visually render the form with a custom Post Login Action by following these steps:

  1. From the Form editor, select the Embed tab.

  2. Select Copy.

Dashboard > Forms > Use Case > Embed Code

Create a custom Post Login Action

Create a custom Post Login Action to render your form by following these steps:

  1. Navigate to Auth0 Dashboard > Actions > Flows > Login.

  2. Select Custom.

  3. Select the + icon to Build from scratch:

    • Name: Enter Render Progressive Profile Form.

    • Trigger: Select Login / Post Login.

    • Runtime: Select Node 18 (Recommended).

  4. Select Create.

To configure the custom Action:

  1. Delete the existing code from the Code editor.

  2. Paste the form embed code into the Code editor.

  3. To add a Secret, select the Key icon from the left-side menu of the Code editor.

  4. Select Add Secret.

    • Key: Enter SHARED_CONTENT_TOKEN_SECRET.

    • Value: Enter MY_SECRET_PASSWORD.

  5. Select Create.

  6. Select Deploy.

    Dashboard > Forms > Use Cases Progressive Profile Render form

  7. Drag and Drop the Render Progressive Profile Form Action to the Login flow.

    Dashboard > Forms > Use Cases Progressive Profile Login Action

  8. Select Apply.

Test implementation

Test the implementation by following these steps:

  1. Log in with an existing user whose user_metadata attributes company_name and job_title do not have values.

  2. The custom Post Login Action in the Login flow will render the form and prompt for the information.

  3. Select Auth0 Dashboard > User Management > Users, locate the user and verify that the user_metadata attributes company_name and job_title contain information.