To add a custom field to leads, go to Sales → Custom Fields in the CRM sidebar, click Add custom field, and fill in a field key, a label, and a type. It appears on every lead's detail page immediately, and any landing page or webhook already sending a matching field name will start binding to it automatically — no re-embedding scripts required.
Field key vs. label — the one thing to get right
The form asks for two names that look similar but do different jobs. The field key
(e.g. budget) is what your embed script, webhook, or API calls use to identify the field —
it only accepts letters, numbers and underscores, no spaces, because it has to match exactly against
whatever a form submission sends. The label (e.g. "Budget (₹)") is what your team
actually sees on the lead detail page, and can be anything readable.
If you're adding a field to match one you've already been sending from a landing page's extra fields section (fields that arrived without a matching custom field yet, and are currently showing under "Extra fields" on the lead), the field key here has to match that name exactly — case included — or it'll create a second, separate field instead of adopting the data already coming in.
Choosing a field type
Fifteen types are available, covering most of what a lead form realistically needs:
- Text, Textarea — free-form input; textarea for anything longer than one line.
- Number, Email, Phone, URL — same idea, with matching validation and formatting.
- Date, Datetime — for things like a preferred callback time or move-in date.
- Dropdown, Radio — pick one option from a fixed list. Once selected, an "Options"
box appears — enter your choices comma-separated (e.g.
Delhi, Mumbai, Bangalore). - Multiselect, Checkbox — pick more than one from a fixed list; same comma-separated options field.
- File — for an attachment tied to this specific field, separate from the general Attachments panel already on every lead.
- JSON, HTML — for structured or formatted data from an integration; rarely needed unless you're feeding this field from a custom API integration rather than a form.
Marking a field required, and setting validation
Checking Required enforces the field wherever a person fills out a lead manually inside
the CRM — it does not retroactively require the field on submissions already coming in through a landing
page or webhook, since those are outside a human filling out a CRM form. The optional
Validation rule field accepts a CodeIgniter rule string, like
numeric|max_length[10] for a budget field, if you want stricter checking than the field
type alone provides.
Where the field shows up
Once saved, the field appears on the lead create/edit form and on every lead's detail page, in the same section as any other extra data captured for that lead. It's also immediately usable by any integration: a landing page's embed script sending a field with the matching key (see creating a landing page and installing the tracking script), a Google Lead Form or WordPress webhook submission with a matching question name, or a direct API call — all of them check custom fields before falling back to the unstructured "Extra fields" bucket.
Turning a field off without losing data
If you stop needing a field, use Deactivate rather than delete — it hides the field from new lead forms without touching the values already saved against existing leads. Delete removes the field definition entirely; do that only if you're certain nothing needs the historical data preserved.