> For the complete documentation index, see [llms.txt](https://docs.wavecast.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wavecast.io/settings/access-control/progressive-profiling.md).

# Progressive Profiling

Progressive profiling is a technique used to collect information from users incrementally over time, rather than all at once during initial sign-up.

In our implementation, progressive profiling is achieved using a **form versioning system**. Each time new fields are added to the sign-up or profile form, you will need to increement the form version, ensuring that users only see fields they have not previously filled out.

Go to *Settings* > *Audience* > *Sign Up*

<figure><img src="https://45522127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS512VHdqGC4MSzdDrKgr%2Fuploads%2FzuLFxaE5Q822u4g4KBgG%2FScreenshot%202024-12-05%20at%2016.48.15.png?alt=media&amp;token=47b0f229-fb5f-4e30-aa35-80cbb0de0396" alt=""><figcaption></figcaption></figure>

\
\
Then scroll down to *Progressive Profiling*

<figure><img src="https://45522127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS512VHdqGC4MSzdDrKgr%2Fuploads%2FaHRSaJ8BjB2Ikngx9VEn%2FScreenshot%202024-12-05%20at%2016.44.29.png?alt=media&amp;token=ba4e508a-1e10-4ae8-89d2-3ef45f617a49" alt=""><figcaption></figcaption></figure>

**Key Features**

1. **Incremental Data Collection**:
   * Users only fill in fields they have not already completed.
   * New fields introduced after the initial sign-up will be displayed when the form version is updated.
2. **Versioned Forms**:
   * The form version is a numeric indicator that tracks changes to the form fields.
   * Each update to the form (e.g., adding a new field) requires the version to be incremented by 1.
3. **Complete Profile Modal**:
   * A modal prompting users to complete their profile appears only for a specific piece of content.
   * This modal dynamically shows fields that are incomplete based on the current form version.

***

**Workflow**

1. **Initial Sign-Up**:
   * Users fill out a basic form with the initial version (e.g., **version 1**).
   * The system stores the data and the form version they completed.
2. **Adding New Fields**:
   * When new fields are added, the form version is incremented (e.g., from **version 1** to **version 2**).
   * Users who have completed version 1 will only see the new fields introduced in version 2.
3. **Determining Incomplete Fields**:
   * When the user interacts with the system, their stored profile version is compared to the current form version.
   * If their profile version is lower than the current form version, the system identifies which fields are incomplete and displays them in the profile completion modal.
4. **Complete Profile Modal**:
   * The modal appears when a user tries to access a specific piece of content.
   * Only fields that are incomplete (i.e., added in later versions) are shown, minimizing redundancy.
