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 progressive profiling flows to decide when to prompt users to collect missing information, such as company name and job title, and store them as user_metadata attributes.

Dashboard > Actions > Forms > 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 from scratch

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 Step node

The Step node is the graphical interface visible to users. Add Fields to the Step node to collect the user's company name and job title values 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: Enable the checkbox.

    • Label: Enter Company name.

    • 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.

Dashboard > Actions > Forms > Form > 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 > Actions > Forms > Form

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:

  • From the Form editor, select Embed.

  • Select Copy.

Dashboard > Actions > Forms > Form > Embed

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 the recommended version.

  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. Edit the code to define the conditional logic that will render the form.

    /**
    * @param {Event} event - Details about the user and the context in which they are logging in.
    * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
    */
    exports.onExecutePostLogin = async (event, api) => {
      const FORM_ID = 'REPLACE_WITH_YOUR_FORM_ID';
    
      if (
        event.stats.logins_count > 2 &&
        !event.user.user_metadata.company_name &&
        !event.user.user_metadata.job_title
      ) {
        api.prompt.render(FORM_ID);
      }
    }
    
    exports.onContinuePostLogin = async (event, api) => { }

    Was this helpful?

    /

  4. Select Deploy.

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

    Dashboard > Forms > Use Cases Progressive Profile Login Action
  6. 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.