Perfcopilot

Lattice Goals

Lattice exposes Goals (OKRs) with nested Key Results via their REST API. PerfCopilot maps Goals to Goal rows and Key Results to GoalKeyResult rows.

API behind a login wall. Lattice's full developer portal requires a Lattice admin login. The ingester is built against their published public REST conventions. Field names (owner_id, key_results) and pagination will be verified on first customer connection. Contact support if the initial sync fails with unexpected field names.

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.
  • Key Results — pulled from the key_results or kr_list array on each Goal. Fields: id, name or title, status, target or target_value.

Status mapping:

| Lattice status | PerfCopilot | |---|---| | completed, done, achieved | completed | | at_risk, behind | at_risk | | off_track, missed | off_track | | on_track, draft, archived / anything else | on_track |

draft and archived collapse to on_track since they're not active risk states.

Connecting

  1. Go to /admin?tab=integrations, find the Lattice card.
  2. Get your API key from Lattice → Admin → Integrations → API. It's a Bearer token.
  3. Enter the key in the integration card. The base URL defaults to https://api.latticehq.com/v1.
  4. Map each employee's Lattice user ID in the unmapped-employees list.

What hits a review

Goals and Key Results appear in the [GOALS] block of the review prompt.

Troubleshooting

Zero goals after sync: the owner_id query param name may differ in your Lattice instance's API version. If you see an empty result rather than an error, try checking the raw response in the Lattice API explorer (available to Lattice admins).

Key Results missing: the ingester checks both key_results and kr_list field names. If Lattice uses a different name in a newer API version, KRs won't populate. Check with Lattice support for the current field name.

Hard cap: 200 goals per employee per sync. Goals beyond the cap are not pulled.

Privacy notes

  • Goal descriptions are stored up to 1,000 characters and visible to managers.
  • The API key should be treated as a service credential — it grants read access to goal data across the org. Store it securely and rotate it if a Lattice admin leaves.