Custom Fields

Collect additional user data during waitlist signup.

Overview

Custom fields let you collect more than just email and name from your signups. Common use cases include:

  • Company name or role
  • How they heard about you
  • Product interest or use case
  • Country or timezone

Creating Custom Fields

Go to your waitlist in the admin dashboard
Navigate to SettingsCustom Fields
Click “Add Field”
Configure the field type, label, and validation

Field Types

TypeDescription
TextSingle-line text input
TextareaMulti-line text input
SelectDropdown with predefined options
NumberNumeric input
URLURL with validation

Field Options

OptionDescription
LabelDisplay name shown to users
KeyAPI key (auto-generated from label)
RequiredWhether the field is mandatory
PlaceholderHint text shown in the input
OptionsFor select fields, the list of choices

Using Custom Fields in API

Pass custom field values in the customFields object when calling the signup endpoint:

signup.ts
const response = await fetch(
"https://your-worker.workers.dev/api/w/my-waitlist/signup",
{
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    email: "user@example.com",
    name: "Jane Doe",
    customFields: {
      company: "Acme Inc",
      role: "Developer",
      useCase: "Building a SaaS product"
    }
  })
}
);

Validation

Custom fields support several validation options:

Required Fields

Mark a field as required to ensure users always provide a value. The API will return an error if a required field is missing:

Error Response
{
"success": false,
"error": {
  "code": "VALIDATION_ERROR",
  "message": "Missing required field: company"
}
}

Select Options

For select fields, the value must match one of the predefined options:

Select Field Config
{
"type": "select",
"key": "plan",
"label": "Which plan interests you?",
"required": true,
"options": [
  "Starter",
  "Pro",
  "Enterprise"
]
}

Exporting Data

Custom field data is included when exporting signups:

  • CSV Export: Each custom field becomes a column
  • API: Custom fields are returned in the customFields object
API Response
{
"signups": [
  {
    "email": "user@example.com",
    "name": "Jane Doe",
    "customFields": {
      "company": "Acme Inc",
      "role": "Developer"
    }
  }
]
}

Best Practices

Keep it minimal

Only collect data you actually need. More fields = lower conversion rates.

  • Limit to 2-3 fields — Every extra field reduces signups
  • Make most fields optional — Only require truly essential data
  • Use clear labels — Help users understand what you’re asking
  • Provide placeholders — Give examples of expected input

Next Steps