> For the complete documentation index, see [llms.txt](https://flapjax.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flapjax.gitbook.io/docs/your-data/people/attributes.md).

# People Attributes

### Standard and custom attributes

Every person in Flapjax arrives with built-in fields: **first name**, **last name**, **email**, **mobile number**, **date of birth** and **language**. They are always there.

Custom attributes hold the data specific to your business. Think "Company", "Plan Type", "Loyalty Tier" or "Last Purchase Date".

***

### Viewing Attributes

The attributes page lists every custom attribute you have. Each row shows:

* **Name**, the display name of the attribute
* **Required**, whether the field is mandatory
* **Data Type**, the kind of data it holds, such as text, number or date

**Drag and drop** rows to reorder them. Your browser remembers that order on the device you are using, not on your account. Teammates never see it, another browser or computer never picks it up, and clearing your browser storage resets it. The search bar finds attributes by name.

The page carries a **JSON Payload** button too. It shows the full API payload structure for creating or updating a person, with every custom attribute included.

***

### Creating an Attribute

Click **New attribute** in the top-right corner.

#### Basic Fields

* **Data type**, the kind of data the attribute holds. See Data Types below. Locked after creation.
* **Name**, a human-readable label.
* **Description**, an optional explanation of the attribute's purpose, up to 500 characters.
* **Key**, a unique identifier generated from the name. Lowercase letters, numbers and underscores, 3 to 50 characters. Locked after creation.

#### Options

* **Is Required** makes the field mandatory on every person record. Not available for relationship types.
* **Is Unique** stops two people sharing the same value. Not available for relationship types.
* **Default Value** assigns a value to new records on its own. Available on fields that are neither unique nor a relationship type.

#### Data Types

| Type                  | Description                                        |
| --------------------- | -------------------------------------------------- |
| **Text**              | Free-form text                                     |
| **Integer**           | Whole numbers                                      |
| **Decimal**           | Numbers with decimal places                        |
| **Boolean**           | True or false                                      |
| **Date**              | A calendar date                                    |
| **DateTime**          | A date with a specific time                        |
| **Select**            | Single choice from a list of options you define    |
| **Multi-select**      | Multiple choices from a list of options you define |
| **Country**           | A country, from a standard list                    |
| **Currency**          | A currency code                                    |
| **Email**             | An email address                                   |
| **Mobile Number**     | A phone number                                     |
| **Time of Day**       | A time value                                       |
| **IP Address**        | An IP address                                      |
| **Stack**             | A link to a record in one of your stacks           |
| **Object**            | A JSON object                                      |
| **Array of Objects**  | A list of JSON objects                             |
| **Array of Strings**  | A list of text values                              |
| **Array of Integers** | A list of whole numbers                            |
| **Labels**            | A reference to labels                              |

Pick **Select** or **Multi-select** and Flapjax asks you to define the available options. Pick **Stack** and it asks which stack to link to.

Click **Save** to create the attribute. Turn on **Create more** in the footer to keep the form open after saving and add several attributes in a row.

***

### Editing an Attribute

Click an attribute in the list to open its form. You can update the **name**, the **description**, the **default value** and the **required** flag. Turning required on does not go back and validate people who already have no value. The data type, key and unique settings stay locked after creation.

***

### Deleting an Attribute

Open the actions menu next to an attribute and select **Delete**. Flapjax asks you to confirm. Deleting removes the attribute and its data from every person record, permanently.

**Automations that write to the attribute get paused.** Delete an attribute and Flapjax pauses any active or scheduled automation whose **Update Person** action references it. That stops the automation writing to a field that no longer exists. Paused automations show a status naming the missing attribute. Review those actions, update them, then re-activate. The check covers both sequences and workflows.

{% hint style="info" %}
**Tip:** API calls and automation configurations reference this field by its key. Plan your keys carefully, since you cannot change them later.
{% endhint %}
