Skip to main content
The template only sets defaults (queue, opt-in, fields). Everything lives under /v1/forms, no separate waitlist or newsletter API.

Templates at a glance

Adjust features in the API or dashboard (queue, doubleOptIn, captureContact).

Use case 1, Waitlist

Scenario: Product not launched yet; first-come order matters.
  1. Create with template: "WAITLIST" and features.queue: true
  2. Share /w/forms/{id} or subscribe via API
  3. Each confirmed submission gets queuePosition
  4. form.submitted webhook feeds CRM or welcome automation

Use case 2, Newsletter

Scenario: Collect emails for recurring updates.
  1. Create with template: "NEWSLETTER"
  2. Subscribe upserts by email/phone; preferences replaces previous values
  3. Response includes unsubscribeToken, treat as secret
  4. Cancel via API .../cancel or /w/forms/unsubscribe?token=
  5. form.unsubscribed webhook for external list cleanup
Newsletter ignores double opt-in, subscriptions are active immediately. For email confirmation, use CONTACT or BLANK with doubleOptIn: true.

Use case 3, Contact form

Scenario: “Contact us” on the website.
  1. template: "CONTACT", name, email, message by default
  2. captureContact: true creates or links a workspace contact
  3. form.submitted opens a ticket or notifies the team

Use case 4, Survey (SURVEY)

Scenario: Post-purchase NPS or event feedback.
  1. template: "SURVEY", multiple fields in answers
  2. No automatic contact capture by default; enable captureContact if needed

Hosted page and embed


Form status


Next steps