# Understanding subscription forms

## Overview

Subscription forms let you collect email subscribers on your website and pass their data directly to Pushwoosh. You can show forms as modal popups or embed them into any page and optionally require email confirmation (double opt-in) so each address is verified before it is added, which helps keep lists accurate.

### When to use subscription forms

Use subscription forms to:

- Grow an owned email audience without relying on third-party tools
- Capture structured profile data (name, phone, custom fields) at the moment of signup
- Automatically tag subscribers by form source and build segments for targeted campaigns
- Enable double opt-in so subscribers confirm by email before they are added, which helps keep your list clean and engaged
- Export subscribers collected via forms so you can target them in campaigns and analytics

### Understand how subscription forms work

When you create a subscription form, Pushwoosh automatically creates a tag named **`PW_SubscriptionForm [Form Code]`**.

After you place the embed code on your website and a visitor submits the form:

- The form passes the subscriber's email and other field values to Pushwoosh. 
<Aside type="note">
If this is the first contact for this person, Pushwoosh creates an Email device where **User ID**, **HWID**, and **token** are all set to the email address. If the user already has a **User ID**, the new Email device is linked to that existing User ID and becomes one more device in the profile alongside devices for push, SMS, and other channels.
</Aside>
- Pushwoosh assigns the subscription form tag to the
  subscriber based on the double opt-in setting:
  - **Double opt-in disabled:** the tag is assigned immediately on submission.
  - **Double opt-in enabled:** the tag is assigned only after the subscriber
    confirms their email. Subscribers who do not confirm are not registered
    in the app and do not receive the tag.
- The tag name includes the **form code** used for the subscription.
  Use this tag to build segments and target subscribers of a specific form. 

<Aside type="tip">
To find the form code, click **Edit** for the form in the forms list and check the URL when the form opens for editing. 

You can also find the form code in the filename of the CSV from [**Export subscribers**](/product/audience-data-and-segmentation/subscription-forms/form-analytics-and-export/#export-subscribers) for that form.
</Aside>


## Set up and manage subscription forms
To start working with subscription forms, follow these steps:
<Steps>

1. **Create and embed the form**

   Set up the form fields, choose whether to display the form as a modal or inline widget, then copy the embed code and add it to your website. 
   
   [Learn more](/product/audience-data-and-segmentation/subscription-forms/create-subscription-forms/)

2. **Customize the widget appearance (optional)**

   Use CSS custom properties on `pushwoosh-subscribe-widget` to adjust colors, typography, spacing, and modal styling. 
   
   [Learn more](/product/audience-data-and-segmentation/subscription-forms/customize-widget/)

3. **Enable double opt-in (optional)**

   Turn on double opt-in for the project, edit the confirmation email, and review how confirmed subscriptions and consent are recorded in **User Explorer**. 
   
   [Learn more](/product/audience-data-and-segmentation/subscription-forms/double-opt-in/)

4. **Review performance and export subscribers**

   Use **Form performance** to track views and submissions, manage form status, copy the embed code, and export subscribers as a CSV file. 
   
   [Learn more](/product/audience-data-and-segmentation/subscription-forms/form-analytics-and-export/)

</Steps>

## What happens when a visitor submits a subscription form

The behavior after submission depends on whether [double opt-in](/product/audience-data-and-segmentation/subscription-forms/double-opt-in/#enable-double-opt-in) is enabled and whether the email is already in your project. 


### Double opt-in disabled

| Scenario | What the visitor sees | What happens in Pushwoosh |
|---|---|---|
| New email | "Thanks! You're now subscribed to our emails." | Subscriber created with status **Confirmed** |
| Email already submitted through this form | "You are already successfully subscribed to the list." | No changes. The form cannot be resubmitted with the same email. |

### Double opt-in enabled

| Scenario | What the visitor sees | What happens in Pushwoosh |
|---|---|---|
| New email | "Thanks! Please check your email to confirm your subscription." | Confirmation email sent. The visitor is **not** registered in the app until they confirm. |
| Link clicked within 24 hours | Confirmation page | The visitor is registered in the app as a subscriber with status **Confirmed**. |
| Link not clicked within 24 hours | "Link expired. Please return to the form and resubscribe." | The visitor is **not** registered in the app. The signup attempt has expired. They must submit the form again if they still want to subscribe. |
| Email already confirmed | "You are already successfully subscribed to the list." | No changes. The form cannot be resubmitted with the same email. |