Docs/Forms/Signup Forms

Signup Forms

Signup forms are the front door of your email list. Create beautiful, customizable forms and embed them anywhere on your site — as an inline block, a popup, or a slide-in. New subscribers are added to your chosen list automatically.

Overview

Every signup form in EmailSendX is connected to a list. When a visitor submits the form, EmailSendX:

  1. Creates the contact if they don't exist, or updates their record if they do.
  2. Adds them to the connected list.
  3. Sets their status to active (or pending if double opt-in is enabled).
  4. Shows the success message or redirects to your configured URL.
  5. Triggers any automations that watch the connected list.

Forms do not require any server-side code on your end — the submit handler is built into the form snippet.

Suppression is respected at signup

If a previously unsubscribed or bounced contact tries to sign up again, EmailSendX will not change their status back to active automatically. Their suppression record is preserved. To re-subscribe a contact, an admin must manually update their status.

Embed Types

EmailSendX supports five embed types to suit different placement scenarios:

HTML Snippet

A self-contained <form> block you paste into any HTML page. No JavaScript dependency — works in any CMS, static site, or custom HTML. The form submits via standard HTML form post and redirects on success.

JavaScript Widget (Inline)

An async JavaScript snippet that renders a fully styled form into a container div on your page. Non-blocking — won't slow your page load. Submits via AJAX with inline success/error messages. Best for modern websites and SPAs.

Popup

A modal overlay that appears based on a trigger you configure. Options: time delay (e.g., after 5 seconds), scroll depth (e.g., after scrolling 50% of the page), or exit intent (when the cursor moves toward the browser's top bar). The popup appears centered on the page with a backdrop.

Slide-in

A small form that slides in from the bottom corner of the screen (bottom-left or bottom-right). Less intrusive than a popup. Same trigger options: delay, scroll, or exit intent. Dismissible by the visitor; dismissal is remembered for 7 days.

Hosted Landing Page

A standalone page hosted at emailsendx.com/f/[publicId] (or your custom domain). No website required — share the URL directly in social posts, emails, or ads. The page uses your form's design and colors.

Creating a Form

Go to Forms → New Form.

  1. Connect a list: every form must be connected to a list. Submissions add contacts to this list. You can change the connected list later, but be aware it affects all future submissions.
  2. Configure fields: the email field is always included and required. Optionally add:
    • First name (optional or required)
    • Last name (optional or required)
    • Any of your workspace's custom fields
    For each optional field, choose whether it's required (validation enforced) or optional (shown but not required).
  3. Design: customize the form's appearance:
    • Heading text and description copy
    • Button label (e.g., "Subscribe", "Get free access", "Join the list")
    • Button color (defaults to your workspace brand color)
    • Background and text colors
    • Image or logo above the form (optional)
  4. Success state: choose what happens after a successful submission:
    • Inline message: show a "Thank you!" message in place of the form
    • Redirect: send the visitor to a URL (a thank-you page, your homepage, a lead magnet download, etc.)
  5. Save: give the form a name (internal) and click Create Form.

Embedding Your Form

After creating a form, go to Forms → [form name] → Embed. The embed tab shows all available code snippets depending on the embed type you chose.

bash
<!-- HTML Snippet embed (paste this into your page HTML) -->
<form
  action="https://emailsendx.com/f/abc123def456/submit"
  method="POST"
  class="esx-form"
>
  <input type="email" name="email" placeholder="your@email.com" required />
  <input type="text" name="first_name" placeholder="First name" />
  <button type="submit">Subscribe</button>
</form>
js
// JavaScript Widget embed (paste into your page <head> or before </body>)
// Then place <div id="esx-form-abc123"></div> where you want the form

(function(w, d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "https://emailsendx.com/widget/form.js";
  js.dataset.form = "abc123def456";
  fjs.parentNode.insertBefore(js, fjs);
}(window, document, 'script', 'esx-form-script'));

For popups and slide-ins, the embed code includes trigger configuration. You can also configure trigger behavior (delay, scroll percentage, exit intent) from the Embed tab without touching the code — changes are reflected in the existing snippet automatically.

Copy the snippet — don't type it

Always copy the embed code directly from the EmailSendX dashboard. The codes contain workspace- and form-specific IDs that must be exact. Typing it manually risks typos that cause forms to silently fail.

Hosted Landing Page

Every form automatically has a hosted URL at:

bash
# Default hosted page URL
https://emailsendx.com/f/[publicId]

# Example:
https://emailsendx.com/f/abc123def456

# With a custom domain configured:
https://signup.yourdomain.com/f/abc123def456

The hosted page uses your form's configured design, headline, and success message. It's fully responsive and passes all page speed metrics.

Common uses for the hosted page URL:

  • Share directly on social media profiles (Twitter bio, Instagram link-in-bio, LinkedIn)
  • Link from email signatures
  • Use as the destination URL for paid ads that don't have a landing page yet
  • QR code at in-person events

Custom domain for hosted pages

On Pro and Business plans, configure a CNAME pointing to forms.emailsendx.com to host your forms at your own domain (e.g., signup.yourcompany.com). Set this up in Workspace Settings → Forms → Custom Domain.

Form Settings

Access additional settings under Forms → [form name] → Settings:

Double opt-in

When enabled, contacts who submit the form receive a confirmation email before being fully added to the list. They must click the confirmation link to activate their subscription. Until confirmed, their status is pending and they don't receive campaigns.

Double opt-in reduces fake signups, improves list quality, and is required for GDPR compliance in some interpretations. The confirmation email template can be customized in Workspace Settings → System Emails → Opt-in Confirmation.

reCAPTCHA v3

Enable Google reCAPTCHA v3 to protect your form from bots. reCAPTCHA v3 is invisible — there's no "I'm not a robot" checkbox. Instead, it scores each submission in the background. Low-score submissions (likely bots) are rejected silently. Configure your reCAPTCHA site key in Workspace Settings → Forms → reCAPTCHA.

GDPR consent checkbox

Add a required checkbox with customizable consent text (e.g., "I agree to receive marketing emails. I can unsubscribe at any time."). The checkbox is required for form submission. The consent timestamp is stored on the contact record via a custom field you configure.

Redirect URL on submit

Redirect the visitor to any URL after successful submission instead of showing an inline success message. Use this to send visitors to a thank-you page, a content download, or your app's onboarding flow.

Form status (enabled/disabled)

Pause a form at any time from Settings. A paused form shows a customizable "Form closed" message instead of the signup fields. Use this for limited-time event registrations or waitlists that have closed.

Form Analytics

Track how your forms are performing under Forms → [form name] → Analytics.

MetricDescription
ImpressionsNumber of times the form was viewed or loaded (for JS widgets and popups, this is the number of times the form appeared on screen).
SubmissionsTotal number of form submissions, including duplicates.
Unique submissionsSubmissions from unique email addresses. A person submitting twice counts as 1.
Conversion rateUnique submissions ÷ Impressions × 100. Indicates how effectively the form converts viewers to subscribers.
Opt-in confirmed (if double opt-in)Number of contacts who completed email confirmation after submitting.
Confirmation rateOpt-in confirmed ÷ Unique submissions. Shows how many submitters follow through on confirmation.

Analytics are filterable by date range (last 7 days, 30 days, 90 days, or custom). You can compare current period vs previous period to see if form performance is improving.

Impression tracking for HTML snippets

The raw HTML snippet doesn't track impressions — it only counts submissions. Switch to the JavaScript Widget embed to get impression and conversion rate data alongside submission counts.

Start growing your list

Create a signup form in minutes, embed it on your site, and watch your subscriber list grow automatically.