# Custom fields > A custom field is an attribute attached to a contact beyond the email address — for example, first name, country, signup source, customer tier. Custom fields drive personalisation and segmentation. ## What it is The email address is the only required attribute on every contact. Everything else is a custom field. Each mailing list defines its own set of fields, so a "Newsletter" list can collect first name and country while a "Customers" list collects company size and account type. ## Key concepts - **Name**: the short identifier you reference in merge tags (e.g. `first_name`). - **Label**: the human-friendly label shown on forms and on the contact view. - **Type**: how the field behaves. Available types include: - **Single-line text** — short free text such as a name or city. - **Multi-line text** — longer text such as a comment or address block. - **Email** — text validated as an email address. - **Number** — numeric input with optional minimum and maximum. - **Date** — date picker. - **Dropdown** — pick one option from a list. - **Checkbox** — tick one or more options. - **Radio** — pick one option from a small set. - **Placeholder**: a hint shown inside the input on forms before the visitor types. - **Default value**: a value pre-filled when the field is empty. - **Required**: must be filled in to submit a form. - **Global vs list-scoped**: global fields are shared across all lists; list-scoped fields exist only on one list. - **Validation**: format rules tied to the type — for example, valid email syntax or a numeric range. ## Common workflows ### Adding a custom field 1. Open the mailing list. 2. Open **Fields** (or **Custom fields**). 3. Choose **New field**. 4. Pick the type, set the name and label. 5. Mark required if needed; add options for dropdown/radio/checkbox. 6. Save. The field appears on the contact, in form builders, and as a merge tag. ### Using a field in an email In the template editor, insert a merge tag for the field where the personalised value should appear. At send time, MailCamp replaces the tag with that contact's value (or a fallback if the field is empty). ### Using a field in a segment When building a segment, choose the field, an operator, and a value. See [Segments](/llms/segments.txt) for which operators are available per type. ## Limits and edge cases - Renaming a field changes the label, not the underlying identifier — so existing merge tags keep working. - Deleting a field removes it from forms, segments, and the contact view; values are not recoverable. - Number and date fields support richer comparisons than text fields, so pick the type with segmentation in mind. - Checkbox fields with multiple selections are filtered against each chosen option in segments. ## Web routes Paths use `:id` as the placeholder for a field's identifier. - `/fields` — list of all custom fields. - `/fields/new` — create a new field. - `/fields/:id/update` — edit a field. - `/fields/manage` — manage and reorder fields. ## Related - [Contacts](/llms/contacts.txt) — where field values live. - [Forms](/llms/forms.txt) — where field values are collected. - [Segments](/llms/segments.txt) — where field values are filtered. - [Templates](/llms/templates.txt) — where field values are inserted via merge tags.