> ## Documentation Index
> Fetch the complete documentation index at: https://staging.docs.flowsign.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom fields

> Define the fields senders fill in on every package, and the key your integrations read them back by.

**Custom fields** ("Define the fields senders fill in on every package.") requires a plan with the `customFields` gate (Enterprise); on a lower plan the section shows a locked upsell instead. Managing them also requires the manage custom fields permission, without which the page reads **You don't have access to custom fields**.

<Frame caption="Custom fields, showing the Coming soon notice above an empty table.">
  <img src="https://mintcdn.com/doc-a97e5290/CtLjU_PfJfA-w8X1/images/guides/settings/custom-fields.png?fit=max&auto=format&n=CtLjU_PfJfA-w8X1&q=85&s=3ead2b822a648a2e7f39d103c7917d86" alt="The custom fields settings page with a coming soon notice and an empty table" width="2880" height="1800" data-path="images/guides/settings/custom-fields.png" />
</Frame>

<Note>
  The page is currently marked **Coming soon**: "Custom fields are coming soon. The page is ready, but definitions can't be saved until the service is switched on." Until then **Add custom field** is disabled and the table stays empty.
</Note>

## The table

Each definition is a row with:

* **Label**, with its help text underneath if it has any.
* **Key**, shown as a code chip.
* **Applies to**, reading **All packages** or a count of templates.
* **Required** or **Optional**.

A row's actions menu offers **Edit** and **Archive**; clicking the row opens it for editing.

An empty list shows **No custom fields yet**: "Add a field like an employee ID and every package it applies to will carry that value through to your integrations."

## Adding or editing a definition

**Add custom field** ("Define a field senders fill in, and the key your integrations read it back by.") asks for:

* **Label**, for example `Employee ID`.
* **Key**, for example `employee_id`. Keys are lowercase letters, digits and underscores, start with a letter, and cannot change once saved.
* **Help text**, optional, shown to senders under the field.
* **Required**, a switch: senders must fill it before sending.
* **Applies to**, either **All packages** ("Every sender fills this in, whatever they're sending.") or **Selected templates** ("Only packages started from the templates you choose.").

Editing an existing field ("Change what senders see. The key stays as it is.") offers the same form with the key locked.

## Archiving

**Archive custom field** ("Senders will stop seeing this field.") removes the field from new packages. Archiving is confirmed in a dialog rather than done straight from the table.

## Related

* [API keys](/guides/settings/api-keys)
* [Webhooks](/guides/settings/webhooks)
* [Integrations](/guides/settings/integrations)
* [Release labels](/release-labels)
