## Custom Attributes

Custom attributes let you capture additional metadata on ION records beyond the default fields. They are available for the following entity types:

| Entity | Where in Settings |
| --- | --- |
| Procedures | **Settings > Production > Procedures** |
| Standard steps | **Settings > Production > Standard Steps** |
| Runs | **Settings > Production > Runs** |
| Issues | **Settings > Quality > Issues** |
| Parts | **Settings > Supply Chain > Parts** |
| Purchases | **Settings > Supply Chain > Purchases** |
| Receipts | **Settings > Supply Chain > Receipts** |
| Suppliers | **Settings > Supply Chain > Suppliers** |
| Part kits | **Settings > Supply Chain > Part Kits** |
| Locations | **Settings > Supply Chain > Locations** |
| Parts Inventory | **Settings > Supply Chain > Parts Inventory** |
| Plans | **Settings > Supply Chain > Plans** |
| Further Actions | **Settings > Quality > Further Actions** |

The **Purchases** page defines two separate attribute sets: **Purchase Order Attributes** apply to the order, and **Purchase Order Line Attributes** apply to each line on the order.

## Add a Custom Attribute

To add a custom attribute:

1. Go to the Settings page for the entity you want to extend (see table above).
2. In the **Attributes** section, enter a **Name** for the attribute.
3. Select a **Type** from the dropdown.
4. Click **Add**. The attribute is saved immediately.

### Attribute Types

The **Type** dropdown lists these options. After you save the attribute, ION shows the type as a badge, which can use a different label than the dropdown option.

| Dropdown option | Badge label | Description |
| --- | --- | --- |
| **String** | String | Free-text input. |
| **Number** | Number | Numeric value. |
| **Boolean** | Boolean | On or off toggle. |
| **Datetime** | Date & Time | Date and time picker. |
| **FileAttachment** | File | File attachment. |
| **Select** | Select | Single-choice dropdown. You define the options after creation. |
| **Multiselect** | Multi-Select | Multiple-choice dropdown. You define the options after creation. |
| **ION: Parts** | ION: Parts | Reference to a part record. |
| **ION: Users** | ION: Users | Reference to a user. |
| **Rich Text** | Rich Text | Formatted text. Available only on entity types that support rich text. |

## Add or Remove Options for Select and Multi-Select Attributes

Select and multi-select attributes require you to define their options separately after creation.

1. In the **Attributes** section, find the attribute and click the expand arrow next to it.
2. To add an option, type the option name in the input field and press **Enter** or click **Add**.
3. To remove an option, click the **X** next to the option you want to remove.

You can’t remove an option that’s currently applied to a record.

## Edit a Custom Attribute

The name and type of a custom attribute can’t be changed after creation. To rename an attribute or change its type, delete it and create a new one. For **Select** and **Multi-Select** attributes, you can add and remove options at any time.

## Delete a Custom Attribute

Deleting a custom attribute can’t be undone. The attribute stops appearing on new and existing records.

To delete a custom attribute:

1. In the **Attributes** section, find the attribute you want to delete.
2. Click **X** on the attribute row.
3. In the confirmation dialog, click **Delete**.

## How Attribute Values Copy Between Records

When you duplicate a record, ION carries its custom attribute values to the new record in these cases:

- Splitting an inventory line copies the parent’s attribute values to the new line.
- Copying a purchase order copies attribute values on both the order and its lines.
- Creating a new part revision copies the source revision’s attribute values.

Creating a brand-new part does not copy attribute values, since there is no source record to copy from.
