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

# Custom Attributes

> Set up custom attributes to capture extra information on child profiles during your nursery setup.

Custom attributes are extra fields you define yourself to record information about children that isn't covered by Pigeonhole's standard fields. Once set up, they appear on every child's profile and can be used to filter your children list. This page covers setting your attributes up during onboarding. For how staff and admins then fill them in and filter by them, see [Creating and Using Custom Attributes](/docs/managers/custom-attributes).

<Info>
  Open in app: [Settings → Custom Attributes](/docs/app/admin/settings/attributes).
</Info>

## What Custom Attributes Are For

Custom attributes let you tailor Pigeonhole to your setting. Common examples include dietary requirements, permissions granted by parents, learning goals, medical notes, or transport arrangements.

Attributes are organised into **groups**. A group is a heading that keeps related attributes together on the child profile and register — for example, a "Permissions" group containing several yes/no permission attributes.

<Frame>
  <img src="https://mintcdn.com/pigeonholeearlyyearsltd/Pv1uVgVA_SbE8iTF/images/custom-attributes-settings.png?fit=max&auto=format&n=Pv1uVgVA_SbE8iTF&q=85&s=5bd04ff65e7888d001e496ea88574ac1" alt="The Custom Attributes settings page showing an attribute group with several attributes inside it" width="1440" height="900" data-path="images/custom-attributes-settings.png" />
</Frame>

## Field Types

Each attribute has a type that controls how staff enter its value:

* **Free Text** - Any text, best for open-ended notes like special instructions.
* **Yes/No** - A simple on/off value, best for permissions or flags.
* **List of Values** - A dropdown of options you define, best for consistent choices like dietary requirements (e.g. Vegetarian, Vegan, Gluten-free).

## Step 1: Add a Group

1. On the **Custom Attributes** page, click **Add Group**.
2. Enter a name for the group in the group name field (e.g. "Permissions").

If you have no groups yet, click **Add Group** from the empty state to create your first one.

## Step 2: Add Attributes to the Group

1. Inside the group, click **Add Attribute**.
2. Enter a descriptive **name** for the attribute (e.g. "Dietary Requirements").
3. Choose the **type**: **Free Text**, **Yes/No**, or **List of Values**.
4. If you chose **List of Values**, add each option in the **List Items** section. Use the **+** button to add more options; you need at least two.
5. Set the toggles for the attribute:
   * **Show On Register** - Displays this attribute when staff open a child from the register.
   * **Filterable** - Lets you filter the children list by this attribute. Available for **Yes/No** and **List of Values** types only.

Use the up and down arrows next to an attribute to change the order it appears in.

<Frame>
  <img src="https://mintcdn.com/pigeonholeearlyyearsltd/Pv1uVgVA_SbE8iTF/images/custom-attributes-add.png?fit=max&auto=format&n=Pv1uVgVA_SbE8iTF&q=85&s=1902e1b638505849d10094b783f9372d" alt="Adding an attribute to a group, showing the name field, type dropdown, and the Show On Register and Filterable toggles" width="1440" height="900" data-path="images/custom-attributes-add.png" />
</Frame>

## Step 3: Save

Click **Save Attributes** to store your changes. Your attributes are now live.

<Warning>
  Deleting an attribute removes it from every child who has it set, and this cannot be undone. You are asked to confirm before an attribute is deleted.
</Warning>

## What Happens Next

* Your attributes appear on every child's profile, where admins can fill in values from the child edit page.
* Attributes marked **Filterable** appear as filters on the children list view.
* Attributes marked **Show On Register** appear when staff open a child from the register.

<Info>
  For a full guide to entering values on children and filtering by them, see [Creating and Using Custom Attributes](/docs/managers/custom-attributes).
</Info>
