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
frequencyDayscooldown 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.