> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-update-explain-log-stream-pause.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-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=e09d19ef7081f83227db3bf47bceff50" 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-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=280&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=cf99009ab49affd00ede5fe194ded7e4 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=560&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=1500133e31e14756133a2b2c6d356df7 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=840&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=42a610db1b18095678ac59f7ee613d39 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1100&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=5e605f1dd209b1ac611e32dc913f839e 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1650&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=53e7156ccc73e5620430dcd54f044095 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=2500&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=f6a3b188c16899cdbf817a1acae347ff 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-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=fb48aa4272cef51a7280db11dde5301e" 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-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=280&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=f963d348870e625213f07d29cb834b9e 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=560&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=502047d60cfb38f6aec09f9d28fe7c49 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=840&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=8dba51c9736bec21fa959f8e0db62b4b 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1100&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=5c7e6f6adf2e7d68de1024fc2f94fc84 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1650&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=c8cc5f753db6e19afd093e3c314f413d 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/yoUxSAVS_skCMN0Y/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=2500&fit=max&auto=format&n=yoUxSAVS_skCMN0Y&q=85&s=53c76bf0fb91433c09908e331774094f 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-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=026d89c5d2772cd3f7c296fe586829b4" 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-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=280&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=94ae90aa1fb6983e5ce4d4777883cf0b 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=560&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=7b402eb158173035d3c04c2933db842d 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=840&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=5a88038ba338fd8bcacfa01b5e2bdc2f 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1100&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=4bc737a4dee0fd6b767ab2a3fc978761 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1650&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=1e733ea92d2f97c582d0878054959673 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/txRm-7cpxDhJukaW/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=2500&fit=max&auto=format&n=txRm-7cpxDhJukaW&q=85&s=175d3a4e1f1ed86ca80209737b87be1e 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-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=df5105ae9ea2ef543c4b7d33ba41ad5d" 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-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=280&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=a0dffabfcbefb5e66a2664a65488182a 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=560&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=897a5ad62f229c36fd910479bc121c92 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=840&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=9292aee7b5a5bdf73807b83369697dc1 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1100&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=f53d0e559e13e638690f21a0045a2378 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1650&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=9531383d3da347164dc4bac38e0593c0 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1M7Pt8HFqIzsgFrg/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=2500&fit=max&auto=format&n=1M7Pt8HFqIzsgFrg&q=85&s=e38c5982e19faa9745508f571d4b16c8 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-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=28492ec1c984eed6ecb3679684a12df2" 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-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=280&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=ec5f8e054e2effe14650381903976fac 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=560&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=0b30f14472cfc7a41adc4a7e68a9c169 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=840&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=66c9b58f4148f5ff55ecd71b574a0bfa 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1100&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=9dd999b8ef0e3463980eefb3b724b62f 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1650&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=e82b779af1407e3a4787f9c4c9b0f9fe 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xWO1z54zAFuqdb9f/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=2500&fit=max&auto=format&n=xWO1z54zAFuqdb9f&q=85&s=d7d5762576d642cbfd68b6ec24637cba 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-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=6787df4906f3234c0911be64d54fd2e3" 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-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=280&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=6ea0aa4bdb20cca42a3b692f214b38af 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=560&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=c295cc15d367bec6a333327e2a0261bf 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=840&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=34a4227fa835495cf260896d4a642955 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1100&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=1bb983773af1b1bd09e3cd560e806bc8 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1650&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=0529a6a061d27a1d42fee8f8d2d3f002 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/1kA3Fz-Yr67oeIRa/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=2500&fit=max&auto=format&n=1kA3Fz-Yr67oeIRa&q=85&s=9aac9d6ddc8aaffa597e9e0aa1ff9207 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-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=88089f1f438306c2454b519e73434d4c" 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-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=280&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=6cac92e65804acafb06c3dad17a5f68e 280w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=560&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=18fb641b20aa4943de9d121b5ca78bfd 560w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=840&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=a63fbed713d187fa8647a0f2a6a0cf16 840w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1100&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=5d8c54b51b57590f470514f7b71524ce 1100w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1650&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=642d63cd5bb78ee484166592ee94561c 1650w, https://mintcdn.com/docs-staging-update-explain-log-stream-pause/xi37ExP8uI8gLilW/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=2500&fit=max&auto=format&n=xi37ExP8uI8gLilW&q=85&s=0fe7157565563cecece9958230df8bd7 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.
