> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-eup-870.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-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=6a5591b0a80a0c268207279cc5e0de1c" 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-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=280&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=7ce4a6f1e06ad42a5f9b9f5455f7d1a2 280w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=560&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=705b919d4a4a2f2d046576d5b419d086 560w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=840&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=8234cd11755a177f06cbe9f5b9caccf2 840w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1100&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=bebb1678c24d63b7a05eb5d7656578fe 1100w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1650&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=96af6269e7d6916f861e610c10430ef6 1650w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=2500&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=62452ecff62975703c4b28610ef9baa0 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-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=5c4a9043934e0ed6862f6dc9f0b13209" 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-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=280&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=5bafcc18fd5f0a5dade3d798cb114bac 280w, https://mintcdn.com/docs-dev-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=560&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=d12dfa972e6d50c8a60051d241dcf908 560w, https://mintcdn.com/docs-dev-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=840&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=f584633d923d1d5464389ab722ec9ef1 840w, https://mintcdn.com/docs-dev-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1100&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=2aa29b8f3f37633bb99081173843ff3f 1100w, https://mintcdn.com/docs-dev-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1650&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=c0f1f5702ed6f2b569172efe0363dd49 1650w, https://mintcdn.com/docs-dev-feat-eup-870/4-gJmeIvYa_8dT2H/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=2500&fit=max&auto=format&n=4-gJmeIvYa_8dT2H&q=85&s=875d0b7c40eb010a0778fb3894d0fda5 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-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=3a6ce9313d6a214854643c04ac8d4358" 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-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=280&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=436ea87302825f0572a08bf7fc607c56 280w, https://mintcdn.com/docs-dev-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=560&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=27d2b14ef1b07340201df1b94c569674 560w, https://mintcdn.com/docs-dev-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=840&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=84a2aeebeec3de7d2630134890b0de4a 840w, https://mintcdn.com/docs-dev-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1100&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=98e8417d1356ba7d5385c183d86c2c71 1100w, https://mintcdn.com/docs-dev-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1650&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=5f67cf43a2c44b1f1ec926f4124cd3ea 1650w, https://mintcdn.com/docs-dev-feat-eup-870/cvlfLJWFnxuqMVAQ/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=2500&fit=max&auto=format&n=cvlfLJWFnxuqMVAQ&q=85&s=f4985302e04222826fbe0d947c170478 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-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=ba67b2fcbc4e471ce80a9f5ddb23a532" 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-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=280&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=528ecdbe363b2ac1f8358aca50d15a5a 280w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=560&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=d33c819421a6deb6b2c60caaa085b81f 560w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=840&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=523116986ab3acbd28e397d5c64f5dbf 840w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1100&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=d13befacb0930db829c0e64f60dd1afb 1100w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1650&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=04ad0b5fe56de19040a58bfa29ebe6bf 1650w, https://mintcdn.com/docs-dev-feat-eup-870/YXVXt-6CXfb89Oay/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=2500&fit=max&auto=format&n=YXVXt-6CXfb89Oay&q=85&s=4fc3fb5f8f87586481214982bd6c43ff 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-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=90fa3063115952b4b85e5bb1fa951fe6" 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-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=280&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=bd01bf3c730e0cd658a7e752944c4004 280w, https://mintcdn.com/docs-dev-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=560&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=e4020103ddf9b12b1fef5166f0d95a4a 560w, https://mintcdn.com/docs-dev-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=840&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=281c4295ccaac1ab93b7649612515a1d 840w, https://mintcdn.com/docs-dev-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1100&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=e1683de33ea4955c34198514e17713f1 1100w, https://mintcdn.com/docs-dev-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1650&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=b6943af1c70fab569232e88931a62baa 1650w, https://mintcdn.com/docs-dev-feat-eup-870/ucPbYSxIEJTzXSko/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=2500&fit=max&auto=format&n=ucPbYSxIEJTzXSko&q=85&s=7a11378367a7963751c001e3d9188b43 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-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=63f6f4eb65708954fe0542c697bce601" 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-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=280&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=cf8d8771c4e045ab2da18c7f240caba2 280w, https://mintcdn.com/docs-dev-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=560&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=f1b8151929a0834db79118263c2e37a5 560w, https://mintcdn.com/docs-dev-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=840&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=49389227870db06c7ef170a198406993 840w, https://mintcdn.com/docs-dev-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1100&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=57552c3db8da7965f2989fde94ab57a1 1100w, https://mintcdn.com/docs-dev-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1650&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=58cdaec234db25cc688babd615f179d2 1650w, https://mintcdn.com/docs-dev-feat-eup-870/JcO8UPHsXp8fb_Am/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=2500&fit=max&auto=format&n=JcO8UPHsXp8fb_Am&q=85&s=0946785a64e21b9a6e2df7feed8be1db 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-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=f486c36c5b5e60a7a17c6a209d5ee30b" 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-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=280&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=fa82e9e8477fc36e02d9f806683e820c 280w, https://mintcdn.com/docs-dev-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=560&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=b1ca6240bd7cf1bc43ea48b069a1bf8c 560w, https://mintcdn.com/docs-dev-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=840&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=98c5ae4fae8ae0dc3729dd5c9383ae23 840w, https://mintcdn.com/docs-dev-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1100&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=f22fa8e2acd76c6be17d1c88c5db4669 1100w, https://mintcdn.com/docs-dev-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1650&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=65d3322a8ba77bd31dd58d408f21fde5 1650w, https://mintcdn.com/docs-dev-feat-eup-870/e9UM_1xBCntNgxv_/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=2500&fit=max&auto=format&n=e9UM_1xBCntNgxv_&q=85&s=7ba339cd6a26db7ffb91779ddf815158 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.
