> 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

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="/files/EN9zbStTzzsJi6DMJwsV" alt=""><figcaption></figcaption></figure>

\
\
Then scroll down to *Progressive Profiling*

<figure><img src="/files/6gaUWr0d8BoncU106qRY" 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.
