Documentation menu

Signup forms & popups

A signup form collects new subscribers straight into one of your contacts lists — no send required to get someone onto it. Create one from the Signup Forms tab.

Three kinds

  • Inline — embed a snippet on your own site; the form renders wherever you drop it.
  • Popup — a full-page overlay triggered by a delay, scroll depth, or exit intent, with a cooldown (7 days by default, adjustable from 0 to 365) so a subscriber who dismisses it isn't shown it again immediately.
  • Hosted — a standalone page at /f/<formId> you can link to directly, with no embed step at all.

Building one

Pick a target contacts list, then add up to 10 extra fields beyond the always-present email address (text, phone, select, checkbox — a select field can offer up to 20 options). Optionally check off which mail topics (see Preflight & preferences) a new subscriber opts into, and set two brand colors, a corner radius, and (for popups) the trigger settings.

Getting it live

The Get code action gives you two ways to publish it. The embed snippet is plain, framework-free JavaScript that mounts the form into a #mailinapp-form-<id> element (inline) or as a full-page overlay (popup), with no MailInApp runtime required on your site. The hosted link works with no embed step at all. Both come with copy-to-clipboard.

Submissions post to a public endpoint hardened the same way as every other unauthenticated MailInApp endpoint. A hidden honeypot field catches most bots outright — a filled-in honeypot gets a fake success response rather than a rejection, so a bot has no signal to retry without it. Per-IP rate limiting backs that up, and so does Turnstile bot protection if you've turned it on; Turnstile is opt-in and silently skipped if you haven't configured it, not enforced by default.

Double opt-in

Turn on Require double opt-in and pick a project to send as the confirmation email. A new subscriber is stored as pending rather than active until they click the confirm link in that email — which can be any interactive project, not just plain text — at which point they become an ordinary, active contact. A pending row is automatically skipped by every send (manual, scheduled, or journey) until it's confirmed.

Gamified lead magnets

Popup signup forms can optionally show a Spin-to-Win wheel or Scratch-Off card before the email field — a game-layer lead magnet that hands out a discount code when a visitor signs up. Turn it on from the Gamified Lead Magnet section in the form builder.

  • Spin-to-Win — configure wheel slices with labels, promo codes, and win ratios. The wheel spins on-screen in an HTML5 Canvas overlay; the winning code is appended to the submission and shown in the confirmation message.
  • Scratch-Off — a tap-or-click scratch overlay that reveals the subscriber's prize code once they fill in the email field and submit.

Both render as self-contained vanilla JavaScript in the embed snippet — no React or external runtime required on the customer site. For inboxes that can't show the canvas animation, the code is simply revealed directly, so nobody misses their reward.

Your plan caps how many signup forms you can have at once — see pricing.