> ## Documentation Index
> Fetch the complete documentation index at: https://help.the-meridian.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom fields

A custom field is your own attribute on every store in your CRM: a customer score, an onboarding stage, an account owner, a contract renewal date. Meridian tracks what Shopify reports; custom fields are where you keep what only you know.

## Defining a field

Create a field from **Stores → Custom fields**. Each definition has:

* a **name**, which is what you see in the dashboard,
* a **handle** (lowercase letters, numbers and underscores), the key your backend pushes values against,
* a **type**, which fixes the shape of the values it holds.

| Type | Holds |
| - | - |
| **Text** | Any string |
| **Number** | A numeric value |
| **Checkbox** | True or false |
| **Select** | One of the options you define (at least one is required) |
| **Date** | A calendar date |
| **JSON** | A structured value |

The handle and the type are **immutable once the field exists**: values are stored per type, and your backend is already pushing against the handle. The name and, for a select, its options can be edited later. Deleting a field removes it and its value on every store.

An app can define up to **20 custom fields**. The list shows how many are in use and how many stores have a value for each field. Search the list by **name** or **handle**. [Global search](/global-search) jumps to a field from anywhere in the organization.

## Setting values

Three ways, all writing to the same value:

* **By hand**, on a store's [profile](/profile-1). Emptying a field removes its value, and a blank text value is never stored, so "unset" stays distinguishable from "empty".
* **From your backend**, with the custom field values API. The create screen shows the exact call for the field you're defining. See [Custom field values from your code](/custom-fields-api).
* **From an automation**, with the *Populate custom field* action, so a value can be set or cleared when something happens. See [Populate custom field](/populate-custom-field).

Your app can read the values back with the shop token, so a field you maintain in Meridian can drive behaviour inside your app.

## What they unlock

* **[Segments](/segments)** can filter on a custom field, with the operators that field's type allows, so "onboarding stage is not complete" becomes a targetable audience.
* **[Automations](/automations)** can start from a *Custom field changes* trigger, on any field or one specific field.
* **[Reports](/report-builder)** treat custom fields as reportable attributes of a store.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.