> For the complete documentation index, see [llms.txt](https://docs.harmony.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.harmony.io/integrations/saas-applications/looker.md).

# Looker

The Looker integration connects your Looker instance directly to Harmony, bringing user, role, login, and usage data into the same place as your other SaaS applications. Once configured, Harmony automatically fetches key information from Looker so your team can monitor adoption, review access, and make informed decisions about your Looker subscription - without switching between tools.

### What Harmony Collects from Looker

After you connect Looker, Harmony surfaces the following data from your instance:

* **Users** - name, email, and account state. Disabled Looker users are still collected and appear as inactive in Harmony. Looker service accounts are excluded, so Harmony's user count may be lower than the total shown in the Looker Admin panel
* **Roles** - the roles each user holds, using your instance's own Looker role names, so you can review Looker access alongside your other applications
* **Login activity** - user login events from Looker's System Activity data, so you can identify active users, spot drop-offs, and understand overall adoption
* **Usage** - per-user daily query volume (how many queries each person ran), also from System Activity, giving a stronger adoption signal than logins alone

This data appears alongside your other connected applications in Harmony, making it straightforward to compare Looker adoption against the rest of your SaaS portfolio.

{% hint style="info" %}
**Activity history limit:** Looker's System Activity data covers the past 90 days only, and the underlying event table is pruned to roughly one million rows. Login and usage history older than 90 days cannot be backfilled. Retaining more than 90 days requires Looker's separate Elite System Activity offering.
{% endhint %}

### Prerequisites

Before setting up the Looker integration, make sure you have the following:

* A Looker user account that can view complete user details and roles across your instance (admin-level access)
* The **`see_system_activity`** permission on that user - Looker administrators hold it by default
* Permission to create and manage API credentials in Looker
* Access to the Harmony Integrations settings in your organization

{% hint style="warning" %}
Login activity and usage data are both read from Looker's System Activity model, which requires `see_system_activity`. Without that permission, your Looker users and roles still sync, but no login events and no query-usage data will appear.
{% endhint %}

### Connecting Looker to Harmony

#### Step 1: Create Looker API credentials

1. Sign in to Looker as an administrator.
2. **Looker (original):** go to **Admin** > **Users**, select the user Harmony should connect as, and create new API credentials for that user.
3. **Looker (Google Cloud core):** first enable management of API credentials on the **Admin** > **Users** page, then use that user's **Account** page to create and manage the API keys.
4. Copy the generated **Client ID** and **Client Secret**.

{% hint style="info" %}
Looker API calls execute *as* the user the credentials belong to and return only the data that user is allowed to see. Looker recommends creating a dedicated, minimal-privilege user for API activity rather than reusing a person's admin account - as long as that user can view complete user details and roles, and holds `see_system_activity`.
{% endhint %}

#### Step 2: Note your instance URL

Harmony connects to your own Looker instance, so you need its URL - for example `https://mycompany.cloud.looker.com`. There is no shared Looker API host.

#### Step 3: Connect in Harmony

1. Log in to your Harmony dashboard.
2. Navigate to **Settings** > **Integrations**.
3. Find **Looker** under **SaaS Applications** and click **Connect**.
4. Fill in the three fields: **Instance URL**, **Client ID**, and **Client Secret**.
5. Click **Connect** to complete the connection.

Once connected, Harmony begins fetching data from your Looker instance. The first sync pulls up to 90 days of login and usage history, and may take a short time to appear depending on the size of your Looker instance. After that, Harmony refreshes your Looker user inventory every 6 hours, checks login activity every hour, and collects query usage once a day.

### Viewing Looker Data in Harmony

After the integration is active, you can find your Looker data in the Harmony dashboard under your connected SaaS applications. From there you can:

* Review the Looker roles each user holds as part of an access review
* Examine login trend charts to understand how adoption has changed over time
* Compare per-user query volume to spot users who hold Looker access but rarely run queries

Use this information alongside data from your other integrated applications to identify underutilized licenses, tighten access, or build a case for scaling up or down your Looker subscription.

### Disconnecting Looker

To remove the Looker integration:

1. In Harmony, navigate to **Settings** > **Integrations**.
2. Find **Looker** under **SaaS Applications** and click the integration card.
3. Click **Disconnect** and confirm the action.

Harmony will stop fetching data from Looker. Any historical data already collected will remain available in Harmony until it is manually cleared.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.harmony.io/integrations/saas-applications/looker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
