PerfCopilot

Culture Amp Goals

Culture Amp's performance module exposes flat goals — no native Key Result concept. PerfCopilot syncs goals only; no KR rows are created. Auth is a Bearer API key from your Culture Amp account.

Partner-gated API. Culture Amp's full REST API schema is partner-gated. The ingester is built against their documented REST conventions; the exact endpoint path and field names will be verified on first customer connection. If you encounter 404s or unexpected field names, contact PerfCopilot support.

What we pull

  • Goals — fetched from GET /goals?owner_id=<user_id>. Fields: name or title, description (capped at 1,000 characters), status or state, start_date/due_date or end_date, created_at.

Status mapping:

| Culture Amp status | PerfCopilot | |---|---| | completed, done, achieved | completed | | at_risk, behind | at_risk | | off_track, abandoned, missed | off_track | | on_track, not_started / anything else | on_track |

abandoned collapses to off_track — a goal that was dropped is effectively a miss.

Connecting

  1. Go to /admin?tab=integrations, find the Culture Amp card.
  2. Enter your Culture Amp API key (from Culture Amp → Account → API access).
  3. Optionally set a base URL if your org is on a regional endpoint (defaults to https://api.cultureamp.com/v1).
  4. Map each employee's Culture Amp user ID in the unmapped-employees list.

What hits a review

Goals appear in the [GOALS] block of the review prompt listing each goal's name and status. No KRs.

Troubleshooting

Zero goals after sync: Culture Amp's goals endpoint requires owner_id as a query parameter. If the user ID is wrong or the API key doesn't have access to that account's goals, the response returns an empty list (not an error).

401 / 403 errors: the API key must have "Goals" read access enabled in Culture Amp. Check under Account → API access → Permissions.

Goals show status on_track when they shouldn't: Culture Amp's not_started status maps to on_track in PerfCopilot since "not started" isn't a risk signal in itself. If you want to distinguish not-started goals, add a note in the goal's description — it will appear in the [GOALS] block.

Privacy notes

  • Goal descriptions are stored up to 1,000 characters and visible to managers.
  • The API key grants read access scoped to what Culture Amp allows for that key. PerfCopilot reads goal data only.