> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-automated-sdk-version-update.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-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=6338cdddc845245c0efc9aa8bf262fbb" 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-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=280&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=f85ea2d3bd20355e4ee5d997cef8e232 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=560&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=5d2d6ef831d2ef7d76ca90eb617ae5d5 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=840&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=17ada89fc29874dd44f31f4c14d37bfb 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1100&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=f07f843a8b6d6e2d52b7cdd5a0ef8686 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1650&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=80c7f5c6a5bf9f8baf96a2bf3d791454 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=2500&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=354813c5c9af9d0e9d926a57e30649e3 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-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=3920b0e7fc75d6f46e1b6122dff11522" 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-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=280&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=93f061ed9c5113a3ab53375cefb14a36 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=560&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=51dc6e03c18cfaa125fd89c6952277b2 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=840&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=3e176109373e41c6a2fa2c5f5a1add73 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1100&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=ced8a93f9f0a29fe1f63014012cb9ed9 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1650&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=6dae80ccc856511135083ad62640b134 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/NN5Ou-dfzP_-ow6x/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=2500&fit=max&auto=format&n=NN5Ou-dfzP_-ow6x&q=85&s=7f466cb1f1577f80178107056ba2d5d1 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-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=552562951e1d84affee7e55e4fa8ef4e" 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-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=280&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=8bc49082199507479fa10cf2059729c1 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=560&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=f83f290a2e44f1326cd5dcb25b513123 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=840&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=4032063844c69da8fd30fdce8a626c98 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1100&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=b5f962badef69e28ee1d0d127bf7ab04 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1650&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=f4241e9e2cb325ffb9ed771a142aa311 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/YiJrrrWKxpgh6kDR/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=2500&fit=max&auto=format&n=YiJrrrWKxpgh6kDR&q=85&s=552711cee55ba1408937568e667f5933 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-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=80fa10bfd08308d806461a7e353fb1f3" 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-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=280&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=9fd062ee4590f0e92defdeae493fe463 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=560&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=2c6811993b2b02486ed3c2e3742f0935 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=840&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=61b0f4c47cb00aec47a17c19c4fffa4f 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1100&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=12c73469a0bc70f9517237176fc4f542 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1650&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=d1df6c2abee7f8f776824201e4c76338 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/VmzdOyHdFsCY7yMN/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=2500&fit=max&auto=format&n=VmzdOyHdFsCY7yMN&q=85&s=0438f4746b6402ac610d8324186d17dc 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-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=913222cc6cefd05fd91ffffcc6ef8482" 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-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=280&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=12eeb19c84266ff3346242e9e1443747 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=560&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=e623a2adc686738c39f07c42f45ffcae 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=840&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=045ad191af40c8e4279b3fc3b8fc6ca8 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1100&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=1d7d4a55dc2ea1e7cef6b20359d958c8 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1650&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=6d9e209e46b5b8bcb4f41332fc6acfce 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/k2AU6XTbvMteWYjY/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=2500&fit=max&auto=format&n=k2AU6XTbvMteWYjY&q=85&s=9b3281e3664c6b44fc5fbdf82374cd9f 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-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=f9e7468497348654f9b54e6cdaef5fae" 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-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=280&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=58e6619726764eec7ecbadfd050183ff 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=560&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=a979dfd399b4789f971580b2be5c39ae 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=840&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=bb7e8c8bebddf22958c3f375235bf357 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1100&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=02d6cc236c7550d534860a406bc19e47 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1650&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=7af008204d5da4ec4e5718abd56b3e45 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/2unembXSltPEZdpF/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=2500&fit=max&auto=format&n=2unembXSltPEZdpF&q=85&s=40ff04d1e1fabc6f18f11566176fcd33 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-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=99b4d28969d18dfe998ab7bf446cdae7" 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-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=280&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=225946ed659fb85a89f8405560e0cf14 280w, https://mintcdn.com/docs-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=560&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=e71f29e7cd194de968ea661e2cbbf7b8 560w, https://mintcdn.com/docs-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=840&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=7b87c56e1380af42c16fe7d93e67ddaa 840w, https://mintcdn.com/docs-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1100&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=66b0765c05329631408c60e4ba793aa7 1100w, https://mintcdn.com/docs-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1650&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=2bea77393fcb7e0e52adcd2aafd74399 1650w, https://mintcdn.com/docs-staging-automated-sdk-version-update/L9MdtnSVqJ4dx4-i/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=2500&fit=max&auto=format&n=L9MdtnSVqJ4dx4-i&q=85&s=360218b7dc5628e5b51d512ac3e019d9 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.
