← All playbooks · Raw API

people

# People — Headwater Science

Playbook for **Person** entries — leadership, team profiles, and article authors.

## Routing

| Concept | Value |
|---------|-------|
| People index | `/people/` |
| Profile URL | `/people/{slug}/` |
| People base | `/people` |

`enablePerson` and `enablePeopleIndex` are on. Read `cms-edit://customer/routing`.

## When to use

- Create or update a **person** entry
- Link `authors` on news or publication articles
- Edit leadership on `/about/` (**Leadership** collection)
- Configure `/people/` index (`customType` slug `people`)

Person profiles are **Person entries**, not marketing page entries.

## Required fields

| Field | Notes |
|-------|-------|
| `name` | Display name |
| `slug` | URL segment — lowercase, hyphenated |
| `jobTitle` | Required in CMS |

## Recommended fields

| Field | Notes |
|-------|-------|
| `bio` | Rich text — profile page body |
| `media` | Portrait — profile hero and leadership cards |
| `indexed` | `false` for author-only stubs |
| `hidden` | Must be `false` for public profiles |

## `/people/` index

Team index is driven by **`customType` slug `people`** — `indexPageTopContent` typically includes a **Leadership** grid collection. Person entries alone do not populate the index without that wiring.

Setup/runbook: `apps/headwater-website/docs/cms-pedestal-people-audit.md`, script `pnpm cms:ensure-people-setup`.

## Leadership on About (`/about/`)

```bash
cms-edit open /about
cms-edit snapshot
cms-edit open <personEntryId> --id
cms-edit set @root name "Full Name"
cms-edit set @root jobTitle "Title"
cms-edit diff && cms-edit save
```

## Linking authors to articles

```bash
cms-edit open --article-slug <slug>
cms-edit set @root authors <personId1>,<personId2> --links
cms-edit diff && cms-edit save
```

## Batch import

`task-authors-import` / `create person-from-json --dry-run`

## Reference people

| Slug | Notes |
|------|-------|
| `/people/michael-fried/` | Leadership |
| `/people/kathleen-hurwitz/` | Leadership (check duplicate slug if publish fails) |

## Out of scope

- Page-based clinician profiles — Headwater uses Person entries only

## Publish handoff

`save` creates drafts only — publish in Contentful UI when ready.