Looker
Set per-user Looker user attribute values from Zeotap data. Looker is Google Cloud’s business intelligence platform. Sync warehouse data to enrich Looker user profiles and personalize dashboards with CDP traits, segment membership, or computed fields.
Prerequisites
- A Looker instance (Looker Cloud or self-hosted)
- A Looker user account with Admin role or API access permissions
- Looker API3 credentials (client ID and client secret)
- A pre-created user attribute in Looker to receive values
Permissions
The API3 credentials must belong to a user with the manage_user_attributes and see_users permissions to read user records and set user attribute values.
Authentication
Looker uses API3 Client Credentials authentication.
- In Looker, navigate to Admin > Users
- Select a user (or create a dedicated API service account)
- Under API3 Keys, click New API3 Key
- Copy the Client ID and Client Secret
- Enter both values in Zeotap when configuring the destination
Zeotap uses these credentials to obtain short-lived access tokens from the Looker /api/4.0/login endpoint. Tokens are automatically refreshed when they expire.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Instance URL | Text | Yes | Your Looker instance URL (e.g. https://mycompany.cloud.looker.com). Must include the protocol (https://). |
| User Attribute ID | Text | Yes | The numeric ID of the Looker user attribute to set values for. |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Upsert | Yes |
| Insert | — |
| Update | — |
| Mirror | — |
The Looker user-attribute endpoint is inherently idempotent (last write wins), which matches upsert semantics.
Audience Sync Modes
Looker does not have a native list or audience membership API, so audience sync modes are not supported.
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
user_id | The Looker user ID for the attribute assignment |
value | The value to set for the user attribute |
Default Destination Fields
user_id, value
How It Works
Zeotap sets per-user attribute values in Looker using:
PATCH /api/4.0/users/{user_id}/attribute_values/{user_attribute_id}Each row in the sync maps to a single API call that sets the attribute value for one user. This is useful for personalizing Looker dashboards and content based on CDP segment membership, user properties, or computed traits.
Authentication Flow
- Zeotap calls
POST /api/4.0/loginwith your client ID and client secret - Looker returns a short-lived access token
- The token is cached and automatically refreshed when it expires
- All API requests include the token as
Authorization: token {access_token}
Batch Processing
- Per-row API calls: Looker has no batch endpoint for user attribute values, so rows are processed one at a time.
- Retry: Failed requests are retried up to 3 times with exponential backoff. Authentication failures trigger an automatic token refresh and one retry.
Rate Limits
Looker enforces rate limits that vary by instance type and configuration:
- Looker Cloud: Typically 60 API calls per minute per user
- Self-hosted: Configured by your Looker administrator
Zeotap handles rate limit responses (HTTP 429) with automatic retry and backoff.
Best Practices
- Use a dedicated API service account rather than a personal user’s API3 keys. This avoids disruption if a user leaves or their permissions change.
- Pre-create user attributes in Looker before configuring the sync. Navigate to Admin > User Attributes to create attributes with the appropriate data type, then copy the numeric ID into Zeotap.
- Monitor API usage in the Looker Admin panel to stay within rate limits, especially when syncing large user bases.
- Use HTTPS for the instance URL. Looker API requires secure connections.
Troubleshooting
Authentication failed
Verify your Client ID and Client Secret are correct. Navigate to Admin > Users in Looker and check the API3 Keys section. Ensure the key has not been revoked.
Permission denied (403)
The API user does not have sufficient permissions. Check that the user has the manage_user_attributes and see_users permissions.
User not found (404)
The user_id value in your data does not match a valid Looker user ID. Verify user IDs by checking Admin > Users in Looker or querying the /api/4.0/users endpoint.
User attribute not found (404)
The configured User Attribute ID does not exist. Navigate to Admin > User Attributes in Looker to find the correct numeric ID.
Instance URL connection error
Ensure the Instance URL is correct and includes the protocol (https://). Verify that your network allows outbound HTTPS connections to the Looker instance. For self-hosted instances, ensure the API port is accessible.
Token expired during sync
Zeotap automatically refreshes expired tokens. If you see persistent token errors, verify that the API3 key has not been revoked and that the Looker instance is reachable.