> ## 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 field changes

**Custom field changes** (`custom_field.changed`) fires when the value of one of your [custom fields](/custom-fields) changes on a store. It turns your own CRM data into an event: set an onboarding stage, and a flow reacts to it.

## When it fires

On **every write path** (a value edited by hand on a store, pushed from your backend through the [custom field values API](/custom-fields-api), or written by a [Populate custom field](/populate-custom-field) action), but **only when the stored value actually changes**. Re-writing the same value is not a change, and fires nothing.

## Watching one field or any

The trigger takes an option:

* **A specific field**: the flow only runs when that definition changes.
* **Any custom field**: the flow runs whenever any of the app's fields changes on a store.

A flow runs **once per changed field**. Pushing five fields in one API call fires each watching automation once per field that really changed, not once for the batch.

## Loops, and the two guards

Because a *Populate custom field* action is itself a write, this trigger can start a flow that writes a field that starts another flow. Meridian bounds that in two places:

* **An automation never re-runs on the change it caused.** The flow that wrote the field is skipped for that change, which kills the self-feeding loop, the common case and the one you'll hit by accident.
* **Automation-to-automation chains stop after 3 hops.** A ring where flow A writes field 1, flow B triggers on field 1 and writes field 2, and A triggers on field 2 is cut off at the cap.

Writes by a person or by your backend always start a fresh chain, so the cap only ever truncates automation-caused chains.

## What it carries

The store's [variables](/automation-variables), including every custom field as `{{custom_field_<handle>}}`, so an email can quote the value that just changed, and a [variable condition](/condition-variable) can branch on it.

## Building on it

* Watch an "onboarding stage" field and send the email for each stage as your backend advances it.
* Watch an "account owner" field to notify the person now responsible.
* Watch **any** field and branch inside the flow, when several fields should lead to the same follow-up.


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