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

> Configure an update policy form using Forms for Actions

# 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-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=8547139e9a602bc4d94203af8845c65e" 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-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=280&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=5a780be8ed7d06fd2ef26816a88d9caf 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=560&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=c481b57c5293660433e84d05ebea58cd 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=840&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=da12cafc16898bd95ccaa0c87af4ac24 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1100&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=f7f4e5acde76b1459a8318595862d441 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=1650&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=656e539172eed8c0fd6357d2cbd19c0d 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6i68dMvHDTijfRmSgN1x8Q/ad900e7d4c0fb34645921435472b8684/privavy-policy-form.png?w=2500&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=9766ea7ed0efe05f40ff0b8c2511c5fa 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-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=6e4886e9a9589053a8cf7684acd9ba5b" 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-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=280&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=d211e288bd61d23134e5c40e4f714381 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=560&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=dd85415b560566573accdcad2348a69e 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=840&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=562645fd911609458db89fc66d5187c0 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1100&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=538316f39f458eeb670dbddf809efb60 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=1650&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=d95b5e1c067872b9102f14bc26a2374e 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/F28HqXaq-fHcjHSN/docs/images/cdy7uua7fh8z/2TZ9jSjgEcARFpULI6hz4R/a4319a1bd482f2ee5cc23100fdb2f42c/New-form-Forms-for-action-use-case.png?w=2500&fit=max&auto=format&n=F28HqXaq-fHcjHSN&q=85&s=a42e1fa0cf131954ac66cbd909d2ca2a 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-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=15240c14d08a428d0bb36a160569f5d5" 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-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=280&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=42260b50c368d3746696ef59a31a39b7 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=560&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=95128255e48896087117787c9834ff48 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=840&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=4691834b18cf24265087776db624af01 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1100&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=2108ef034a13960d8afe762422ce3283 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=1650&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=edacfefcdaa79857d16ab2f1e80793e1 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/RoxqrnEFVW4t01Ul/docs/images/cdy7uua7fh8z/59zFFjQjAnjogkc2QGIqqJ/0ad66b1b636544122aa4e65968b76c2c/privacy-policy-step-node.png?w=2500&fit=max&auto=format&n=RoxqrnEFVW4t01Ul&q=85&s=14e1d370372a53bca8d9505d947124f0 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-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=bc5099a6614195a9cc3380d41d6374b1" 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-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=280&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=5e9f7a32d32833d1340af762e1eaf045 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=560&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=1240b6e51caaeb3e4c316fa77c15a415 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=840&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=789b43a77cc2d9c276f82db9174f5899 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1100&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=927ff1617736bc8d4e35464bb12d0c5e 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=1650&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=a4af03a527095fb0fa640af027105067 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/EMBRM6bYnT1287YM/docs/images/cdy7uua7fh8z/6YIkzm7SrpM9LW76AXuRzh/353c518fe82bbaa440836da1d83596d6/link-policies.png?w=2500&fit=max&auto=format&n=EMBRM6bYnT1287YM&q=85&s=f8aed1487ed853d7f88eaefaeaffd52e 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-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=32b2e088c7597b0f973dc4693389357d" 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-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=280&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=1ad084540e1a3ecc51740fd0f095abbe 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=560&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=25b8ab46085e4086214a6d6b97478c0e 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=840&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=8c919a444dde89d38e8a61b09f611f00 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1100&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=46684c237fe60d0e873749af8fe6e130 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=1650&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=0b4b9a992a30a87447e0bbf359b23015 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/e9dJZeZUIyes6kX0/docs/images/cdy7uua7fh8z/CvMNIwWrOUwaFW4X3G28p/1fb70ae57a20749d9ffaaba8dc0b7e26/update-user-privacy.png?w=2500&fit=max&auto=format&n=e9dJZeZUIyes6kX0&q=85&s=34c08d14b5adf7b05b5614d9c995700a 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-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=b618a9faa6eabef5a0400cb73f38cec1" 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-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=280&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=57bfe307e9a97a922ddb236aee9e8056 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=560&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=1ee3ec1ea10900b05fe5d846a533b36d 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=840&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=31a11590441b11e9fdeba009cca608e6 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1100&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=b338eb1c7ab3e8c5ba0e46ea0c86c766 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=1650&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=8898fd60276947954aad80a00c2b0f89 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/2Ak17d_u3ODX3TIy/docs/images/cdy7uua7fh8z/2EIUzc539sq9lwoTKbjoJv/496a864c0fc44a782c9cadca119dbfb0/embed.png?w=2500&fit=max&auto=format&n=2Ak17d_u3ODX3TIy&q=85&s=ceaec3407688f0e39f547ff54179bc29 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-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=80ab128ab072a7f44fc42a7322b4ce8c" 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-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=280&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=dd1a914a60583984e37b8fe62953b790 280w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=560&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=fbec5fd8962033dc2973ce88b0104e3f 560w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=840&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=7b528e180d6d56d50bb4da7a46265b59 840w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1100&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=16f5d2d3d3f22151823e60f7e4b96152 1100w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=1650&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=837ac06691bed73527fd11a366d18ca6 1650w, https://mintcdn.com/docs-dev-docs-free-tenant-inactivity-policy/6MdNV0_b-iNkLX_B/docs/images/cdy7uua7fh8z/5TOwDgevZsBqd7yZynUYWU/41ca909dc3007aed4f40ff794a05efa5/postlogin.png?w=2500&fit=max&auto=format&n=6MdNV0_b-iNkLX_B&q=85&s=29e809e5b0e2cce72da4a87626373229 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.
