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

# Add custom fields to profiles and entities

> Extend member profiles, teams, and jobs with custom fields, control who can see and edit them, and create entirely new data models for your community.

Custom fields let you capture information that Campground does not store by default. You can add fields to member profiles, teams, and job postings — or create entirely new entity types (like "Projects" or "Partnerships") with their own fields. Fields support a range of input types, from simple text to file uploads and star ratings, and you can control exactly who is allowed to view or edit each one.

<Note>
  Creating and managing custom fields requires admin access. Navigate to
  **Settings > Fields** to get started.
</Note>

## Field types

Each field you create has a type that determines how data is entered and displayed.

| Type            | Description                               |
| --------------- | ----------------------------------------- |
| `text`          | Short single-line text input              |
| `long_text`     | Multi-line text area for longer responses |
| `single_select` | Dropdown with one selectable option       |
| `multi_select`  | Dropdown allowing multiple selections     |
| `file`          | File upload (any file type)               |
| `image`         | Image upload                              |
| `url`           | URL input with link formatting            |
| `checkbox`      | True/false toggle                         |
| `date`          | Date picker                               |
| `number`        | Numeric input                             |
| `rating`        | Star rating (numeric, displayed as stars) |

## Creating a custom field

<Steps>
  <Step title="Go to Settings > Fields">
    In your admin panel, open **Settings** and select **Fields**.
  </Step>

  <Step title="Select the entity type">
    Choose where the field should appear: **Profiles**, **Teams**, or **Jobs**. You can also select a custom entity type if you have created one.
  </Step>

  <Step title="Click Add field">
    Click **Add field** to open the field creation form.
  </Step>

  <Step title="Enter a name and choose a type">
    Give the field a clear label that members or admins will see (e.g., "LinkedIn URL" or "T-Shirt Size"). Select the appropriate field type from the list above.
  </Step>

  <Step title="Configure options for select fields">
    If you chose `single_select` or `multi_select`, add the list of options members can choose from (e.g., "Small", "Medium", "Large").
  </Step>

  <Step title="Set field permissions">
    Choose who can **read** the field and who can **edit** it:

    * **Admin only** — only admins can see or change this field
    * **Members** — all signed-in members can read this field
    * **Owner** — the member whose profile it is can also edit their own value

    Use admin-only for internal notes or review data you do not want members to see.
  </Step>

  <Step title="Save and reorder">
    Click **Save**. The field appears on the relevant profiles, teams, or jobs immediately. Drag fields in the list to change the order they appear on the page.
  </Step>
</Steps>

## Field permissions in detail

Each field has two independent permission settings:

* **Readable by** — controls who can see the field value. Options: `admin`, `public` (all signed-in members of your organization), or `owner` (the profile owner).
* **Editable by** — controls who can change the field value. Options: `admin` or `owner`.

For example, an "Internal rating" field might be readable by `admin` and editable by `admin` only. A "Bio" field might be readable by `public` and editable by `owner`, so members can write their own bio and any other signed-in member can read it.

<Note>
  Despite the name, the `public` value does not expose data to the open
  internet. Campground content is only visible to signed-in members of your
  organization.
</Note>

### How restricted fields appear

Field permissions are enforced everywhere a field can be seen or edited — profile pages, contact lists, forms, form responses, jobs, teams, and custom entities.

* **Fields the viewer cannot read** show the field label with "redacted" instead of the value. This preserves layout and signals that data exists but isn't visible to the current user.
* **Fields the viewer can read but not edit** appear as read-only in edit views. The input is locked and cannot be changed.
* On form responses, if a field is bound to both a profile and the form, the profile value is shown; unanswered fields the viewer is allowed to read appear with a placeholder.

Sub-admins only see and edit fields inside the scopes they've been granted. A sub-admin scoped to one program will see restricted-state placeholders for fields outside their scope, even on profiles they can otherwise view.

## Custom entity types

Beyond the built-in types (profiles, teams, and jobs), you can create entirely new data models called **custom entities**. A custom entity is a new category of record in your organization — for example, "Projects", "Partnerships", "Grants", or "Mentors".

Each custom entity type has its own fields, its own list view in the sidebar, and its own permissions. To create one, go to **Settings > Entity Types** and click **Add entity type**. Give it a name, choose an icon, and then add fields to it just as you would for profiles or teams.

<Tip>
  Custom entities are useful when you need to track a type of record that does
  not naturally fit under a member profile or a team — for example, external
  organizations your community interacts with, or sponsored projects that belong
  to the community as a whole rather than to any individual member.
</Tip>
