15Five Goals
15Five calls their goal objects Objectives and nests Key Results inside each one. PerfCopilot maps these directly: Objectives become Goal rows, inline Key Results become GoalKeyResult rows.
What we pull
- Objectives — fetched from
GET /objectives/?owner=<user_id>. The endpoint uses Django REST Framework pagination (resultsarray). Fields:name,description(capped at 1,000 characters),status,start_date/end_date,created_at. - Key Results — pulled from the nested
key_resultsarray on each Objective. Fields:id,name,status,target_valueortarget.
Status mapping:
| 15Five status | PerfCopilot |
|---|---|
| achieved, completed, done | completed |
| behind, at_risk | at_risk |
| needs_attention, off_track, missed | off_track |
| on_track / anything else | on_track |
needs_attention maps to off_track — in 15Five's UX this status requires the most intervention, so it's treated as the highest-risk state.
Connecting
- Go to
/admin?tab=integrations, find the 15Five card. - Generate a Personal API key in 15Five: Settings → API → Personal API Keys.
- Enter the key in the integration card. The base URL defaults to
https://my.15five.com/api/public. - Map each employee's 15Five user ID in the unmapped-employees list.
What hits a review
Goals and Key Results appear in the [GOALS] block of the review prompt, with KRs nested under their parent Objective.
Troubleshooting
Zero objectives after sync: confirm the user ID matches the owner field in 15Five. The ID is numeric and can be found in the 15Five admin user list.
Key Results missing: KRs are pulled from the key_results array embedded in each Objective response. If 15Five's API changes the field name to something other than key_results, the walk will silently find nothing. Contact support if KRs exist in 15Five but don't appear in PerfCopilot.
401 errors: Personal API keys in 15Five may have expiration dates set by your admin. Check the key's expiry in 15Five → Settings → API → Personal API Keys.
Privacy notes
- Objective descriptions are stored up to 1,000 characters and visible to managers.
- Key Result target values are stored as strings and visible alongside KR status in the Goals tab.