# Glean Overview Insights Fetches overview of usage insights data from Glean AI Insights Dashboards. This input collects general search and content engagement metrics and syncs them incrementally based on the last updated timestamp returned by the API. **Sync Type: Incremental** ## Requirements Before configuring this input, you need: - A Glean instance with Insights Dashboard access enabled - A Glean Global Token with the **INSIGHTS** scope, created in the Glean admin console ### Creating the API Token 1. Log in to your Glean instance 2. Navigate to the **Admin Console** > **Platform** > [**Client API Token Management**](https://app.glean.com/admin/platform/tokenManagement?tab=client) 3. Click **Add New Token** 4. Configure the token: - **Type**: Global - **Scope**: Select **INSIGHTS** - **Name**: Give it a descriptive name (e.g., `monad-insights`) - Optionally set an expiration date 5. Click **Save** and immediately copy the token secret — it is displayed only once > **Note**: Token scopes cannot be changed after creation. Ensure you select **INSIGHTS** before saving. ### Finding Your Instance Name Your Glean instance name is the subdomain prefix of your Glean URL. For example, if your backend URL is `mycompany-be.glean.com`, your instance name is `mycompany`. ## Details Monad uses the Glean Insights API (`POST /rest/api/v1/insights`) to fetch aggregate overview usage data. The input sends a request with the `overviewRequest` key and receives aggregated metrics in the `overviewResponse`. ### How State Management Works - The input maintains a timestamp cursor based on the `lastUpdatedTs` field returned by the API - On each sync run, the cursor's start time is sent as the `dayRange.start` of the request - The `dayRange.end` is always set to the current time - After a record is emitted, the cursor advances to the `lastUpdatedTs` of the returned response - On the first sync (or when no backfill start time is configured), the full available history is requested ### API Behavior - **Endpoint**: `POST https://{instance}-be.glean.com/rest/api/v1/insights` - **Authentication**: `Authorization: Bearer {api_token}` - **Request body**: Contains `overviewRequest` key with a `dayRange` object specifying the time window - **Response**: The `overviewResponse` key maps to an object containing aggregated metrics and a `lastUpdatedTs` Unix timestamp (seconds since epoch UTC) - The input returns a single aggregated record (not a list of events) representing the overview metrics for the requested time window ### Limitations - This input fetches aggregated insight data, not raw event logs — each sync produces one record - Glean does not publish specific rate limits for the Insights API; Monad uses default HTTP retry and rate limit behavior - Data availability depends on your Glean subscription and instance configuration - Per-user insights can be suppressed by setting `disable_per_user_insight` to `true` ## Configuration ### Settings | Setting | Type | Required | Description | |---------|------|----------|-------------| | Instance | string | Yes | Your Glean instance name (e.g., `mycompany` for `mycompany-be.glean.com`) | | Backfill Start Time | string | No | Date to start fetching data from. If not specified, a full sync is fetched on the first sync. All syncs thereafter will be incremental. | | Disable per user Insight | boolean | No | If true, suppresses the generation of per-user insights in the response. Default is false. | | Use Synthetic Data | boolean | No | Generate synthetic demo data instead of connecting to the real data source. Useful for testing pipelines without credentials. | ### Secrets | Secret | Type | Required | Description | |--------|------|----------|-------------| | API Token | string | Yes | Glean Global Token with the INSIGHTS scope. Created in the Glean admin console under Platform > Client API Token Management. | ## Troubleshooting ### Authentication Errors If you receive `401 Unauthorized` or similar authentication failures: 1. Verify the API token is correct and has not expired 2. Confirm the token was created with the **INSIGHTS** scope 3. Ensure the token value was copied without leading or trailing whitespace 4. Check that the token type is **Global** (not a user-scoped token) ### Instance Name Errors If you receive connection errors: 1. Double-check your instance name — it should be the subdomain prefix only (e.g., `mycompany`, not `mycompany-be.glean.com`) 2. Verify your Glean instance is accessible and the backend URL resolves ## Related Articles - [Glean Insights API Overview](https://developers.glean.com/api/client-api/insights/overview) - [Glean Client API Authentication](https://developers.glean.com/api-info/client/authentication/overview) - [Glean-Issued Tokens and Scopes](https://developers.glean.com/api-info/client/authentication/glean-issued) ## Sample Record ```json { "monthlyActiveUsers": 8, "weeklyActiveUsers": 6, "departments": [ "Engineering", "Sales", "HR" ], "employeeCount": 87, "totalSignups": 42, "searchSummary": { "monthlyActiveUsers": 7, "weeklyActiveUsers": 5, "numSearches": 234, "numSearchUsers": 48 }, "chatSummary": { "monthlyActiveUsers": 6, "weeklyActiveUsers": 4, "numChats": 89, "numChatUsers": 23 }, "extensionSummary": { "monthlyActiveUsers": 5, "weeklyActiveUsers": 3 }, "ugcSummary": { "monthlyActiveUsers": 4, "weeklyActiveUsers": 2 }, "lastUpdatedTs": 1708732800, "searchSessionSatisfaction": 78, "monthlyActiveUserTimeseries": { "label": "Last month", "countInfo": [ { "count": 8, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "weeklyActiveUserTimeseries": { "label": "Last week", "countInfo": [ { "count": 6, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "dailyActiveUserTimeseries": { "label": "Last 7 days", "countInfo": [ { "count": 5, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "searchMonthlyActiveUserTimeseries": { "label": "Last month", "countInfo": [ { "count": 7, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "searchWeeklyActiveUserTimeseries": { "label": "Last week", "countInfo": [ { "count": 5, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "searchDailyActiveUserTimeseries": { "label": "Last 7 days", "countInfo": [ { "count": 4, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "assistantMonthlyActiveUserTimeseries": { "label": "Last month", "countInfo": [ { "count": 6, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "assistantWeeklyActiveUserTimeseries": { "label": "Last week", "countInfo": [ { "count": 4, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "assistantDailyActiveUserTimeseries": { "label": "Last 7 days", "countInfo": [ { "count": 3, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "agentsMonthlyActiveUserTimeseries": { "label": "Last month", "countInfo": [ { "count": 4, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "agentsWeeklyActiveUserTimeseries": { "label": "Last week", "countInfo": [ { "count": 2, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "agentsDailyActiveUserTimeseries": { "label": "Last 7 days", "countInfo": [ { "count": 1, "period": { "start": { "epochSeconds": 1708128000, "daysFromNow": 7 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "searchesTimeseries": { "label": "Search Timeseries", "countInfo": [ { "count": 234, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "assistantInteractionsTimeseries": { "label": "Assistant Interaction Timeseries", "countInfo": [ { "count": 156, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "agentRunsTimeseries": { "label": "Agents Run Timeseries", "countInfo": [ { "count": 67, "period": { "start": { "epochSeconds": 1706054400, "daysFromNow": 28 }, "end": { "epochSeconds": 1708732800, "daysFromNow": 0 } }, "org": "demo" } ] }, "searchDatasourceCounts": {}, "chatDatasourceCounts": {}, "perUserInsights": [ { "person": { "name": "Charlie Brown", "obfuscatedId": "7ba7b811-9dad-11d1-80b4-00c04fd430c9" }, "numSearches": 45, "numChats": 12, "numActiveSessions": 23, "numGleanbotUsefulResponses": 8, "numDaysActive": 19, "numSummarizations": 5, "numAiAnswers": 7, "numAgentRuns": 3 }, { "person": { "name": "Diana Prince", "obfuscatedId": "8ca7b812-9dad-11d1-80b4-00c04fd430ca" }, "numSearches": 67, "numChats": 18, "numActiveSessions": 31, "numGleanbotUsefulResponses": 12, "numDaysActive": 22, "numSummarizations": 9, "numAiAnswers": 11, "numAgentRuns": 5 } ] } ```