← 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.