> ## Documentation Index
> Fetch the complete documentation index at: https://support.configview.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lattice setup

ConfigView reads your Lattice account through Lattice's public API (v1), using an **API key** that a Lattice admin creates.

You will end up with **1 secret** in ConfigView (`LATTICE_API_KEY`), plus `LATTICE_BASE_URL` if your Lattice data is hosted in Europe.

> **Scope of this integration today.** ConfigView uses Lattice as the HR record of who works at the company: everyone's status (active, invited, not yet invited, deactivated), manager, department, job title and start date, who is a Lattice admin, and the employee ID your HR system gave them. It compares that record with Okta and Google Workspace to find leavers whose accounts are still on, starters who have no accounts yet, and people with no manager. ConfigView only reads. It never reads reviews, feedback, goals, updates, custom fields or pay, and never stores birth dates or gender.

***

## Step 1: Open the Lattice page in ConfigView

Open ConfigView in a second browser tab and leave it open:

`https://{companyname}.configview.com/admin/integrations/lattice`

Lattice shows the key once, when you create it, so paste it straight into ConfigView instead of keeping it in a notes file.

***

## Step 2: Create an API key in Lattice

You need to be a **Lattice admin**. A Lattice API key has the same rights as the person who creates it, so a non-admin's key would not see everyone.

1. In Lattice, click **Admin** at the bottom of the left sidebar
2. Go to **Settings → Platform → API keys**
3. Click **Generate API key**
4. Click **Copy**. Lattice shows the key in full only once
5. Paste it into `LATTICE_API_KEY` in ConfigView and click the save icon

**No API keys page?** Some companies have to ask Lattice to switch API access on before the first key can be created. Email `request-api-access@lattice.com` with what it is for ("read-only user directory sync to ConfigView, our IT inventory tool"). After that, admins can create and revoke keys themselves.

**Europe-hosted Lattice.** If your company's Lattice data is hosted in the EU/EMEA region, also save `LATTICE_BASE_URL` as `https://api.emea.latticehq.com`. Leave it empty for US hosting. If you are not sure, Lattice customer care can tell you.

**Who owns the key matters.** The key stops working if the admin who created it leaves Lattice, and sees less if they stop being an admin. Create it as a long-lived admin (or a dedicated admin account if your company uses one). To revoke ConfigView's access, click **Revoke** next to the key on the same page.

***

## Step 3: Connect and verify

1. Back on `https://{companyname}.configview.com/admin/integrations/lattice`, confirm the credential shows as saved
2. Click **Connect**. ConfigView creates its tables and schedules every collector at your default run time. Stop any you don't want under **Collectors**:

| Script | Notes |
| - | - |
| **People** | Everyone in Lattice - active, invited, not yet invited and deactivated: name, work email, job title, status, manager, department, start date, job level and type, whether they are a Lattice admin, and the employee ID their HR system gave them. Birth dates, gender, reviews, feedback, goals and pay are never collected. |
| **Departments** | Lattice's departments, with how many active people each one has. |

3. Click **Verify now**. The health check confirms the secret, checks whose key it is and that they are a Lattice admin, then reads one page of people and departments.

If a check fails:

* **401.** The key is wrong or was revoked, the admin who created it has left Lattice, or your company is hosted in Europe and `LATTICE_BASE_URL` is not set. Generate a new key, or set the EMEA host.
* **"NOT a Lattice admin".** The key belongs to someone without admin rights. Have an admin generate a new one.
* **429.** Lattice's limit of 240 requests a minute is spent for now, usually by another integration. The next run will be fine.

***

## Data Tables

Once the scripts run, these tables are created in your database. Each includes a `run_at` column and keeps only the newest run.

| Table | Source | Key Columns |
| - | - | - |
| `lattice_users` | `GET /v1/users` (once per status), `GET /v1/departments` | user\_id, email, name, preferred\_name, title, status, is\_admin, manager\_id, manager\_email, manager\_name, department\_id, department\_name, start\_date, timezone, job\_function, job\_level, job\_type, external\_user\_id, created\_at, updated\_at |
| `lattice_departments` | `GET /v1/departments`, `GET /v1/users` | department\_id, name, description, active\_user\_count, created\_at |

**`status`** is Lattice's lifecycle status: `ACTIVE`, `INVITED` (sent an invitation, not yet signed in), `CREATED` (added but not invited yet) or `DEACTIVATED` (left, or removed by an admin).

**`external_user_id`** is the person's ID in the HR system that feeds Lattice (BambooHR, Rippling, Workday and others). People without one were usually added to Lattice by hand. Lattice's API does not say which HR system it is connected to.

**`manager_email`** and **`manager_name`** come from the manager's own Lattice record in the same run, so a manager who is not in Lattice leaves them empty while `manager_id` stays filled.

***

## Things worth knowing

**Lattice does not report a leaving date.** When someone is deactivated, the API shows `status = DEACTIVATED` and moves `updated_at`, but gives no termination date. ConfigView's leaver checks use `updated_at` as the closest thing.

**Deactivated people are collected on purpose.** Lattice's API returns only active people unless asked, so ConfigView asks once per status. That is what lets it spot a leaver whose Okta or Google account is still on.

**The API is small and changes.** Lattice describes its public API as still being updated, with no audit log, no list of admins' permissions beyond the admin flag, and no list of connected integrations (HR system, Slack). ConfigView collects what is there.

## What isn't collected

* Reviews, review cycles, feedback, goals, updates, one-on-ones and tasks
* Custom attributes (they often hold pay, performance or personal fields)
* Compensation of any kind
* Birth dates and gender, which Lattice includes in its user records; ConfigView drops them before storing anything


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.