# Source: https://docs.datafold.com/integrations/bi-data-apps/looker.md

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

# Looker

## Create a code repositories integration

[Create a code repositories integration](/integrations/code-repositories) that connects Datafold to your Looker repository.

## Create a Looker integration

Navigate to Settings > Integrations > Data Apps and add a Looker integration.

<Frame>
  <img src="https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=bd09718379ccede369a6e1b6738524c4" alt="Add New Integration" data-og-width="2102" width="2102" data-og-height="646" height="646" data-path="images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=280&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=83919832e4b23599314017b45690d2c1 280w, https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=560&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=1414d4d3bb1c055da9b1c52341916473 560w, https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=840&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=b8f0350c0caf989153ac7c824fc516df 840w, https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=1100&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=fd39b2c1819b171dcbab2fd23bee84d3 1100w, https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=1650&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=710aebc070a215d8943c9cf7321b8406 1650w, https://mintcdn.com/datafold/Q7OqZ4fuuETHBSvX/images/data_apps_add_new_integration-8fa569d0d0beb7191934287bdcdda2f1.png?w=2500&fit=max&auto=format&n=Q7OqZ4fuuETHBSvX&q=85&s=3558cfab5dc27eff9323d9e64d4902b7 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=9d4bc08ae0d3c7a49dc97e61d314518f" alt="Looker Integration Form" data-og-width="2368" width="2368" data-og-height="1476" height="1476" data-path="images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=280&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=a773a6f47f081d0274890d3654cb3b60 280w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=560&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=dbdb207bd25b3a6ea8949a8cafdd49ed 560w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=840&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=3558d7d083e00569cf4d1339bda59912 840w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=1100&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=b61a6aedfe005f461ed44a4396b4e399 1100w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=1650&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=baf3d3f5a1fad6c055f11a759b0240b1 1650w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_blank_integration_form-2891846b6665064a633f376d99acbde0.png?w=2500&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=db094298f134e63291ad6a7c481e7ef5 2500w" />
</Frame>

Complete the configuration by specifying the following fields:

| Field Name              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Integration name        | An identifier used in Datafold to identify this Data App configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Project Repository      | Select the same repository as used in your Looker project.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| API Host URL            | The Looker [API Host URL](https://cloud.google.com/looker/docs/admin-panel-platform-api#api%5Fhost%5Furl). It has the following format: https\://\<instance\_name>.cloud.looker.com:\<port>. The port defaults are 19999 (legacy) and 443 (new), see the [Looker Docs](https://cloud.google.com/looker/docs/api-getting-started#looker%5Fapi%5Fpath%5Fand%5Fport) for hints. Examples: Legacy ([https://datafold.cloud.looker.com:19999](https://datafold.cloud.looker.com:19999)), New ([https://datafold.cloud.looker.com:443](https://datafold.cloud.looker.com:443)) |
| Client ID               | Follow [these steps](https://cloud.google.com/looker/docs/api-auth#authentication%5Fwith%5Fan%5Fsdk) to generate Client ID and Client Secret. These are always user specific. We recommend using a group email for continuity. See [Looker User Minimum Access Policy](/integrations/bi-data-apps/looker#looker-user-minimum-access-policy) for the required permissions.                                                                                                                                                                                                |
| Client Secret           | See Client ID.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Data connection mapping | When the correct credentials are entered we will begin to populate data connections in Looker (on the left side) that will need to be mapped to data connections configured in Datafold (on the right side). See image below.                                                                                                                                                                                                                                                                                                                                            |

<Frame>
  <img src="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=981c663e0a1ec781941ea554bd1d7d58" alt="Looker Configuration" data-og-width="1900" width="1900" data-og-height="1956" height="1956" data-path="images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=280&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=52f156d66bdee410a63e58ac889d310d 280w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=560&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=4bc90dafdd128278c14eea268e64a065 560w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=840&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=1b3d4ca6ede404f1a02fcce3892a637e 840w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=1100&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=d6bfcce9c9ff3ae9815339b991c858a8 1100w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=1650&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=f319647cf8af529b02c66a36f7d523a2 1650w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_configuration-0410bbaf211f889bf36bb8f93d378500.png?w=2500&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=5f597a0ac5030cb8710fcb63368ac0ea 2500w" />
</Frame>

When completed, click **Submit**.

It may take some time to sync all the Looker entities to Datafold and for Data Explorer to populate. When completed, your Looker assets will appear in Data Explorer as search results.

<Frame>
  <img src="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=b4ba365cff063876985e52e3fa0b7462" alt="Looker Sync Results" data-og-width="1722" width="1722" data-og-height="976" height="976" data-path="images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=280&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=40d4a67c89d46ddbdef3daf8b84723f9 280w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=560&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=2976d7c058a3cd398dc0d8714a40d37d 560w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=840&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=c5f61aa4fbb3b8c67d60424d16e45181 840w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=1100&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=9a9a0ee2f6c1d5221d7553c86f791c41 1100w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=1650&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=579b68573daf518b8bfb8e6e29d6c48a 1650w, https://mintcdn.com/datafold/BHI8Zy_v4DyXlmzL/images/looker_sync_results-e610d030d6891b22cffbceeae9d9a8d1.png?w=2500&fit=max&auto=format&n=BHI8Zy_v4DyXlmzL&q=85&s=835f1340c118927efac7804f5b6fd455 2500w" />
</Frame>

<Tip>
  **TIP**

  [Tracking Jobs](/integrations/bi-data-apps/tracking-jobs) explains how to find out when your data app integration is ready.
</Tip>

## Looker user: minimum access policy

The user linked to the API credentials needs the predefined Developer role, or you can create a custom role with these permissions:

* `access_data`
* `download_without_limit`
* `explore`
* `login_special_email`
* `manage_spaces`
* `see_drill_overlay`
* `see_lookml`
* `see_lookml_dashboards`
* `see_looks`
* `see_pdts`
* `see_sql`
* `see_user_dashboards`
* `send_to_integration`

## Database/schema connection context

### Database specification

Using the Fully Qualified Names in your Looker view files is not always possible. If a view references a table as`my_schema.my_table`, Datafold might have difficulty finding which database this table actually is in. There are multiple ways to guide Datafold to make a correct choice, as summarized in the table below.

<Note>
  **INFO**

  Priority #1 takes precedence over #2, and so forth.
</Note>

| # | Source, if defined                                                                                                                                                            | Example                     |
| - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| 1 | datafold\_force\_database **User Attribute** in Looker                                                                                                                        | looker\_db                  |
| 2 | **Fully Qualified Names** in your Looker view files                                                                                                                           | my\_db.my\_schema.my\_table |
| 3 | datafold\_default\_database **User Attribute** in Looker                                                                                                                      | another\_looker\_db         |
| 4 | **Database** specified in Looker, at Database connection settings\_(We can only read these if Datafold connects to Looker via an admin user, which is probably suboptimal.)\_ | my\_db                      |
| 5 | **Database** specified in Datafold, at [Database Connection settings](/integrations/databases/)                                                                               | my\_db                      |

### Supported custom Looker user attributes

| User Attribute              | Impact                                                                                                   |
| --------------------------- | -------------------------------------------------------------------------------------------------------- |
| datafold\_force\_database   | Database to use in all cases, even if a fully qualified path in LookML refers to another database.       |
| datafold\_default\_database | Database to use if Looker View does not explictly specify a database.                                    |
| datafold\_default\_schema   | Schema to use if Looker view does not explicitly specify a schema (which equals a dataset for BigQuery). |
| datafold\_default\_host     | *(BigQuery only)* Default project name.                                                                  |

<Note>
  **INFO**

  Make sure attributes are:

  * Explicitly defined for the user in question (not just falling back to a default);
  * Not marked as hidden.
</Note>

## Integration limitations

Datafold lets you connect to Looker and extend our capabilities to your Looker Views, Explores, Looks, and Dashboards. But this is a new feature, so there are some things we don’t support yet:

* **PDT/Derived Tables**:Datafold only works with the tables that come from your data connections, but not with the [tables](https://cloud.google.com/looker/docs/derived-tables#important%5Fconsiderations%5Ffor%5Fimplementing%5Fpersisted%5Ftables) that Looker makes from your SQL queries.
* **Merge Queries**: Datafold supports the Queries and Looks that make up your Dashboards, but [Merge Queries](https://cloud.google.com/looker/docs/merged-results) are not one of them. For some use cases you could achieve the same by joining the underlying views with an explore.
* **Usage metrics and popularity**: Datafold shows you your Looker objects - such as dashboards, looks, and fields - but not how much you use or like them.

We are improving our Looker integration and adding more features soon. We welcome your feedback and suggestions.