> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-5625.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to configure an update policy form using Forms for Actions for users to review and accept new terms of service or consent updates.

# Use Cases: Configure an update policy form using Forms

<Card title="Before you start">
  1. Create a [Machine-to-Machine Application](/docs/get-started/auth0-overview/create-applications/machine-to-machine-apps) with the following scopes enabled:

  * `read:users`
  * `update:users`
  * `create:users`
  * `read:users_app_metadata`
  * `update:users_app_metadata`
  * `create:users_app_metadata`

  2. Add a [Vault connection](/docs/customize/forms/vault) using the M2M application credentials.
</Card>

Forms for Actions allows you to create custom privacy policies flows and store the consent under the `app_metadata` object.

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=7e59dd76049135aea4a6ba533168c87c" alt="Dashboard > Actions > Forms > Privacy policy use case" data-og-width="1404" width="1404" data-og-height="638" height="638" data-path="docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=280&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=4e881a7461b1c03e75c4989b9c60d8e4 280w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=560&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=0525b3e747905feece4d08a313cfaae9 560w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=840&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=1bb16a4e5e76a8d9c7aeb576580f0ca9 840w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1100&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=f135a4c6228c42d019552b3786756967 1100w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1650&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=01aaa6f18535f4a3d7e283bfb04893a6 1650w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=2500&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=68c940d9496209f1fce07d8d6dee96cb 2500w" />
</Frame>

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](/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) Action.

## Create a form from scratch

Follow these steps to create a form to gather information:

1. Open the Form editor by selecting **Auth0 Dashboard > Actions > Forms.**
2. Select **Create Form** > **Start from scratch**.

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

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=805c892384a3f066bb36104e7d95fb11" alt="Dashboard > Forms > Use Cases > Form" data-og-width="1234" width="1234" data-og-height="371" height="371" data-path="docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=280&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=dc49132478a25f0dd7bbc6ee33ce743d 280w, https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=560&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=397c14aa38924ddaade7a4b26dd383ac 560w, https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=840&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=6e08ed2e2a9b2efb253fd14ad810919f 840w, https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1100&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=29fb9f0e3948dcabf4dd9656ddae8bc2 1100w, https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1650&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=9caeb3fc262b213e90066bdff2b877d8 1650w, https://mintcdn.com/docs-dev-docs-5625/reLNzMZ5wOKN8FLf/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=2500&fit=max&auto=format&n=reLNzMZ5wOKN8FLf&q=85&s=be0af7bd3c9a58bf76d442f36251cb70 2500w" />
</Frame>

### Configure the Step node

The Step node is the graphical interface visible to users. Add [Fields](/docs/customize/forms/nodes-and-components) 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 privacy policies updates.
   * Select **Save**.
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`.
   * Select **Save**.
3. Select **Publish** to save.

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=632a11a437e59bd819d85be385414a79" alt="Dashboard > Actions > Forms > Use case privacy policy step node" data-og-width="1404" width="1404" data-og-height="559" height="559" data-path="docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=280&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=6471f6b06d04b32dcaf919475ff39d56 280w, https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=560&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=7b29e0642814b3d73318252535bf7a48 560w, https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=840&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=4e626e531fe19b350225f5c0edff210d 840w, https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1100&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=1a57c00d6939b195f19db26cba915ca1 1100w, https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1650&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=742b7e17360d7ac802ec1f1952a46580 1650w, https://mintcdn.com/docs-dev-docs-5625/1IRzGACZGkKm-BHu/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=2500&fit=max&auto=format&n=1IRzGACZGkKm-BHu&q=85&s=0e3d951989613bfce485a81bda93082b 2500w" />
</Frame>

### Configure the Flow node

Add a **Flow** node after the **Step** node to update the `app_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 app_metadata` in the **Name** field.
   * Select **Create**.
   * Select **Save**.
4. Link the **Flow** node to the **Step** and **Ending Screen** nodes as pictured below.
5. Select **Publish** to save.

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=d4ae289acb2b8ef617647fcd2f2a5748" alt="Dashboard > Actions > Forms > Form" data-og-width="1404" width="1404" data-og-height="599" height="599" data-path="docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=280&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=13a96849e168d4b15a8ba5121c0b1af8 280w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=560&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=38f4aea65ff9e75e2a6d6bb47ca0e1f7 560w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=840&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=a09bc6401e424a40381d0f6ab3538d3b 840w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1100&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=95bd429bda58b8d31e208d9c1e119860 1100w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1650&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=cf7a385d2ae6211b2824a48190a006f1 1650w, https://mintcdn.com/docs-dev-docs-5625/BhfGR2qXrPXBT6EJ/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=2500&fit=max&auto=format&n=BhfGR2qXrPXBT6EJ&q=85&s=a506c213a8b02402d49abe7bbc11cf33 2500w" />
</Frame>

Add an Auth0 Update user action to the flow by following these steps:

1. Select the **Flow** **Update app\_metadata** > **Edit flow** to open the Flow editor in a new tab.
2. Below the StartAction, select the **+** icon to add an **Update user** action. Complete the fields below, then select **Save** to continue.

   * **Connection**: Select from the dropdown the Vault connection to your M2M application.

   * **User ID**: Enter `{{context.user.user_id}}`.

   * **Body**: Copy and paste the following code to update the app\_metadata with the privacy\_policies and privacy\_policies\_timestamp properties.

     ```text lines theme={null}
     {
       "app_metadata": {
         "privacy_policies": true,
         "privacy_policies_timestamp": "{{ functions.toTimestamp() }}"
       }
     }
     ```

   * Select **Save**.
3. Select **Publish** to save.

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=3a44f9c9d2621c28cb6c66e963e9c534" alt="Dashboard > Actions > Forms > User case privacy policy code" data-og-width="1404" width="1404" data-og-height="338" height="338" data-path="docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=280&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=ee27c71854cc3e9ff00da0fe030b3a2d 280w, https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=560&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=8fac0032c63b36782173f2e21c7db1a2 560w, https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=840&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=7073ffe14b8e5ee9fc7a2299eda5e0c8 840w, https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1100&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=9e5ace985d4bee67f0b96c941c1ad843 1100w, https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1650&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=45cda4bdfa3a32307968c27316ba9e23 1650w, https://mintcdn.com/docs-dev-docs-5625/NJ49FT1TwK2dhy4q/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=2500&fit=max&auto=format&n=NJ49FT1TwK2dhy4q&q=85&s=c06ee4ba2e5f9d64a280c21bc1d38309 2500w" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  The flow **Update app\_metadata** adds a `privacy_policies true` value to the app`_metadata` object and also generates a timestamp with a [helper function.](/docs/customize/forms/variables)
</Callout>

## Retrieve the form render code

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

* From the Form editor, select **`<> Render`**.
* Select **Copy**.

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=b7030a17ffdb134f9f1148b9829c9c01" alt="Dashboard > Actions > Forms > Form > Embed" data-og-width="1400" width="1400" data-og-height="848" height="848" data-path="docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=280&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=b0aa57a83a44eaa35ae8209ea9f1bbeb 280w, https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=560&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=abbc993b399912040e760bd219b96c81 560w, https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=840&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=7d652a353ae84616745122bfde53f4f2 840w, https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1100&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=84f57edef9fb29ba80a412bcd1cf8320 1100w, https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1650&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=000bc42b5bac53fd87d24fb18577a3a7 1650w, https://mintcdn.com/docs-dev-docs-5625/tddVoRUd5VZDRRl6/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=2500&fit=max&auto=format&n=tddVoRUd5VZDRRl6&q=85&s=6b76baac04768544c482a68050b2dcb1 2500w" />
</Frame>

## Create a Post Login Action

Create a post-login Action to render your form by following these steps:

1. Navigate to **Auth0 Dashboard > Actions > Flows > Login.**
2. Select the **+** icon and Select **Build from scratch**:

   * **Name**: Enter `Render Update Policy Form`.
   * **Trigger**: Select `Login / Post Login`.
   * **Runtime**: Select the recommended version.
3. Select **Create**.

To configure the post-login Action:

1. Delete the existing code from the Code editor.
2. Paste the form render code into the Code editor.
3. Edit the code to define the conditional logic that will render the form.

   ```javascript lines theme={null}
   /**
   * @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.user.app_metadata.privacy_policies !== true) {
       api.prompt.render(FORM_ID);
     }
   }

   exports.onContinuePostLogin = async (event, api) => { }
   ```

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     The example code above will render the form when a user is missing the app metadata `privacy_policies` property.
   </Callout>
4. Select **Deploy.**
5. Drag and Drop the **Render Update Policy Form** Action to the **Login** flow.

   <Frame>
     <img src="https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=09835f388e1d71fed4308dee1f4e8a78" alt="Dashboard > Forms > Use Case > Render update policy form login action" data-og-width="1370" width="1370" data-og-height="668" height="668" data-path="docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=280&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=22974287d3a17fab53f980b23fdbf226 280w, https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=560&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=ca6750dbfeb3a05ab13df8cd30579a53 560w, https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=840&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=a2366da5feb0b6354b94d2f7a161191b 840w, https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1100&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=740b4037e0dd12eaf708017ec4e316e9 1100w, https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1650&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=bb6084d9bb369c0e66157c20139a8208 1650w, https://mintcdn.com/docs-dev-docs-5625/T1UuRlQq4Wiq2RJb/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=2500&fit=max&auto=format&n=T1UuRlQq4Wiq2RJb&q=85&s=fd8164952dabaf55aa6246eba828ae3e 2500w" />
   </Frame>
6. Select **Apply.**

### Test implementation

Test the implementation by following these steps:

1. Log in with an existing user whose app`_metadata` attribute `privacy_policies` does not have a value.
2. The 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 `app_metadata` attribute `privacy_policies` contains a `true` value and a timestamp.
