SendBeam

Forms

Build embeddable signup forms to grow your email list from your website.

View as Markdown

What are forms?

Forms are embeddable HTML signup widgets you create inside SendBeam and place on your website. When a visitor fills out the form, SendBeam automatically creates a contact and adds them to the list you specify — no server-side code required on your end.

Forms are the primary way most teams grow their email audience organically. You can create as many as you need: one in a blog sidebar for newsletter signups, another on a landing page for a lead magnet, and a third in the site footer as a general subscribe prompt. Each form is independent, with its own fields, protection settings and target list. A form can also be a contact form that emails you the visitor's message instead.

info
No SendBeam branding. Embedded forms show no SendBeam logos or attribution. The form appears as a native part of your website.

How forms work

The process from visitor to subscriber is fully automatic:

  1. A visitor lands on your page and fills in the form fields.
  2. SendBeam receives the submission over a secure HTTPS connection.
  3. A contact record is created (or updated if the email already exists — new names and custom fields are merged in), and the contact is added to the form's target list.
  4. If the list uses double opt-in (or your account is on the Free plan), the membership is held as unconfirmed and a confirmation email is sent automatically.
  5. Any active automation with the Form Submitted trigger (or Contact Created, for a new contact) starts for the contact straight away. List Joined automations for the form's list start too — immediately, or once the contact confirms if the list uses double opt-in.
  6. The visitor sees your thank-you message or is redirected to the URL you set.

The embed snippet is plain HTML and JavaScript that posts to the form's endpoint. The thank-you message and redirect are returned by SendBeam on each submission, so you can change them without touching your site; if you change the form's fields or enable Turnstile, copy the snippet again.

lightbulb
Works on any platform. The embed code is plain HTML and JavaScript. It runs on static sites, WordPress, Webflow, Squarespace, Wix, and custom-built applications — anywhere you can paste a snippet of HTML.

Views and conversion rate

Every form counts how many times it has been shown to a person, and shows its submissions as a share of that: the Views, Submissions and Conversion columns on the Forms page, the Performance panel on each form's own page, and views, submissions and conversion_rate on each form in the API. Two forms with the same number of signups can be doing very different jobs — one seen by a hundred visitors, the other by ten thousand — and this is what tells them apart.

  • What counts as a view. The form rendered for a visitor on its hosted page, in a pop-up, through the WordPress plugin, or where the inline code has been pasted. Search-engine crawlers, link previews and prefetches are left out, and repeated loads from one visitor stop counting after a while, so a page reloaded in a loop does not become a thousand views.
  • What counts as a submission. Every submission the form accepts — everyone who filled it in and was shown your thank-you message, whether or not a new contact came of it. Attempts the automated-submission checks drop are not counted, so they cannot bury your rate.
  • The rate. Submissions divided by views, shown once the form has been seen at least once. A form you submit through the API rather than by showing it to people has submissions with no views, so its rate can read over 100%.
  • Since when. Both counts started the day this was introduced; earlier submissions are not counted, so the two numbers always cover the same period.
info
Inline embeds need the code copied again. The hosted page, the pop-up and the WordPress plugin count views on their own. The inline snippet is plain HTML on your site, so a snippet pasted before views existed sends nothing — copy it again from the form's page and its views start counting. Submissions through the old snippet are counted either way.

Testing a second version

Once a form has views, you can try a second version against it. On the form's page, under Second version, write what B should say instead — a different headline, line of copy, button label, thank-you message or button colour, any or all of them — and start the test. From then on, half of the people who see the form on its hosted page, in the pop-up or through the WordPress plugin see version B, picked at random on each view, and each version's views and submissions are counted on their own.

  • The fields never change. A version can change the words and the look, not what is collected, so every submission lands on the contact the same way.
  • No cookie. The choice is made fresh on every view, so someone who reloads may see the other version. Nothing is set on the visitor's browser.
  • Inline embeds show A. The pasted snippet is plain HTML on your site and cannot switch; its views and submissions count towards version A.
  • You decide. The page shows which version is converting better and tells you when each has been seen enough times for that to mean something. Use B makes B's words the form's own; Keep A ends the test with everything as it was. Nothing is switched automatically.
  • From the API. ab_test on the form: send { "status": "testing", "b": { … } } to start, { "status": "decided", "winner": "b" } to decide, null to clear. versions carries each version's views, submissions and rate.

Spam protection

Every SendBeam form includes built-in protections so you do not need to configure anything extra to keep bots out:

  • Automated-submission checks — a post that carries the signs of a script rather than a person is silently discarded. They are always on and need nothing from you.
  • Rate limiting — submissions are limited per visitor and capped per form per day. The caps are shown, and adjustable, on the form's settings page.
  • Email format validation — malformed addresses are rejected at submission time with a clear error.
lightbulb
Enable double opt-in for the strongest protection. Even if a bot submits a fake address, it will never confirm, so the contact stays unconfirmed and never receives campaigns sent to the list. Double opt-in is a list-level setting — see Double Opt-In for details.

Forms vs other signup methods

Forms are not the only way to add contacts to SendBeam. Here is when to use each approach:

  • Embedded forms — best for organic, self-service signups directly from your website.
  • CSV import — best for bulk-loading an existing list you have collected elsewhere.
  • Manual add — best for adding individual contacts one at a time.
  • API — best for programmatic signups from a custom form, checkout flow, or application.

Contact forms

Not every form is a signup. Set a form's type to Contact and SendBeam does the opposite job: the visitor's message is emailed to you, sent from your verified sending address with the visitor as Reply-To, so you answer by hitting reply.

  • No contact is created. Someone reporting a bug has not asked for your newsletter. Contact forms never touch your contacts, lists or automations.
  • Same spam protection as signup forms, applied automatically.
  • Honest failures. If the notification cannot be sent, the visitor gets an error instead of a false "sent", so your site can fall back to a plain mailto: link.
  • Fields: email and message are required; name and subject are optional. Any extra field you declare on the form is included in the email.

Signup forms can use the same notification: set Email me about new subscribers to get a short email each time someone joins. Notifications appear in the Log tab under Reports.

Protecting public forms

The public endpoint has no API key, on purpose: anything in a web page is visible to every visitor. Instead, every form is protected against automated submissions, rate-limited per visitor and capped per form per day; the caps are shown, and adjustable, on the form's settings page. For forms on busy or public sites, the form's Protection section adds two more layers:

  • Allowed sites. List the origins the form lives on (for example https://www.example.com). Browsers cannot forge their origin, so this stops the form being embedded or driven from anywhere else. A hand-written script can still fake it, which is what the next layer is for.
  • Cloudflare Turnstile. Cloudflare's free, mostly invisible bot check. Create a widget in your Cloudflare dashboard, paste the site key and secret key into the form, and the embed code adds the widget automatically. Every submission must then carry a valid token; SendBeam verifies it with Cloudflare before doing anything else.

Stuck, or found a gap? Ask in the community — questions, tips and every release note, with this page as the source of truth.