> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Understand how progressive profiling can gather information about users over time as they engage with your website or application.

# Understand How Progressive Profiling Works

Progressive profiling is the process of incrementally collecting additional information about your users as they engage with your website or application. You can gather detailed user information only when relevant to a user's activities.

For example, you could collect the user's name, email, and password during signup, then ask them for the name of their company and their job title the next time they log in. You can also use [Auth0 Forms](/docs/customize/forms/configure-progressive-profile-form) to design a flow that collects user information.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  When you ask users for additional information, avoid asking for information that you may already have. For example, if a user signs up through a social connection that uses the OpenID Connect protocol (such as Google or Facebook), the identity provider (IdP) may return more user information than you think. To learn more, read [OpenID Connect Scopes](/docs/get-started/apis/scopes/openid-connect-scopes#standard-claims).
</Callout>

Implementing progressive profiling improves your users' experience by:

* Shortening registration forms.
* Avoiding repetitive questions.
* Collecting more relevant information.
* Increasing conversion rates.

## How it works

Every time a user authenticates through Auth0, Auth0 updates their user profile. The data used to update their profile can come from different sources:

* Attributes supplied by the <Tooltip tip="Identity Provider (IdP): Service that stores and manages digital identities." cta="View Glossary" href="/docs/glossary?term=IdP">IdP</Tooltip>.
* Attributes created dynamically with [Auth0 Actions](/docs/customize/actions).
* Attributes returned from calling APIs such as [FullContact](https://www.fullcontact.com/) and [Clearbit](https://clearbit.com/).
* Attributes managed by the application.

## Use action triggers

With the `post-login` action trigger, you can modify a user's `user_metadata` and `app_metadata` fields during the login flow. This is useful for tasks such as storing application-specific data on the user's profile, recording whether or not specific operations have occurred for a user, or caching the results of expensive operations on the user profile so they can be re-used for future logins. To learn more, read [Manage User Metadata with the post-login Action Trigger](/docs/manage-users/user-accounts/metadata/manage-user-metadata).

## Use the Management API

You can use the Auth0 <Tooltip tip="Management API: A product to allow customers to perform administrative tasks." cta="View Glossary" href="/docs/glossary?term=Management+API">Management API</Tooltip> [Update a User](https://auth0.com/docs/api/management/v2/#!/Users/patch_users_by_id) endpoint to update the profile data of an authenticated user, including the `app_metadata` and `user_metadata` fields. To learn more, read [Manage Metadata Using the Management API](/docs/manage-users/user-accounts/metadata/manage-metadata-api).

## Use the Lock library

You can use the `additionalSignUpFields` option to add custom fields to user signup forms. When a user enters data into a custom field, Auth0 stores the value in their profile's `user_metadata` field. To learn more, read [Lock Configuration Options](/docs/libraries/lock/lock-configuration#additionalsignupfields-array-).

## Learn more

* [Understand How Metadata Works in User Profiles](/docs/manage-users/user-accounts/metadata)
* [Manage User Metadata with the post-login Action Trigger](/docs/manage-users/user-accounts/metadata/manage-user-metadata)
