Signup forms
Collect opted-in contacts on your website with a hosted page or an embedded form.
A signup form turns website visitors into opted-in contacts, with their consent recorded (when, where, and their confirmation).
Create a form
Open Signup forms and create one. Choose:
- the headline, button text and whether to ask for a first name;
- the list new people join, and the topics they sign up for;
- confirmed opt-in (on by default): people get an email with a button to confirm, and only become subscribed once they press it. This keeps out typos, fake addresses and people signed up by someone else;
- a welcome email sent once they are subscribed;
- the allowed sites the form may appear on (see below).
Put it on your site
Each form has a hosted page you can link to, and a snippet that shows the form on any page:
<script src="https://zeebra.ai/embed.js" data-form="FORM_ID" async></script>
Copy the exact snippet from the form's page.
Allowed sites
List up to 10 sites (like example.com, which covers its subdomains) and the form only shows and takes signups on their pages: browsers refuse to show it inside any other site. The hosted page can't tell which site sent people to it, so with a list it is off, unless you turn on Also take signups on the hosted page. With no sites listed, both work anywhere.
Every form also keeps scripts out: a hidden field only bots fill in, and a form sent less than 2 seconds after it appeared, more than a day after, or a second time is refused, with a note saying what to do.
What happens when someone signs up
- New address: a contact is created as opted in, pending until they confirm (with confirmed opt-in).
- Already subscribed: nothing changes, and they aren't emailed again.
- Unsubscribed before: they must confirm, even if the form doesn't ask for it.
- Bounced or reported spam: refused.
The check of your own emails
When you save a form with your own confirmation or welcome email, our content check reads it, as it reads campaigns. Most pass straight away. If one needs a look from our team, the form shows In review next to it, and until it's approved new signups get the built-in confirmation email and no welcome email, so signups keep working. If our team doesn't approve it, you get an email saying why; change it and save to have it checked again.
From your own code
If your sign-up happens in your own app, call the API's add_signup operation with a signups key. That kind of key can only add signups, so it is safe in website code. See API and MCP.