# Custom fields on contacts

**Custom fields** let you keep extra data on every contact: an industry, a contract value, a website, a preferred colour. You define the fields once under **Contacts** → **Fields**, and every contact gets them.

Custom fields are internal. They are not part of the public storefront API and they do not appear on quotes, invoices or other PDFs. The mobile app shows them read-only.

## Define a field

1. Open **Contacts** → **Fields**.
2. Click **New field** (or the edit button on an existing row).
3. Fill in the dialog:

   | Field | Description |
   | --- | --- |
   | Label | The name people see on the contact page and in forms. |
   | Key | Used by the API and imports: lowercase letters, digits and underscores, starting with a letter. It cannot be changed once the field is saved. |
   | Kind | What the field stores. It cannot be changed once the field is saved. |
   | Required | Every contact must have a value. See [Required fields](#required-fields). |
   | Group | Fields with the same group are shown together in one card. Leave empty to show the field under **Details**. |
   | Options | Only for the **Select** kind. One option per line. |

4. Click **Save**.

The list shows each field with its kind, a **required** badge where it applies, and how many contacts have a value. Use the move up and move down buttons (or drag the handle) to reorder fields; the order is used on the contact page and in the forms. You can define up to 40 fields.

### Kinds

| Kind | Stores |
| --- | --- |
| Text | One line of text. |
| Long text | Several lines of text. |
| Number | A number. |
| Money | An amount, such as `12.50`. |
| Yes/no | On or off. |
| Date | A calendar date. |
| Date and time | A date with a time. |
| Select | One option from the list you enter under **Options**. |
| Email | An email address. |
| Phone | A phone number. |
| Link | A web address, with optional **Link text (optional)**. |
| Tags | A list of tags. |
| Color | A colour such as `#1A2B3C`. |

### Delete a field

Click the delete button on the field's row. The confirmation, **Delete this field?**, tells you how many contacts have a value for it. Deleting a field removes its values from every contact too, and this cannot be undone.

## Fill in values

On a contact's page, custom fields appear in cards, one per group (fields without a group are under **Details**). Click **Edit** on a card to change its values, then **Save**. A card with no values shows "Nothing filled in yet." and a **Manage fields** link.

When you create a contact, the form offers every custom field.

### Required fields

- When you create a contact, every required field must be filled in.
- A required value cannot be cleared on an existing contact.
- A yes/no field you did not touch counts as **No**, so a required yes/no field is always satisfied.

## Filter the contact list

On the **Contacts** list, click **Filter by field**, choose a **Field**, enter a **Value** and click **Apply filter**. Active filters show as buttons in the list toolbar, next to **Filter by field**; click one to drop it, or click **Reset** to clear every filter. Applying or removing a filter takes you back to the first page. Text-like kinds (Text, Long text, Email, Phone, Link) match contacts whose value contains what you typed. Select, Number, Money, Yes/no, Date, Date and time and Color match exactly, and Tags matches contacts that have that tag.

## Privacy

A GDPR data export of a contact includes its custom fields, and anonymizing a contact clears them. See [Managing contacts](/docs/customers/index).
