Forms

Form Endpoints collect new contacts from your website or landing pages by exposing a public endpoint that accepts submissions and feeds them into a topic.

Form endpoints let you collect new contacts directly from your website or landing pages. Each form is a public endpoint that accepts submissions and feeds them into your Owlat audience — no coding required beyond embedding a simple snippet.

In the product this feature is called Form Endpoints. It can be turned off per deployment via the forms feature flag — see Feature flags.

Creating a form

  1. Open Settings > Technical and select Form Endpoints.
  2. Click New Form.
  3. Give your form a name (for internal reference).
  4. Optionally choose a topic to subscribe new contacts to. Leaving it unset still captures the contact — it just won't subscribe them to any topic.
  5. Optionally set a redirect URL — where visitors go after submitting.
  6. Save the form to generate its endpoint.

Create separate forms for different signup contexts (e.g., "Blog Newsletter Signup", "Product Waitlist") so you can track where contacts come from and route them to the right topics.

Form settings

Linked topic

Linking a topic is optional. When a form has a topic, submitters are automatically added to it — and if that topic has double opt-in enabled, the contact must confirm their subscription before becoming active. A form with no topic still creates or updates the contact in your audience; it just doesn't subscribe them anywhere.

Redirect URL

After a successful submission, visitors are redirected to this URL. Use it to send people to a thank-you page, a resource download, or back to your homepage.

Spam protection

Forms include built-in honeypot spam protection — a hidden field that catches bots without requiring CAPTCHAs or extra setup from your visitors. This runs automatically on every submission.

Double opt-in on forms

If the topic linked to your form has double opt-in (DOI) enabled, the flow works like this:

  1. A visitor submits the form.
  2. The contact is created with a pending subscription status.
  3. A confirmation email is sent automatically.
  4. The contact clicks the confirmation link to become active.
  5. Only active contacts are eligible for campaign sends.

Double opt-in is configured at the topic level. See Topics for setup details.

Per-form Double Opt-In toggle

The form editor's Enable Double Opt-In checkbox forces a confirmation step even when the linked topic does not require DOI. Double opt-in applies if either the form toggle or the topic setting requires it (a union of the two controls). Enabling it on the form is recommended for GDPR compliance.

Embedding your form

After creating a form, you'll see an embed code that you can paste into your website. The form submits data to Owlat's public endpoint, so it works with any website — static HTML, WordPress, React, or anything else.

What gets captured

Form fields can be one of three types: email, text, or checkbox. Of the values submitted, three are written to the contact record:

  • Email (required) — the contact's identifier
  • First name (optional) — mapped from a firstName or first_name field
  • Last name (optional) — mapped from a lastName or last_name field

Any other fields a visitor submits are recorded in the submission log for that form, but they are not written to Contact Properties. Only the three fields above flow onto the contact itself.

Monitoring submissions

View submission statistics for each form on the Form Endpoints page (Settings > Technical > Form Endpoints). Every submission is recorded and classified into one of five outcomes:

StatusMeaning
successA new contact was created (and subscribed, if the form links a topic).
pending_confirmationThe contact must confirm via double opt-in before becoming active.
duplicateThe contact already existed or was already subscribed to the topic.
invalidValidation failed — e.g. a missing required field or a malformed email.
spamThe honeypot field was filled in, so the submission was rejected as a bot.

All five outcome statuses are visible per submission in the Recent submissions list. The per-form aggregate tiles show Total, Successful, and Other — where Other is derived as total minus successful and groups together pending double opt-in, spam, invalid, and duplicate submissions (the backend stores only total and successful counters). Use the aggregate counts to understand which signup sources are performing best, and review the per-submission statuses to spot spam or invalid entries.

Next steps

  • Contacts — see the contacts created by your forms
  • Topics — configure the topics your forms feed into
  • Deliverability — ensure your confirmation emails reach inboxes