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 frequencyDays cooldown 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). 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 either the embed snippet — plain, framework-free JavaScript that mounts the form into a #mailinapp-form-<id> element (inline) or as a full-page overlay (popup), no MailInApp runtime required on your site — or the hosted link, both with copy-to-clipboard. Submissions post to a public endpoint hardened the same way as every other unauthenticated MailInApp endpoint: honeypot field, per-IP rate limiting, and Turnstile bot protection if you've configured it.

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.

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