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

# Email

> Collect email addresses with optional validation to improve lead quality and reduce bounces.

The **Email** module collects a single email address from respondents. Use it anywhere you need a contact address — lead capture, account signup, newsletter opt-in, or routing notifications downstream.

Add it from the canvas palette under **Questions**.

## At a glance

* **What it does** — Captures one email address and optionally validates it before the respondent continues.
* **Where it fits** — Early or mid-flow on any path; pairs well with Send email, webhooks, and branch logic.
* **Outputs** — Full address, domain, whether the domain is a free provider, and (when enabled) a deliverability outcome you can use in branches and integrations.

## Feature overview

When you enable multiple checks, they run **in the order listed below**. If an earlier check fails, later checks are skipped — for example, an invalid domain extension is rejected before deliverability runs.

| Feature                        | What it does                                                                                                      | Best for                                                                       | Plan                 | When it runs                            |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------- | --------------------------------------- |
| **Valid domain extension**     | Rejects addresses whose top-level domain is not in the list of \~1,400+ active extensions (e.g. `.com`, `.co.uk`) | Catching typos like `.con` or fake extensions                                  | Included (always on) | After the field loses focus             |
| **Block free email providers** | Rejects addresses from common free and disposable providers (Gmail, Yahoo, etc.)                                  | B2B lead gen, work-email-only funnels                                          | Included             | After a passing domain-extension check  |
| **Flag domain typos**          | Suggests a correction when the domain looks like a typo of a major provider (e.g. `gmial.com` → `gmail.com`)      | Reducing accidental typos on popular providers                                 | **Pro**              | While typing (debounced)                |
| **Check deliverability**       | Verifies the mailbox is real and accepting mail via a third-party verification API                                | High-stakes lists, paid traffic, CRM sync where bounces hurt sender reputation | **Pro**              | When the respondent clicks **Continue** |

<Note>
  **Block free email providers** is optional and off by default. **Valid domain extension** is always enabled for email steps — it cannot be turned off.
</Note>

## Common workflows

<AccordionGroup>
  <Accordion title="B2B lead capture">
    Enable **Block free email providers** so respondents must use a work address. Optionally add **Check deliverability** on Pro to stop dead mailboxes before they reach your CRM.
  </Accordion>

  <Accordion title="Newsletter or community signup">
    Leave free providers allowed. Skip deliverability if you want minimum friction — you can still rely on the always-on domain extension check.
  </Accordion>

  <Accordion title="High-intent paid traffic">
    Turn on **Flag domain typos** and **Check deliverability** with **Stricter** or **Strictest** strictness so typos and risky addresses are caught before you pay to follow up.
  </Accordion>

  <Accordion title="Branch on email quality">
    Use module outputs (especially **Deliverability outcome** and **Is free provider**) in branch conditions to route risky addresses to a confirmation step or alternate path.
  </Accordion>
</AccordionGroup>

## Respondent experience

Respondents see a standard single-line email field. As they type, the address is normalised to lowercase and invalid characters are stripped.

* **Domain extension errors** and **free provider blocks** appear under the field after it loses focus.
* **Typo suggestions** appear as an underlined correction the respondent can click to apply. If they continue with a suspected typo, they may see a short confirmation screen: *Possible typo detected* with options to accept the suggestion or keep what they typed.
* **Deliverability** runs when they click **Continue**. The button shows a loading state while verification runs. If the address is blocked, an error appears under the field.

Validation messages are shown in plain language (for example, *Please enter a valid email address* or *This email address doesn't seem to exist*).

## Configuration

Open the step inspector after selecting an Email module on the canvas.

<Steps>
  <Step title="Set the question">
    Add a **Field label** (required) and optional **Message** below it for extra context (formatting and variables supported).
  </Step>

  <Step title="Choose validation features">
    Under **Field options**, toggle the checks you need. Features with a settings cog open a dialog for custom error copy or deliverability strictness.
  </Step>

  <Step title="Configure navigation">
    Customise the **Continue** button label and icon. Optionally allow respondents to **skip** the question.
  </Step>

  <Step title="Test in the inspector">
    Use **Test** mode in the inspector footer to preview the field and run deliverability against a sample address without publishing.
  </Step>
</Steps>

### Block free email providers

**Who it's for:** Teams that only want business or organisational addresses.

**What it adds:** Rejects domains on a maintained list of free and common disposable email providers (\~10,000+ domains).

**Customisation:** Open the settings cog to override the default error message shown under the field.

### Flag domain typos

<Warning>
  **Pro feature** — requires a Pro plan.
</Warning>

**Who it's for:** Any form where a typo on Gmail, Yahoo, Outlook, or similar providers would otherwise create a lead you cannot reach.

**What it adds:** After the respondent pauses typing, xform compares the domain to known provider names. Close matches show a *Did you mean …?* suggestion. Continuing with an active suggestion opens a confirmation step so the respondent can fix or confirm their address.

**Limitations:** Matching is limited to major providers in the list — custom company domains are not auto-corrected.

### Check deliverability

<Warning>
  **Pro feature** — requires a Pro plan. Uses verification credits from your monthly allowance.
</Warning>

**Who it's for:** Marketers and ops teams sending leads to sales tools or email sequences where bounces damage domain reputation.

**What it adds:** Before advancing, xform asks a verification service whether the mailbox exists and can receive mail. The outcome is stored on the answer so you can inspect it in submissions or use it in branches.

**Strictness levels** (settings cog):

| Level         | Blocks                            | If verification fails (timeout / API error) |
| ------------- | --------------------------------- | ------------------------------------------- |
| **Normal**    | Undeliverable addresses only      | Respondent can continue                     |
| **Stricter**  | Undeliverable and risky addresses | Respondent can continue                     |
| **Strictest** | Undeliverable, risky, and unknown | Respondent is blocked                       |

Under **Strictest**, network failures and timeouts also block the respondent — use this when you prefer rejecting uncertain addresses over letting them through.

**Caching:** In preview and on live forms, definitive results for the same address may be cached for the session so repeat tests do not consume extra verification credits.

## Outputs and downstream use

Each email step exposes variables you can reference in branches, AI prompts, webhooks, Send email, and redirects:

| Output                     | Type         | Example use                                       |
| -------------------------- | ------------ | ------------------------------------------------- |
| **Email address**          | Text         | Personalisation, Send email recipient             |
| **Domain**                 | Text         | Branch: only allow certain domains                |
| **Is free provider**       | True / False | Route consumer vs work addresses                  |
| **Deliverability outcome** | Choice       | Route `risky` or `undeliverable` to manual review |

Deliverability outcome values when the check runs: `deliverable`, `risky`, `unknown`, `undeliverable`, or `error`. When deliverability is disabled or the question was skipped, this output is empty.

## Limitations and good to know

* Only **one email address** per step.
* Checks run in the order shown in the feature table — configure with that pipeline in mind.
* **Valid domain extension** and **Block free email providers** require a small validation list to load in the respondent's browser; **Continue** may stay disabled briefly on first visit while that loads.
* Deliverability verification typically completes within a few seconds; very slow responses follow your chosen strictness rules.
* Skipping the question stores a skip sentinel — validation outputs are empty and **Is skipped** is true.

## Pro features on Email

* Flag domain typos
* Check deliverability (including strictness settings)

## Related

* **Phone** — collect and optionally verify mobile numbers with SMS OTP (Pro)
* **Send email** — notify yourself or the respondent when the flow reaches an action step
* **Branches** — route respondents based on deliverability outcome or domain
