Form fields
Available field types
| Type | Input rendered | Use for |
|---|---|---|
| Text | <input type="text"> |
Names, free-form text |
<input type="email"> |
Email addresses (with browser validation) | |
| Phone | <input type="tel"> |
Phone numbers |
| Number | <input type="number"> |
Ages, quantities, scores |
| Date | <input type="date"> |
Birthdays, event dates |
| Dropdown | <select> |
Pick one from a list |
| Checkbox | <input type="checkbox"> |
Yes/No, consent, agreements |
The email field
The Email field is locked and always present. It is always required — the API rejects submissions without a valid email address.
You can rename its label (e.g. "Business email") but you cannot change its type or remove it.
Adding fields
Click Add field at the bottom of the fields list. A new field row appears with:
- Label — the text shown to the visitor (max 100 characters)
- Type — one of the types above
- Maps to — which contact attribute this data is stored under
- Required toggle — whether the field must be filled in to submit
The Maps to key
The Maps to value is the key used when POSTing to the submission API. Rules:
- Must be lowercase letters, numbers, and underscores only
- Must start with a letter (not a number or underscore)
- Max 63 characters
- Must be unique within the form — two fields cannot share the same key
Valid examples: first_name, phone, company_name, cf_industry
Invalid examples: First Name (spaces), 1phone (starts with number), my-field (hyphen)
Dropdown options
When you set a field type to Dropdown, an Options textarea appears. Enter one option per line:
Option 1
Option 2
Option 3
- Options cannot be empty
- Maximum 100 options per dropdown field
Mapping fields to contacts
The Maps to setting controls where the submitted value is stored on the Contact record:
| Maps to | Stored in |
|---|---|
first_name |
Contact's first name |
last_name |
Contact's last name |
phone |
Contact's phone (custom property) |
tags |
Appended to contact's tags (comma-separated values accepted) |
| any other key | custom_properties[key] on the contact |
Note: Only keys that are defined as fields on your form are accepted. Sending extra keys in the JSON body has no effect — unknown keys are silently ignored.
Required vs optional
Toggle the Required switch on each field to make it mandatory. Required fields:
- Display a red asterisk
*next to the label on the public form - Block submission if left blank (validated both client-side and server-side)
- Return a
422error with a descriptive message when missing in the API
The Email field is always required regardless of the toggle.
Reordering fields
Drag the handle (⠿) on the left of any non-email field to reorder. The order is saved when you save the form.
Removing fields
Click the × button on the right of any non-email field row to remove it. The email field cannot be removed.