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 Settings → Custom Fields
Click “Add Field”
Configure the field type, label, and validation
Field Types
| Type | Description |
|---|---|
| Text | Single-line text input |
| Textarea | Multi-line text input |
| Select | Dropdown with predefined options |
| Number | Numeric input |
| URL | URL with validation |
Field Options
| Option | Description |
|---|---|
| Label | Display name shown to users |
| Key | API key (auto-generated from label) |
| Required | Whether the field is mandatory |
| Placeholder | Hint text shown in the input |
| Options | For select fields, the list of choices |
Using Custom Fields in API
Pass custom field values in the customFields object when calling the signup endpoint:
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:
{
"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:
{
"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
customFieldsobject
{
"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