Signup Forms & Popups

Capture email subscribers directly on your website with multi-step popups, slide-in flyouts, banners, and embedded inline forms. Collect emails first, then progressively ask for more information across additional steps. Forms are delivered by the same tracking snippet you already have installed.

Form Types

Choose the form type that best fits your site and your goal. Popups and flyouts support teasers (a small floating button that reopens the form after it is dismissed).

Popup

Centered overlay

Flyout

Slides in from corner

Banner

Top or bottom bar

Inline

Embedded in page

Fullscreen

Full viewport takeover

Multi-Step Forms

Forms can have up to 5 steps. Each step collects different information from the visitor, with buttons to navigate forward, back, or submit. The final step is typically a success screen that confirms the subscription and optionally shows a discount code.

Data is captured incrementally. When a visitor completes step 1 and clicks "Next," their data from step 1 (usually their email) is saved to the server immediately. If they close the form on step 2, you still have their email from step 1. This progressive capture approach maximizes the number of subscribers you collect.

Example: 3-step email + SMS form

Step 1 of 2

Get 10% Off

Join 5,000+ subscribers for exclusive deals

you@example.com
First name
Step 2 of 2

One more thing

Get deals straight to your phone too

+1 (555) 123-4567
Complete

Welcome!

Check your email for your discount code.

Your code

WELCOME10

Contact is created after Step 1, even if the visitor leaves before Step 2.

Step Types

TypePurpose
CollectCollects data from the visitor. Contains fields (email, name, phone, etc.) and navigation buttons.
SuccessConfirmation screen shown after submission. No fields, just a message and a close button. Optionally displays a discount code.

Button Actions

ActionBehavior
Next StepValidates the current step's required fields, saves data to the server, and advances to the next step.
Previous StepGoes back to the previous step. No server call (data was already saved).
SubmitValidates and saves data as the final submission. Applies tags, records the form event, and advances to the success step.
CloseCloses the form. If a teaser is configured, it appears in place of the form.
LinkNavigates to a specified URL.

Teasers

A teaser is a small floating button that appears at the edge of the visitor's screen. Clicking it opens the parent form. Teasers are available for popup and flyout form types only.

The teaser solves a common problem: once a visitor closes a popup, there's no way for them to get back to the offer. The teaser provides a persistent "I changed my mind" button.

Teaser examples

Get 10% Off

Pill (bottom-right)

Subscribe

Rounded square (bottom-left)

Circle (center-right)

Display Modes

ModeBehavior
After CloseTeaser appears after the visitor closes the popup. Most common option.
Before OpenTeaser is visible on page load. Clicking it opens the popup. Good for less intrusive experiences.
AlwaysTeaser is always visible, even while the popup is open. Maximum visibility.

Customize the teaser's text, position (bottom-right, bottom-left, center-right, center-left), shape (pill, circle, square, rounded square), and colors to match your brand.

Creating a Form

  1. Go to Forms in the dashboard sidebar
  2. Click New Form, choose a type and name
  3. Use the Steps tab to define your form steps. Add fields, configure buttons, and set up the success message.
  4. Optionally configure a Teaser (for popup and flyout forms)
  5. Set up Targeting rules (which pages, what triggers)
  6. Configure Settings (tags, discount code, double opt-in)
  7. Set the form to Active and save

Active forms are automatically delivered to matching pages via the tracking snippet. No additional code changes are needed on your site.

Fields

Each collect step can include any combination of these field types:

Email

you@example.com

Required on step 1

Aa

Text

First name

Names, company, custom

Phone

+1 (555) 123-4567

With country code

SMS Consent

Dropdown

Select an option...

Custom choices

Text Area

Tell us more...

Multi-line responses

Triggers

Choose one or more triggers that control when the form appears. Multiple triggers use OR logic: the form shows when the first trigger fires.

Immediate

On page load

Time Delay

After N seconds

Scroll Depth

After N% scroll

Exit Intent

Cursor leaves page

Page Views

After N pages

URL Targeting

Control which pages your form appears on with URL rules:

Match TypeExampleMatches
Exact Path/pricingOnly /pricing
Path Containsproduct/products, /product/shoes
Path Starts With/blog/blog, /blog/my-post

Add multiple rules (OR logic: form shows if any rule matches). Add exclude rules to block specific pages even if they match an include rule.

Embedding Inline Forms

For inline forms, add this HTML where you want the form to appear:

<div data-pigeon-form="YOUR_FORM_ID"></div>

The tracking snippet finds this element and renders the form inside it, including multi-step navigation if the form has multiple steps.

What Happens on Submission

1

Fields validated client-side

Required fields, email format

2

Data sent to Pigeon Perch API

With step index and isFinal flag

3

Contact created or updated

Step 0: creates contact. Steps 1+: updates existing.

4

Step completion recorded

Per-step funnel analytics updated

5

Final submission processing

Tags applied, form_submit event recorded, discount code returned

Step Funnel Analytics

For multi-step forms, the analytics tab shows a step-by-step funnel with completion counts and drop-off percentages between each step. This helps you identify where visitors are abandoning and optimize your forms.

Step Funnel: Newsletter Popup

Views4,200
Step 1: Email Capture1,260(70% viewed but didn't start)
Step 2: Phone + SMS756(40% drop-off from Step 1)
Final Submission680(10% drop-off from Step 2)
Overall conversion rate16.2%

If 1,000 visitors complete step 1 but only 600 complete step 2, you know step 2 has a 40% drop-off. Consider simplifying the fields, improving the copy, or making the fields optional.

API Endpoints

Authenticated (requires API key or session)

GET /forms
POST /forms
GET /forms/:id
PATCH /forms/:id
DELETE /forms/:id

Public (requires writeKey)

GET /forms/public?writeKey=...&url=...&device=...
POST /forms/public/submit{ formId, writeKey, fields, stepIndex, isFinal }
POST /forms/public/view{ formId, writeKey }

Related Features

  • Contacts created by form submissions appear in your contact list with auto-tags applied
  • Automations can trigger when a contact is created via a form submission
  • Suppressions manage unsubscribe preferences for contacts who signed up via forms
  • Web Tracking powers the form delivery system and records form events
Forms & Popups — Pigeon Perch Docs