Use Cases: Configure an update policy 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 agreement prompt and store the agreement consent in a user_metadata.privacy_policies attribute. 

Dashboard > Forms > Use Case Custom Policy Form

The sections below outline how you can create an Update Policy 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.privacy_policies value to determine the appropriate next steps. If the policy value is missing, the flow continues to the Step node to prompt the user for acceptance. If the policy is 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 Missing policies.

    3. Variable:

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

      2. From the dropdown menu, select is false.

    4. Select Publish to save.

  4. Add a link from the rule Missing policies to the Step node and link the Default Case rule to the Ending screen node.

  5. Select Publish to save.

Dashboard > Forms > Use Case > custom policy 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 description of your policy updates.

      • Example: This policy is current as of the effective date set forth above. Professional service may, in its sole and absolute discretion, change this policy from time to time by updating this document.

  2. Drag a Legal field into the Step node.

    • ID: Enter privacy_policies.

    • Required: Enable the checkbox.

    • Legal: Enter I agree to the Privacy Policy.

  3. Select Publish to save.

Dashboard > Forms > Use Case Custom policies > 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 Case Custom policy > Update user_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 Update Policy 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 Case > Render Action

  7. Drag and Drop the Render Update Policy Form Action to the Login flow.

    Dashboard > Forms > Use Case > Render update policy form login action

  8. Select Apply.

Test implementation

Test the implementation by following these steps:

  1. Log in with an existing user whose user_metadata attribute privacy_policies does not have a value.

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

  3. Select Auth0 Dashboard > User Management > Users, locate the user and verify that the user_metadata attribute privacy_policies contains a true value.