Glean
scalekit137 toolsBearer TokenSearchAIConnect to Glean's enterprise search and AI platform — search across all company knowledge and apps, chat with Glean's AI assistant, run and manage AI...
Glean connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Make your first call
Section titled “Make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'glean'const identifier = 'user_123'// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'glean_agent_search',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "glean"identifier = "user_123"# Make your first callresult = actions.execute_tool(tool_input={},tool_name="glean_agent_search",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Metadata upsert document custom — Set or update custom metadata values for one metadata group on a single document already indexed in Glean
- Schema upsert custom metadata — Define or update the schema for a Glean custom metadata group (field) — the reusable definition of its display labels, data type, and search/faceting behavior
- Shortcuts upload, bulk index — Create shortcuts that Glean itself hosts and serves (Golinks), by sending one page of a paginated bulk-upload request
- Update verification, trigger, skill — Mark a Glean document as verified, deprecated, or unverified to keep the knowledge base up to date
- Skill sync, import — Refresh a GitHub-imported Glean skill from its stored source URL, checking for upstream changes
- Documents summarize, recommend, process all — Generate an AI-written summary of one or more Glean documents, optionally focused on a query
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
glean_add_collection_item#Add one or more items (indexed documents, external URLs, or text notes) to an existing Glean Collection.
Returns the updated Collection object with its full item list, or an error such as EXISTING_ITEM or CORRUPT_ITEM if an item couldn't be added.
Use this to append items to a Collection you already created; use glean_create_collection to create a new, empty Collection first.
Requires the target Collection's ID from glean_create_collection or Glean's Collections UI.3 params
Add one or more items (indexed documents, external URLs, or text notes) to an existing Glean Collection. Returns the updated Collection object with its full item list, or an error such as EXISTING_ITEM or CORRUPT_ITEM if an item couldn't be added. Use this to append items to a Collection you already created; use glean_create_collection to create a new, empty Collection first. Requires the target Collection's ID from glean_create_collection or Glean's Collections UI.
collection_idnumberrequiredThe ID of the Collection to add items to. Example: 12345.itemsarrayoptionalThe items to add, as a JSON array of item descriptors. Each descriptor needs an itemType of DOCUMENT, TEXT, or URL, plus the matching identifier: documentId for an indexed DOCUMENT, url for a URL item, or just a name/description/icon for a freeform TEXT note. Every descriptor can also carry an optional name, description, and emoji icon, and an optional newNextItemId to insert it before a specific existing item instead of appending it to the end. Example: [{"itemType": "URL", "url": "https://example.com/roadmap", "name": "Roadmap"}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_add_datasource#Create or update a custom datasource's configuration and schema in Glean's Indexing API.
Returns no response body on success; the datasource is registered, or an existing one with the same name has its config fully replaced.
Use this before submitting or indexing any documents, employees, or entities to a new custom datasource; use glean_get_datasource_config to inspect an existing datasource's current configuration instead.5 params
Create or update a custom datasource's configuration and schema in Glean's Indexing API. Returns no response body on success; the datasource is registered, or an existing one with the same name has its config fully replaced. Use this before submitting or indexing any documents, employees, or entities to a new custom datasource; use glean_get_datasource_config to inspect an existing datasource's current configuration instead.
datasourceCategorystringrequiredThe category that best describes what this datasource contains. Glean uses this as a strong relevance signal when ranking search results, so pick the closest match rather than leaving it uncategorized. Example: "TICKETS" for a helpdesk or issue tracker.namestringrequiredUnique identifier for this datasource instance in Glean, used as the short name callers reference elsewhere (e.g. as a datasource filter in search, or as the datasource instance segment when submitting data). Must be unique across all datasources in this Glean instance. Example: "myjira".config_jsonobjectoptionalAdvanced passthrough for additional datasource configuration fields not broken out above, merged directly into the datasource config sent to Glean. Supports the full config schema documented in Glean's Indexing API reference, including things like iconUrl, homeUrl, objectDefinitions, quicklinks, connectorType, isEntityDatasource, and isTestDatasource. Example: {"isEntityDatasource": true, "iconUrl": "https://example.com/icon.svg"}.displayNamestringoptionalUser-friendly label shown for this datasource instance in the Glean UI, e.g. in facets and result badges. If omitted, Glean title-cases the name field and uses that instead. Example: "My Jira".urlRegexstringoptionalRegular expression that matches the URLs of documents belonging to this datasource instance. Glean uses this to associate incoming documents' URLs with this datasource, so make it as specific as possible to avoid matching URLs from other datasources. Required for most datasources except ones used only to push custom people/entity data (set isEntityDatasource: true in config_json for those).glean_admin_search#Search across all of Glean's indexed content for a text query without applying viewer permission filters, returning every matching result regardless of who can normally see it.
Returns a list of results (each with title, url, snippets, and source document metadata), plus a pagination cursor and facet/result-tab metadata when requested, in the same shape as glean_search.
Use this instead of glean_search only when you hold a privileged admin token and need permission-unfiltered results for auditing or investigation; use glean_search for normal permission-aware searches.
Requires a Glean connection with the target instance's domain and an API token authorized for admin (privileged) search.10 params
Search across all of Glean's indexed content for a text query without applying viewer permission filters, returning every matching result regardless of who can normally see it. Returns a list of results (each with title, url, snippets, and source document metadata), plus a pagination cursor and facet/result-tab metadata when requested, in the same shape as glean_search. Use this instead of glean_search only when you hold a privileged admin token and need permission-unfiltered results for auditing or investigation; use glean_search for normal permission-aware searches. Requires a Glean connection with the target instance's domain and an API token authorized for admin (privileged) search.
querystringrequiredThe search terms to look for across all content Glean has indexed for this organization, ignoring per-user permission restrictions. Supports Glean's search operators (e.g. from:, app:, is:). Example: "Q3 roadmap planning".cursorstringoptionalOpaque pagination cursor from a previous admin search response's top-level cursor (or metadata.cursor) field. Pass it back to fetch the next page of results for the same query. Omit for the first page.datasourcesarrayoptionalRestrict results to one or more datasources by their short name (e.g. gmail, slack, confluence, jira, github, gdrive). All datasources are searched if omitted. Example: ["slack", "confluence"].disable_spellcheckbooleanoptionalIf true, disables automatic spelling correction/suggestion for this query. Defaults to false (spellcheck enabled) when omitted.facet_filtersarrayoptionalStructured filters applied as an AND across the list (e.g. filter by document type AND owner). Each entry is an object with a fieldName (the facet, e.g. "type" or "last_updated_at") and a values array of {"value": ..., "relationType": "EQUALS"} objects (relationType may also be "ID_EQUALS" for exact ID matches, "NOT_EQUALS" to negate a value, or "LT"/"GT" for range comparisons such as dates). Example: [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}]}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.max_snippet_sizeintegeroptionalHint to the server about the maximum character length of each returned snippet (or LLM content block, when return_llm_content is true). The server may return more or less. Example: 500.page_sizeintegeroptionalHint to the server for how many results to return in this page. The server may return more or fewer; structured and clustered results don't count towards this limit. Example: 10.result_tab_idsarrayoptionalRestrict results to specific result-tab IDs returned by a previous admin search response's resultTabs field (e.g. a "People" or "Code" tab). Takes precedence over the datasource filter when both are set. Most callers should leave this unset and use datasources instead.return_llm_contentbooleanoptionalIf true, returns expanded document content sized for LLM consumption instead of short highlighted snippets. Pair with max_snippet_size to bound the amount of content returned per result.glean_agent_search#Search Glean agents that the authenticated user can access, filtering by name.
Returns each matching agent's agent_id, name, description, and capability flags (e.g. whether it supports message input or streaming output).
Use this to find an agent's ID before calling glean_get_agent, glean_get_agent_schemas, or glean_run_agent; omit the name filter to list every agent you can access.1 param
Search Glean agents that the authenticated user can access, filtering by name. Returns each matching agent's agent_id, name, description, and capability flags (e.g. whether it supports message input or streaming output). Use this to find an agent's ID before calling glean_get_agent, glean_get_agent_schemas, or glean_run_agent; omit the name filter to list every agent you can access.
namestringoptionalCase-insensitive substring to match against agent names, e.g. "support" matches an agent named "Support Triage Agent". If omitted or empty, no name filter is applied and every accessible agent is returned.glean_authorize_action_pack#Start the third-party OAuth authorization flow for a Glean action pack on behalf of the current user.
Returns a redirect URL to send the user's browser to; after they consent, they land back on the return URL you supplied.
Use this when glean_get_action_pack_auth_status reports the user isn't authenticated yet.2 params
Start the third-party OAuth authorization flow for a Glean action pack on behalf of the current user. Returns a redirect URL to send the user's browser to; after they consent, they land back on the return URL you supplied. Use this when glean_get_action_pack_auth_status reports the user isn't authenticated yet.
action_pack_idstringrequiredThe ID of the action pack to start the OAuth authorization flow for.return_urlstringrequiredURL on the customer's domain to redirect the end user's browser back to after the third-party OAuth callback completes. Must already be present in the tenant's configured return URL allowlist, or the request is rejected with a 400 error.glean_authorize_tool_server#Start the OAuth authorization flow for a Glean tool server on behalf of the current user.
Returns an authorization URL to send the user's browser to; after they consent, they land back on the return URL you supplied.
Use this when glean_get_tool_server_auth_status reports the user isn't authorized yet.2 params
Start the OAuth authorization flow for a Glean tool server on behalf of the current user. Returns an authorization URL to send the user's browser to; after they consent, they land back on the return URL you supplied. Use this when glean_get_tool_server_auth_status reports the user isn't authorized yet.
return_urlstringrequiredURL to redirect the end user's browser back to after the OAuth flow completes. Must already be present in the tenant's configured return URL allowlist, or the request is rejected with a 400 error.server_idstringrequiredThe ID of the tool server to start the OAuth authorization flow for.glean_autocomplete#Suggest query completions, search operators, and matching documents for a partially typed search query.
Returns a ranked list of suggestions, each with a result type (e.g. document, operator, quicklink, app) and the display text/keywords for that suggestion.
Use this to power type-ahead suggestions as a user types a query; use glean_search once the user submits a complete query.
Requires a Glean connection with the target instance's domain and an API token.5 params
Suggest query completions, search operators, and matching documents for a partially typed search query. Returns a ranked list of suggestions, each with a result type (e.g. document, operator, quicklink, app) and the display text/keywords for that suggestion. Use this to power type-ahead suggestions as a user types a query; use glean_search once the user submits a complete query. Requires a Glean connection with the target instance's domain and an API token.
querystringrequiredThe partially typed query text to generate suggestions for. Example: "roadm".datasourcesarrayoptionalRestrict suggestions to one or more datasources by their short name (e.g. gmail, slack, confluence, jira, github, gdrive). All datasources are considered if omitted. Example: ["slack", "confluence"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.result_sizeintegeroptionalMaximum number of suggestions to return. Glean caps this at 200 if omitted. Example: 10.result_typesarrayoptionalRestrict suggestions to one or more result types. Valid values: ADDITIONAL_DOCUMENT, APP, BROWSER_HISTORY, DATASOURCE, DOCUMENT, ENTITY, GOLINK, HISTORY, CHAT_HISTORY, NEW_CHAT, OPERATOR, OPERATOR_VALUE, QUICKLINK, SUGGESTION. All types may be returned if omitted. Example: ["DOCUMENT", "OPERATOR"].glean_bulk_index_documents#Replace all of a datasource's documents by streaming them as one or more paginated batches under a shared upload id.
Returns no response body per page; once the page marked is_last_page is accepted, Glean finalizes the replace and removes documents from this datasource that weren't included in any page.
Use this when re-syncing a datasource's entire document set (it deletes what's no longer sent); use glean_index_document or glean_index_documents instead for incremental adds/updates that shouldn't remove anything.
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.7 params
Replace all of a datasource's documents by streaming them as one or more paginated batches under a shared upload id. Returns no response body per page; once the page marked is_last_page is accepted, Glean finalizes the replace and removes documents from this datasource that weren't included in any page. Use this when re-syncing a datasource's entire document set (it deletes what's no longer sent); use glean_index_document or glean_index_documents instead for incremental adds/updates that shouldn't remove anything. This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringrequiredThe short name of the custom datasource whose documents are being replaced. Example: "my-wiki".documentsarrayrequiredThis page's batch of documents, as a JSON array. Each entry describes one indexable document and needs at least a datasource. Common fields per document: id (the datasource-specific document id), title, viewURL (the permalink), objectType, summary/body (content objects with a mimeType plus textContent or binaryContent), author/owner (who created/owns it), permissions (who can view it), tags, and customProperties. Example: [{"datasource": "my-wiki", "id": "doc-1", "title": "Runbook", "viewURL": "https://wiki.example.com/runbook", "body": {"mimeType": "text/plain", "textContent": "Steps to..."}}].upload_idstringrequiredA unique identifier for this bulk upload run. Use the same upload_id for every page you send as part of the same replace operation. Example: "bulk-2024-05-01".disable_stale_document_deletion_checkbooleanoptionalIf true, older documents not included in this upload are force-deleted as soon as the upload completes, instead of the default asynchronous deletion (which only proceeds if the deleted share stays under a safety threshold). Must only be set when is_last_page is true.force_restart_uploadbooleanoptionalIf true, discards any previous incomplete attempt for this upload_id and restarts from scratch. Must only be set together with is_first_page set to true. Leave unset otherwise.is_first_pagebooleanoptionalWhether this call is the first page of the upload run. Set true only on the first call for a given upload_id; defaults to false.is_last_pagebooleanoptionalWhether this call is the final page of the upload run. Set true only on the last call for a given upload_id, which triggers Glean to finalize the replace and remove stale documents; defaults to false.glean_bulk_index_employees#[Deprecated by Glean] Replace all currently indexed employees in one paginated batch upload, driven by a shared upload ID and first/last-page flags.
Returns no response body on success; when the last page is submitted, older employee records not included in the upload may be deleted.
Use glean_index_employee instead for indexing or updating individual employees; only use this bulk endpoint when you already have a full-directory paginated upload workflow built around it.6 params
[Deprecated by Glean] Replace all currently indexed employees in one paginated batch upload, driven by a shared upload ID and first/last-page flags. Returns no response body on success; when the last page is submitted, older employee records not included in the upload may be deleted. Use glean_index_employee instead for indexing or updating individual employees; only use this bulk endpoint when you already have a full-directory paginated upload workflow built around it.
employeesarrayrequiredThe batch of employee records to upload in this page. Each entry needs at least an email and a department, and may also include the same optional details supported by Index Employee — name, title, contact info, dates, manager, team memberships, and more. Example: [{"email": "jane.doe@example.com", "department": "Engineering", "firstName": "Jane", "lastName": "Doe"}].uploadIdstringrequiredA unique identifier you choose for this bulk upload run. Use the same uploadId across all pages of a single multi-page upload so Glean can associate them together. Example: "employees-sync-2026-09-08".disableStaleDataDeletionCheckbooleanoptionalIf true, forces older employee records not included in this upload to be deleted even if that would remove a large percentage of existing data. By default, Glean only auto-deletes stale records when they represent less than 20% of the total. Only meaningful when isLastPage is also true.forceRestartUploadbooleanoptionalIf true, discards any previous incomplete upload attempts for this uploadId and starts fresh. Only meaningful when isFirstPage is also true; leave this unset on later pages of the same upload.isFirstPagebooleanoptionalWhether this is the first page of a multi-page upload. Defaults to false. Set this to true only on the very first call for a given uploadId.isLastPagebooleanoptionalWhether this is the last page of a multi-page upload. Defaults to false. Set this to true on the final call for a given uploadId so Glean knows the upload is complete and can finalize and clean up stale records.glean_bulk_index_groups#Replace the groups indexed for a Glean datasource, uploading them page by page through a paginated batch sequence.
Returns an empty success response once the page is accepted.
Use this to define which groups exist in a custom datasource before assigning memberships with glean_index_membership or glean_bulk_index_memberships; call it once per page with the same upload ID, marking only the first and last calls.
Requires a Glean connection with the target Glean instance's domain and an API token.7 params
Replace the groups indexed for a Glean datasource, uploading them page by page through a paginated batch sequence. Returns an empty success response once the page is accepted. Use this to define which groups exist in a custom datasource before assigning memberships with glean_index_membership or glean_bulk_index_memberships; call it once per page with the same upload ID, marking only the first and last calls. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource whose groups are being replaced, matching the datasource name registered in Glean. Example: "myconfluence".group_namesarrayrequiredThe batch of group names to upload in this page. Each name must be unique among all groups for the datasource and must not contain spaces. Any group not included across the full upload sequence is removed, along with its memberships. Example: ["engineering-team", "finance-team"].upload_idstringrequiredAn identifier you choose to tie together every page of this one bulk groups upload for the datasource. Reuse the exact same value across the first page through the last page of a single upload; start a new, different ID the next time you upload groups for this datasource. Example: "groups-upload-2026-09-08-001".disable_stale_data_deletion_checkbooleanoptionalIf true, forces removal of groups that were present before this upload but are missing from it, even when the fraction of removed data looks unusually large. Only takes effect when is_last_page is true; by default Glean skips deletions that look too big to be safe. Example: false.force_restart_uploadbooleanoptionalIf true, discards any previous in-progress upload for this upload_id and starts the sequence over from scratch. Must only be used together with is_first_page set to true. Leave unset for a normal sequential upload.is_first_pagebooleanoptionalSet to true only on the very first batch call of this upload, marking the start of a new paginated sequence for the datasource's groups. Defaults to false for every subsequent page.is_last_pagebooleanoptionalSet to true only on the final batch call of this upload, marking the end of the paginated sequence so Glean finalizes the replace and can run stale-data cleanup. Defaults to false for every page before the last.glean_bulk_index_memberships#Replace all memberships of a single group in a Glean datasource, uploading them page by page through a paginated batch sequence.
Returns an empty success response once the page is accepted.
Use this when a group has many members to upload in one paginated sequence; use glean_index_membership instead for a single membership change.
Requires a Glean connection with the target Glean instance's domain and an API token.7 params
Replace all memberships of a single group in a Glean datasource, uploading them page by page through a paginated batch sequence. Returns an empty success response once the page is accepted. Use this when a group has many members to upload in one paginated sequence; use glean_index_membership instead for a single membership change. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource the group belongs to, matching the datasource name registered in Glean. Example: "myconfluence".group_namestringrequiredName of the group in the datasource whose memberships are being replaced by this upload. Example: "engineering-team".membershipsarrayrequiredThe batch of membership rows to upload for this page of the group's members. Each entry adds one member: set memberUserId to a user's email or datasource-specific ID to add a user, or set memberGroupName to nest another group as a member — provide exactly one field per entry, never both. Example: [{"memberUserId": "alice@example.com"}, {"memberGroupName": "finance-team"}].upload_idstringrequiredAn identifier you choose to tie together every page of this one bulk memberships upload for the group. Reuse the exact same value across the first page through the last page of a single upload; start a new, different ID the next time you upload memberships for this group. Example: "memberships-upload-2026-09-08-001".force_restart_uploadbooleanoptionalIf true, discards any previous in-progress upload for this upload_id and starts the sequence over from scratch. Must only be used together with is_first_page set to true. Leave unset for a normal sequential upload.is_first_pagebooleanoptionalSet to true only on the very first batch call of this upload, marking the start of a new paginated sequence for the group's memberships. Defaults to false for every subsequent page.is_last_pagebooleanoptionalSet to true only on the final batch call of this upload, marking the end of the paginated sequence so Glean finalizes the replace. Defaults to false for every page before the last.glean_bulk_index_shortcuts#Replace Glean's indexed external shortcuts by sending one page of a paginated bulk-upload request.
Returns an empty success acknowledgement for the page that was received.
Use this only for shortcuts hosted somewhere other than Glean that you want indexed for search; use the upload shortcuts tool instead for shortcuts you want Glean itself to host as Golinks. Send one call per page, marking is_first_page/is_last_page, until every page has been sent.5 params
Replace Glean's indexed external shortcuts by sending one page of a paginated bulk-upload request. Returns an empty success acknowledgement for the page that was received. Use this only for shortcuts hosted somewhere other than Glean that you want indexed for search; use the upload shortcuts tool instead for shortcuts you want Glean itself to host as Golinks. Send one call per page, marking is_first_page/is_last_page, until every page has been sent.
shortcutsarrayrequiredOne page of external shortcut records to index — for shortcuts that live outside Glean and should only be searchable, not hosted by Glean. Each shortcut needs a destinationUrl (the final URL it resolves to), an intermediateUrl (the URL users are redirected through on the way there), a createdBy identifier (the owner), and an inputAlias (the short keyword or path users type to reach it). It can optionally include a title, a decayedVisitScore used for ranking, and an editUrl pointing to where the shortcut can be managed. Send one call per page, repeating with subsequent pages until is_last_page is true. Example: [{"destinationUrl": "https://wiki.example.com/onboarding", "intermediateUrl": "https://go.example.com/onboarding", "createdBy": "alice@example.com", "inputAlias": "onboarding"}].upload_idstringrequiredUnique identifier for this bulk-upload session. Use the exact same value on every page (first through last) of one upload; a new value starts a separate, independent upload. Example: "shortcuts-sync-2026-09-08".force_restart_uploadbooleanoptionalDiscards any previous incomplete upload attempt tied to this upload_id and starts the upload over from scratch. Must be set together with is_first_page = true; it has no effect on later pages. Defaults to false.is_first_pagebooleanoptionalWhether this call carries the first page of the bulk upload. Set to true only on the first page of a given upload_id; leave false for every later page. Defaults to false.is_last_pagebooleanoptionalWhether this call carries the final page of the bulk upload, telling Glean the full set of shortcuts has been received and the upload can be finalized. Leave false for every page except the last. Defaults to false.glean_bulk_index_teams#Replace Glean's indexed teams by sending one page of a paginated bulk-upload request.
Returns an empty success acknowledgement for the page that was received.
Use this to sync your organization's team directory into Glean in bulk, sending one call per page and marking is_first_page/is_last_page as you go; use the bulk index shortcuts tool instead for external shortcut links, not teams.5 params
Replace Glean's indexed teams by sending one page of a paginated bulk-upload request. Returns an empty success acknowledgement for the page that was received. Use this to sync your organization's team directory into Glean in bulk, sending one call per page and marking is_first_page/is_last_page as you go; use the bulk index shortcuts tool instead for external shortcut links, not teams.
teamsarrayrequiredOne page of team records to index. Each team object needs a unique id, a human-readable name, and a members array identifying who belongs to the team. It can also include a description, businessUnit, department, a photoUrl, an externalLink to an external team page, an emails list, a datasourceProfiles list (e.g. Slack or GitHub profiles for the team), and additionalFields for extra structured metadata. Send one call per page of teams, repeating with subsequent pages until is_last_page is true. Example: [{"id": "team-42", "name": "Platform Engineering", "members": [{"email": "alice@example.com"}]}].upload_idstringrequiredUnique identifier for this bulk-upload session. Use the exact same value on every page (first through last) of one upload; a new value starts a separate, independent upload. Example: "teams-sync-2026-09-08".force_restart_uploadbooleanoptionalDiscards any previous incomplete upload attempt tied to this upload_id and starts the upload over from scratch. Must be set together with is_first_page = true; it has no effect on later pages. Defaults to false.is_first_pagebooleanoptionalWhether this call carries the first page of the bulk upload. Set to true only on the first page of a given upload_id; leave false for every later page. Defaults to false.is_last_pagebooleanoptionalWhether this call carries the final page of the bulk upload, telling Glean the full set of teams has been received and the upload can be finalized. Leave false for every page except the last. Defaults to false.glean_bulk_index_users#Replace all of a datasource's users by streaming them as one or more paginated batches under a shared upload id.
Returns no response body per page; once the page marked is_last_page is accepted, Glean finalizes the replace, deleting users (and their group memberships) that weren't included in any page.
Use this when re-syncing a datasource's entire user list; use glean_index_user instead for a single incremental add or update.
Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's user directory data used for access control, not third-party data.7 params
Replace all of a datasource's users by streaming them as one or more paginated batches under a shared upload id. Returns no response body per page; once the page marked is_last_page is accepted, Glean finalizes the replace, deleting users (and their group memberships) that weren't included in any page. Use this when re-syncing a datasource's entire user list; use glean_index_user instead for a single incremental add or update. Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's user directory data used for access control, not third-party data.
datasourcestringrequiredThe short name of the datasource whose users are being replaced. Example: "my-wiki".upload_idstringrequiredA unique identifier for this bulk upload run. Use the same upload_id for every page you send as part of the same replace operation. Example: "users-2024-05-01".usersarrayrequiredThis page's batch of users, as a JSON array. Each entry describes one user and needs at least email and name. Optionally include userId (the datasource-specific id, if different from the email) and isActive (set false for former employees or bots). Example: [{"email": "alice@example.com", "name": "Alice Smith", "isActive": true}].disable_stale_data_deletion_checkbooleanoptionalIf true, users not included in this upload are force-deleted as soon as the upload completes. By default, older users are only deleted automatically if the deleted share stays under a safety threshold. Must only be set when is_last_page is true.force_restart_uploadbooleanoptionalIf true, discards any previous incomplete attempt for this upload_id and restarts from scratch. Must only be set together with is_first_page set to true. Leave unset otherwise.is_first_pagebooleanoptionalWhether this call is the first page of the upload run. Set true only on the first call for a given upload_id; defaults to false.is_last_pagebooleanoptionalWhether this call is the final page of the upload run. Set true only on the last call for a given upload_id, which triggers Glean to finalize the replace (deleting any users, and their memberships, that weren't included); defaults to false.glean_call_tool#Execute a tool from Glean's agent tool-calling framework by name, passing its required parameters.
Returns the tool's raw response payload, or an error message if the call failed.
Use glean_list_tools first to find the tool's name and expected parameters; if the tool requires third-party authorization, check glean_get_tool_server_auth_status or glean_get_action_pack_auth_status first.2 params
Execute a tool from Glean's agent tool-calling framework by name, passing its required parameters. Returns the tool's raw response payload, or an error message if the call failed. Use glean_list_tools first to find the tool's name and expected parameters; if the tool requires third-party authorization, check glean_get_tool_server_auth_status or glean_get_action_pack_auth_status first.
parametersobjectrequiredThe parameters to pass to the tool, as an object whose keys are parameter names and whose values each repeat the parameter's name and carry its value: use a "value" key (as a string) for primitive types, an "items" array of nested parameter objects for array-typed parameters, or a "properties" object of nested parameter objects for object-typed parameters. Example: {"query": {"name": "query", "value": "Q3 roadmap planning"}}.tool_namestringrequiredThe exact name of the tool to execute, as returned by glean_list_tools.glean_chat#Send a message to Glean AI and get a conversational response, optionally continuing an existing saved chat.
Returns the assistant's reply messages, the id of the chat the exchange belongs to, and any follow-up prompt suggestions.
Use this for open-ended, conversational answers grounded in company knowledge and previous chat context; use glean_search instead when you want a ranked list of matching documents rather than a synthesized answer.
Requires a Glean connection with the target Glean instance's domain and an API token.8 params
Send a message to Glean AI and get a conversational response, optionally continuing an existing saved chat. Returns the assistant's reply messages, the id of the chat the exchange belongs to, and any follow-up prompt suggestions. Use this for open-ended, conversational answers grounded in company knowledge and previous chat context; use glean_search instead when you want a ranked list of matching documents rather than a synthesized answer. Requires a Glean connection with the target Glean instance's domain and an API token.
messagestringrequiredThe text of the user's message to send to Glean AI in this turn of the conversation. Becomes the content of a new USER-authored chat message. Example: "What is our current Q3 roadmap?".agentstringoptionalSelects which built-in Glean agent mode handles the request: DEFAULT (uses your company's knowledge), GPT (talks directly to the underlying LLM), UNIVERSAL (company plus web knowledge), FAST or ADVANCED (agentic engine, trading response speed for depth), or AUTO (routes automatically between reasoning efforts). Leave unset to use Glean's default.agent_idstringoptionalThe id of a specific custom Glean Agent (one whose trigger is set to "User chat message") that should process this request instead of the default chat experience. Find Agent ids in Glean's Agents builder. Example: "8f14e45fceea167a5a36dedd4bea2543".application_idstringoptionalThe id of the custom Chat application (AI App) this request should run under, as configured during Glean admin setup. Determines which underlying chat configuration is used. Omit to use the default chat experience.chat_idstringoptionalThe id of an existing Chat to continue, taken from a previous glean_chat response's chatId field or from glean_get_chat/glean_list_chats. Omit to start a brand-new Chat.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for this response. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.save_chatbooleanoptionalIf true, saves this interaction as a Chat that the user can revisit or continue later (visible via glean_list_chats and glean_get_chat). If omitted or false, the interaction is not saved.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC, so Glean can interpret and display any date/time references in the response correctly. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_check_datasource_auth#Check which of Glean's connected data sources still require the current user to complete per-user OAuth authorization.
Returns a list of unauthorized datasource instances, each with its display name, current auth status, and a relative URL to resume or start the OAuth flow.
Use this before relying on datasource-restricted search or chat results to see which sources the user hasn't yet authorized; it only reports status and does not perform the authorization itself.
Requires a Glean connection with the target Glean instance's domain and an API token.0 params
Check which of Glean's connected data sources still require the current user to complete per-user OAuth authorization. Returns a list of unauthorized datasource instances, each with its display name, current auth status, and a relative URL to resume or start the OAuth flow. Use this before relying on datasource-restricted search or chat results to see which sources the user hasn't yet authorized; it only reports status and does not perform the authorization itself. Requires a Glean connection with the target Glean instance's domain and an API token.
glean_check_document_access#Check whether a specific user has access to view a document in a custom Glean datasource, based on the document's uploaded permissions.
Returns a single hasAccess boolean indicating whether the user can see the document in search results.
Use this to verify permission configuration for one user/document pair; use glean_debug_get_document instead to inspect the document's full permissions record without testing a specific user.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.4 params
Check whether a specific user has access to view a document in a custom Glean datasource, based on the document's uploaded permissions. Returns a single hasAccess boolean indicating whether the user can see the document in search results. Use this to verify permission configuration for one user/document pair; use glean_debug_get_document instead to inspect the document's full permissions record without testing a specific user. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.
datasourcestringrequiredThe short name of the custom datasource the document belongs to, exactly as configured in Glean's datasource setup. Example: "myjira".doc_idstringrequiredThe document's unique ID within the datasource, exactly as it was set in the id field when the document was uploaded via the indexing API. Example: "TICKET-1234".object_typestringrequiredThe object type the document belongs to within the datasource's schema, exactly as it was set when the document was uploaded via the indexing API (e.g. "ticket", "issue", "page").user_emailstringrequiredThe email address of the user whose access to the document should be checked. Example: "jane@example.com".glean_create_agent#Create a new agent in Glean's Agent Builder.
Returns the created agent's ID plus its full configuration and metadata, including a generated webhook URL if it's a webhook-triggered agent.
Use this to define a brand-new agent from a name and optional configuration; use glean_update_agent to edit an existing agent's configuration instead.
6 params
Create a new agent in Glean's Agent Builder. Returns the created agent's ID plus its full configuration and metadata, including a generated webhook URL if it's a webhook-triggered agent. Use this to define a brand-new agent from a name and optional configuration; use glean_update_agent to edit an existing agent's configuration instead.
namestringrequiredThe name of the new agent. Shown in Glean's Agent Builder and on the agent's card. Example: "Weekly Report Summarizer".agent_config_jsonobjectoptionalEscape hatch for additional agent configuration beyond name/transient/parent_workflow_id — for example a description, instructions, trigger settings, or tool/skill configuration. Provide a JSON object whose fields are merged directly into the create-agent request; the exact fields available depend on your Glean instance's Agent Builder schema (see https://developers.glean.com/agents/agents-api). The name, transient, and parent_workflow_id fields above always take precedence over the same keys inside this object.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.parent_workflow_idstringoptionalID of the parent agent (workflow) this transient agent previews changes for. Only meaningful when transient is true.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC (e.g. -420 for PDT, which is 7 hours behind UTC). Used only for audit/logging purposes on this endpoint.transientbooleanoptionalIf true, creates a transient (temporary, preview-only) agent instead of a permanent one. Transient agents are typically used together with parent_workflow_id to preview changes to an existing agent without altering it.glean_create_announcement#Create a new announcement in Glean, visible to a target set of users based on department, location, or other audience filters.
Returns the created announcement, including its id, author, tracking token, and publish state.
Use this to broadcast company-wide or team-wide news; use glean_update_announcement to edit one that already exists.
Requires a Glean connection with the target instance's domain and an API token.15 params
Create a new announcement in Glean, visible to a target set of users based on department, location, or other audience filters. Returns the created announcement, including its id, author, tracking token, and publish state. Use this to broadcast company-wide or team-wide news; use glean_update_announcement to edit one that already exists. Requires a Glean connection with the target instance's domain and an API token.
end_timestringrequiredThe ISO 8601 date and time at which the announcement expires and stops being shown. Example: "2025-12-26T00:00:00Z".start_timestringrequiredThe ISO 8601 date and time at which the announcement becomes active and visible to its audience. Example: "2025-12-24T00:00:00Z".titlestringrequiredThe headline of the announcement, shown as its main heading. Example: "Office closed for the holiday".audience_filtersarrayoptionalRestricts who sees the announcement, as an array of facet-filter objects taken from the same filters used in Glean people search (e.g. department or location). Each entry has a fieldName and a values array of {"value": ..., "relationType": "EQUALS"} objects; multiple entries are combined with AND, values within one entry with OR. If omitted, the announcement is visible to everyone. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].bannerobjectoptionalA wide banner image for the announcement, as a JSON object with a photoId (if using a Glean-hosted photo) and/or a direct image url. Example: {"url": "https://example.com/banner.png"}.bodyobjectoptionalThe announcement's body content, as a JSON object. It carries the rich-text body plus an optional structuredList array of items, each of which is either a plain string or a link (optionally pointing to a Glean document). Example: {"text": "Enjoy the long weekend!"}.channelstringoptionalWhich surface the announcement is posted to: MAIN for a regular announcement, SOCIAL_FEED for a Social Feed post. Defaults to MAIN.emojistringoptionalAn emoji used to indicate the nature of the announcement, shown alongside its title. Example: "🎉".hide_attributionbooleanoptionalIf true, hides the author's name from the announcement. Defaults to false (author is shown).is_prioritizedbooleanoptionalIf true and channel is SOCIAL_FEED, pins this post to the front of the Social Feed. Defaults to false.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.post_typestringoptionalWhether this is a regular rich-text announcement (TEXT) or a post linking out to an external site (LINK). Defaults to TEXT.source_document_idstringoptionalThe Glean Document ID of the source document this announcement was created from, if it originated elsewhere (e.g. a Slack thread). Example: "CONFLUENCE_12345".thumbnailobjectoptionalA small thumbnail image for the announcement, as a JSON object with a photoId (if using a Glean-hosted photo) and/or a direct image url. Example: {"url": "https://example.com/thumb.png"}.view_urlstringoptionalThe URL to open when viewing the announcement. Only used when channel is SOCIAL_FEED, where it's typically set to the URL of the document the post links to. Example: "https://example.com/blog/holiday-notice".glean_create_answer#Create a new user-generated Answer in Glean, pairing a question with its plain-text or structured answer.
Returns the created Answer, including its id, Glean Document ID, author, and tracking token.
Use this to publish a reusable Q&A entry that surfaces in Glean search; use glean_update_answer to edit one that already exists.
Requires a Glean connection with the target instance's domain and an API token.10 params
Create a new user-generated Answer in Glean, pairing a question with its plain-text or structured answer. Returns the created Answer, including its id, Glean Document ID, author, and tracking token. Use this to publish a reusable Q&A entry that surfaces in Glean search; use glean_update_answer to edit one that already exists. Requires a Glean connection with the target instance's domain and an API token.
questionstringrequiredThe question this Answer addresses. Example: "How do I request PTO?".added_collectionsarrayoptionalIDs of Collections this Answer should be added to when it's created. Example: [1234, 5678].audience_filtersarrayoptionalRestricts who sees this Answer, as an array of facet-filter objects taken from the same filters used in Glean people search (e.g. department or location). Each entry has a fieldName and a values array of {"value": ..., "relationType": "EQUALS"} objects. If omitted, the Answer is visible to everyone with search access. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].body_textstringoptionalThe plain-text answer to the question. Example: "Submit a PTO request in Workday at least two weeks in advance.".combined_answer_textstringoptionalThe rich-text answer body, used instead of or alongside body_text when you want Glean to display formatted content. Example: "Submit a **PTO request** in Workday at least two weeks in advance.".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.question_variationsarrayoptionalAdditional ways of phrasing the same question, so this Answer also surfaces for those variants. Example: ["How do I take time off?", "How do I book vacation?"].rolesarrayoptionalUser roles to explicitly grant on this Answer, as an array of objects, each naming a role (e.g. OWNER, EDITOR) and either a person or a group. Most Answers don't need this set explicitly. Example: [{"role": "EDITOR", "person": {"email": "alice@company.com"}}].source_document_specobjectoptionalIf this Answer was derived from an existing document, identify that source document as a JSON object using exactly one of: {"url": ...}, {"id": ...} (a Glean Document ID), or {"ugcType": ..., "contentId": ...} / {"ugcType": ..., "ugcId": ...} for another piece of user-generated content. Example: {"id": "CONFLUENCE_12345"}.source_typestringoptionalWhether this Answer's source content is a DOCUMENT or generated by an ASSISTANT.glean_create_auth_token#Create a short-lived authentication token for the current user, for use with Glean's Web SDK.
Returns the generated token string along with its expiration time as a Unix timestamp (seconds since epoch UTC).
Use this only when embedding Glean's Web SDK in a client application; the resulting token cannot be used to call Glean's own Client REST API endpoints such as search or chat.
Requires a Glean connection with the target Glean instance's domain and an API token.0 params
Create a short-lived authentication token for the current user, for use with Glean's Web SDK. Returns the generated token string along with its expiration time as a Unix timestamp (seconds since epoch UTC). Use this only when embedding Glean's Web SDK in a client application; the resulting token cannot be used to call Glean's own Client REST API endpoints such as search or chat. Requires a Glean connection with the target Glean instance's domain and an API token.
glean_create_collection#Create a new, empty, publicly visible Collection of documents in Glean.
Returns the newly created Collection object including its ID, or an error such as NAME_EXISTS if the name is already taken.
Use this to start a new Collection before adding items to it with glean_add_collection_item.
13 params
Create a new, empty, publicly visible Collection of documents in Glean. Returns the newly created Collection object including its ID, or an error such as NAME_EXISTS if the name is already taken. Use this to start a new Collection before adding items to it with glean_add_collection_item.
namestringrequiredThe unique name of the Collection. Must not already be in use by another Collection. Example: "Q3 Launch Docs".added_rolesarrayoptionalRole grants to apply when creating the Collection, one object per person or group being given a role (such as editor) on it. Each object follows Glean's role-specification shape used across the Collections API; if unsure of the exact fields, copy an example from an existing Collection's roles list or Glean's admin UI rather than constructing one from scratch.admin_lockedbooleanoptionalIf true, only Glean admins can edit this Collection; other users with access can view but not modify it.allowed_datasourcestringoptionalRestricts this Collection to holding items from a single datasource (e.g. gdrive, confluence) rather than any type of item. Leave blank to allow items from any datasource.audience_filtersarrayoptionalFilters restricting who can see this Collection, matching the values available in Glean's people search filters. Each entry is an object with a fieldName (the facet, e.g. "department") and a values array of {"value": ..., "relationType": "EQUALS"} objects. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].descriptionstringoptionalA brief summary of the Collection's contents, shown alongside its name.iconstringoptionalThe emoji icon shown next to the Collection's name. Example: "🚀".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.new_next_item_idstringoptionalOnly meaningful when parent_id is set: the item ID of the sibling item within the parent Collection that this new Collection should be inserted immediately before. If omitted, it's appended to the end of the parent's items.parent_idintegeroptionalThe ID of the parent Collection this new Collection should be nested under. Omit (or use 0) to create a top-level Collection.removed_rolesarrayoptionalRole grants to explicitly exclude when creating the Collection, in the same shape as added_roles. Rarely needed on creation since there are no prior roles to remove.thumbnail_photo_idstringoptionalID of a Glean-hosted splash photo to use as this Collection's thumbnail, as an alternative to thumbnail_url.thumbnail_urlstringoptionalURL of an image to use as this Collection's thumbnail.glean_create_pin#Pin a document as a featured result for one or more search queries.
Returns the created pin, including its opaque pin id, the pinned document id, audience filters, and who created/last updated it.
Use this to promote a known-good document to the top of results for specific queries; use glean_update_pin to change an existing pin's queries or audience instead of creating a duplicate.
Requires a Glean connection with the target instance's domain and an API token.4 params
Pin a document as a featured result for one or more search queries. Returns the created pin, including its opaque pin id, the pinned document id, audience filters, and who created/last updated it. Use this to promote a known-good document to the top of results for specific queries; use glean_update_pin to change an existing pin's queries or audience instead of creating a duplicate. Requires a Glean connection with the target instance's domain and an API token.
document_idstringrequiredThe Glean Document ID of the document to pin. Example: "abcXYZ123".audience_filtersarrayoptionalFilters that restrict which users see the pinned result, expressed the same way as people-search facet filters. Each entry has a fieldName (the facet being filtered, e.g. a department or location facet) and a values array of {"value": ..., "relationType": "EQUALS"} objects; an optional groupName nests the filter under another facet's value. Leave blank to make the pin visible to everyone who can already see the underlying document. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.queriesarrayoptionalOne or more query strings for which this pinned document should be shown as a top result. Example: ["onboarding guide", "new hire setup"].glean_create_shortcut#Create a new Glean shortcut (a go-link) that redirects a short alias to a destination URL.
Returns the created shortcut's ID, alias, destination, redirect URL, and edit URL.
Use this to set up a new go/ link; use glean_update_shortcut to change an existing one, and glean_get_shortcut or glean_list_shortcuts to check whether an alias is already taken before creating.
Requires a Glean connection with the target Glean instance's domain and an API token.9 params
Create a new Glean shortcut (a go-link) that redirects a short alias to a destination URL. Returns the created shortcut's ID, alias, destination, redirect URL, and edit URL. Use this to set up a new go/ link; use glean_update_shortcut to change an existing one, and glean_get_shortcut or glean_list_shortcuts to check whether an alias is already taken before creating. Requires a Glean connection with the target Glean instance's domain and an API token.
destination_urlstringrequiredThe full URL the shortcut redirects to when visited. Example: "https://wiki.example.com/team-space".input_aliasstringrequiredThe link text that follows the go/ prefix, exactly as the user should type it. Example: "team-wiki" creates go/team-wiki.added_rolesarrayoptionalAdvanced: user roles (e.g. editor) to explicitly grant on this shortcut, each naming a person or group and the role to add. Leave empty to use the default ownership (you as the creator). Example: [{"person": {"obfuscatedId": "abc123XYZ"}, "role": "EDITOR"}].descriptionstringoptionalA short, plain-text blurb explaining what this shortcut is for, shown to people browsing shortcuts. Example: "Team wiki homepage".destination_document_idstringoptionalThe Glean Document ID that corresponds to the destination URL, if it's already indexed by Glean. Leave empty if unknown; Glean will still create the shortcut.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.removed_rolesarrayoptionalAdvanced: user roles to explicitly remove on this shortcut, in the same shape as added_roles. Rarely needed on creation since there are no prior roles to remove. Leave empty unless you need to revoke an inherited role.unlistedbooleanoptionalIf true, the shortcut is unlisted: visible only to its author and admins, not to other users browsing shortcuts. Defaults to false (listed/public) when omitted.url_templatestringoptionalFor variable shortcuts that accept arguments after the alias, the URL template with placeholders (destination_url holds the default/no-argument URL). Leave empty for a simple fixed-destination shortcut. Example: "https://wiki.example.com/search?q={query}".glean_create_trigger#Create a Glean trigger from an existing preset, wiring it to a webhook endpoint that receives signed delivery events.
Returns the created trigger's id, status, input values, delivery configuration, timestamps, and a one-time signing_secret (whsec_...) used to verify webhook signatures.
Use this after finding a preset with glean_list_trigger_presets or glean_get_trigger_preset. Use glean_update_trigger to change an existing trigger instead of creating a duplicate.
Requires a Glean connection with the target instance's domain and an API token; store the returned signing_secret immediately, since it cannot be retrieved again.6 params
Create a Glean trigger from an existing preset, wiring it to a webhook endpoint that receives signed delivery events. Returns the created trigger's id, status, input values, delivery configuration, timestamps, and a one-time signing_secret (whsec_...) used to verify webhook signatures. Use this after finding a preset with glean_list_trigger_presets or glean_get_trigger_preset. Use glean_update_trigger to change an existing trigger instead of creating a duplicate. Requires a Glean connection with the target instance's domain and an API token; store the returned signing_secret immediately, since it cannot be retrieved again.
preset_idstringrequiredID of the trigger preset to instantiate. Obtain this from glean_list_trigger_presets or glean_get_trigger_preset.webhook_urlstringrequiredHTTPS URL that Glean delivers signed webhook events to whenever this trigger fires. Must start with https://.auth_secretstringoptionalSecret credential value sent with the auth_type header on each webhook delivery. Write-only — Glean never returns it on reads. Provide together with auth_type — both or neither.auth_typestringoptionalOptional credential scheme sent as an HTTP auth header on every delivery, in addition to the HMAC signature, so the receiving endpoint can authenticate the request. Currently the only supported value is BEARER. Provide together with auth_secret — both or neither.descriptionstringoptionalOptional free-text note describing this trigger, for your own reference.inputsobjectoptionalValues for the preset's input fields, as a flat JSON object keyed by input field name. Use glean_get_trigger_preset to see which input fields the chosen preset expects, and glean_search_trigger_preset_input_values to look up valid picklist values for a given field. Example: {"project": "ENG", "issue_type": "Bug"}.glean_create_verification_reminder#Create or update a verification reminder for a Glean document, optionally assigning it to a person with a reminder cadence and reason.
Returns the document's current verification state along with reminder, verifier, and visitor-count metadata.
Use this to ask an owner or teammate to confirm a document is still accurate; use glean_update_verification instead to directly mark a document verified, deprecated, or unverified.5 params
Create or update a verification reminder for a Glean document, optionally assigning it to a person with a reminder cadence and reason. Returns the document's current verification state along with reminder, verifier, and visitor-count metadata. Use this to ask an owner or teammate to confirm a document is still accurate; use glean_update_verification instead to directly mark a document verified, deprecated, or unverified.
document_idstringrequiredThe Glean document ID to create, update, or clear a verification reminder for.assigneestringoptionalObfuscated Glean person ID of the user this verification reminder is assigned to. Omit to leave the reminder unassigned.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.reasonstringoptionalOptional free-text reason for the reminder, particularly useful when asking another user to verify the document (e.g. "Duplicate", "Incomplete", "Incorrect").remind_in_daysintegeroptionalNumber of days from now when the next reminder should trigger. Omit this field entirely (leave blank) to delete an existing reminder instead of scheduling one.glean_debug_get_datasource_status#Retrieve a comprehensive status snapshot for a Glean datasource: bulk upload history, document and identity upload/index counts by object type, and the datasource's visibility setting.
Returns processing history for documents and identity data, counts of uploaded vs. indexed documents grouped by object type, and an enum showing whether the datasource is enabled for all users, a test group, or not enabled.
Use this as the primary health check for a custom datasource's indexing pipeline instead of the deprecated glean_get_document_count and glean_get_user_count, which each return only a single count.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.1 param
Retrieve a comprehensive status snapshot for a Glean datasource: bulk upload history, document and identity upload/index counts by object type, and the datasource's visibility setting. Returns processing history for documents and identity data, counts of uploaded vs. indexed documents grouped by object type, and an enum showing whether the datasource is enabled for all users, a test group, or not enabled. Use this as the primary health check for a custom datasource's indexing pipeline instead of the deprecated glean_get_document_count and glean_get_user_count, which each return only a single count. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.
datasourcestringrequiredThe short name of the custom datasource to fetch debug status for, exactly as configured in Glean's datasource setup (visible in the Glean admin console). Example: "myjira".glean_debug_get_document#Look up upload, indexing, and permission status for one document in a Glean datasource, identified by its object type and document ID.
Returns the document's upload and indexing status with timestamps, its permission-identity status, and the full uploaded-permissions record (allowed users, allowed groups, group intersections, and anonymous/all-datasource-users access flags).
Use this beta diagnostic endpoint to debug why a specific document isn't appearing in search or has unexpected permissions; use glean_debug_get_documents to check many documents at once, or glean_get_document_status for the older, status-only equivalent.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.3 params
Look up upload, indexing, and permission status for one document in a Glean datasource, identified by its object type and document ID. Returns the document's upload and indexing status with timestamps, its permission-identity status, and the full uploaded-permissions record (allowed users, allowed groups, group intersections, and anonymous/all-datasource-users access flags). Use this beta diagnostic endpoint to debug why a specific document isn't appearing in search or has unexpected permissions; use glean_debug_get_documents to check many documents at once, or glean_get_document_status for the older, status-only equivalent. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.
datasourcestringrequiredThe short name of the custom datasource the document belongs to, exactly as configured in Glean's datasource setup. Example: "myjira".doc_idstringrequiredThe document's unique ID within the datasource, exactly as it was set in the id field when the document was uploaded via the indexing API. Example: "TICKET-1234".object_typestringrequiredThe object type the document belongs to within the datasource's schema, exactly as it was set when the document was uploaded via the indexing API (e.g. "ticket", "issue", "page").glean_debug_get_document_events#Retrieve the lifecycle event history (uploads, indexing, deletion requests, and deletions) for one document in a Glean datasource.
Returns a list of lifecycle events, each with an event type (UPLOADED, INDEXED, DELETION_REQUESTED, or DELETED) and a timestamp, covering the requested time window.
Use this beta diagnostic endpoint to trace exactly when a document was uploaded, indexed, or removed; use glean_debug_get_document instead for the document's current status rather than its history. This endpoint is rate-limited to 1 request per minute per datasource.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.5 params
Retrieve the lifecycle event history (uploads, indexing, deletion requests, and deletions) for one document in a Glean datasource. Returns a list of lifecycle events, each with an event type (UPLOADED, INDEXED, DELETION_REQUESTED, or DELETED) and a timestamp, covering the requested time window. Use this beta diagnostic endpoint to trace exactly when a document was uploaded, indexed, or removed; use glean_debug_get_document instead for the document's current status rather than its history. This endpoint is rate-limited to 1 request per minute per datasource. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.
datasourcestringrequiredThe short name of the custom datasource the document belongs to, exactly as configured in Glean's datasource setup. Example: "myjira".doc_idstringrequiredThe document's unique ID within the datasource, exactly as it was set in the id field when the document was uploaded via the indexing API. Example: "TICKET-1234".object_typestringrequiredThe object type the document belongs to within the datasource's schema, exactly as it was set when the document was uploaded via the indexing API (e.g. "ticket", "issue", "page").max_eventsintegeroptionalThe maximum number of lifecycle events to return, up to 100. Defaults to 20 when omitted. Example: 50.start_datestringoptionalThe earliest date to include lifecycle events from, as an ISO 8601 date or datetime. Cannot be more than 30 days in the past. Defaults to 7 days ago when omitted. Example: "2026-08-01".glean_debug_get_documents#Look up upload, indexing, and permission status for a batch of up to 100 documents in a Glean datasource in a single call.
Returns a list of document statuses, each with its docId, objectType, upload/indexing status with timestamps, and the document's uploaded-permissions record.
Use this beta diagnostic endpoint when you need debug information for many documents at once; use glean_debug_get_document instead for a single document.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.2 params
Look up upload, indexing, and permission status for a batch of up to 100 documents in a Glean datasource in a single call. Returns a list of document statuses, each with its docId, objectType, upload/indexing status with timestamps, and the document's uploaded-permissions record. Use this beta diagnostic endpoint when you need debug information for many documents at once; use glean_debug_get_document instead for a single document. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.
datasourcestringrequiredThe short name of the custom datasource the documents belong to, exactly as configured in Glean's datasource setup. Example: "myjira".documentsarrayrequiredThe documents to check, as an array of up to 100 objects, each with an object_type and doc_id matching the values used when the document was uploaded via the indexing API. Example: [{"object_type": "ticket", "doc_id": "TICKET-1"}, {"object_type": "ticket", "doc_id": "TICKET-2"}].glean_debug_get_user#Look up upload status and group memberships for a specific user within a Glean datasource, identified by email.
Returns whether the user is active, their upload status and last-uploaded timestamp, and the list of groups they were uploaded as a member of via the permissions API.
Use this beta diagnostic endpoint to debug why a user is missing search results or seeing unexpected document permissions in a custom datasource.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.2 params
Look up upload status and group memberships for a specific user within a Glean datasource, identified by email. Returns whether the user is active, their upload status and last-uploaded timestamp, and the list of groups they were uploaded as a member of via the permissions API. Use this beta diagnostic endpoint to debug why a user is missing search results or seeing unexpected document permissions in a custom datasource. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource. This is a Beta endpoint and may change without notice.
datasourcestringrequiredThe short name of the custom datasource the user was uploaded to, exactly as configured in Glean's datasource setup. Example: "myjira".emailstringrequiredThe email address of the user to look up debug information for, exactly as it was uploaded to the datasource via the permissions API. Example: "jane@example.com".glean_delete_all_chats#Permanently delete every saved Chat owned by the current user, along with all of their conversational content.
Returns no content on success.
Use this to clear a user's entire chat history at once; use glean_delete_chats instead to remove only specific chats by id.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Permanently delete every saved Chat owned by the current user, along with all of their conversational content. Returns no content on success. Use this to clear a user's entire chat history at once; use glean_delete_chats instead to remove only specific chats by id. Requires a Glean connection with the target Glean instance's domain and an API token.
localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_delete_announcement#Delete an existing announcement in Glean by its ID.
Returns an empty success response once the announcement is removed.
Use this to retract an announcement created with glean_create_announcement; this action cannot be undone.
Requires a Glean connection with the target instance's domain and an API token.2 params
Delete an existing announcement in Glean by its ID. Returns an empty success response once the announcement is removed. Use this to retract an announcement created with glean_create_announcement; this action cannot be undone. Requires a Glean connection with the target instance's domain and an API token.
idintegerrequiredThe opaque ID of the announcement to delete. Example: 987654.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_answer#Delete an existing user-generated Answer in Glean by its Answer ID.
Returns an empty success response once the Answer is removed.
Use this to retract an Answer created with glean_create_answer; this action cannot be undone.
Requires a Glean connection with the target instance's domain and an API token.3 params
Delete an existing user-generated Answer in Glean by its Answer ID. Returns an empty success response once the Answer is removed. Use this to retract an Answer created with glean_create_answer; this action cannot be undone. Requires a Glean connection with the target instance's domain and an API token.
idintegerrequiredThe opaque ID of the Answer to delete. Example: 445566.doc_idstringoptionalThe Glean Document ID of the Answer, provided in addition to id for cases where it's also known. When both are available, the Answer ID (id) is what Glean actually uses to locate the Answer. Example: "ANSWER_445566".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_chat_files#Delete one or more files that a user previously uploaded to or that Glean generated during a Chat session.
Returns an empty success response once the files are removed.
Use this to clean up chat attachments or generated files you no longer need; use glean_get_chat_file to download a file's content instead of deleting it.
Requires the file IDs returned when the files were uploaded or generated in a prior chat turn.3 params
Delete one or more files that a user previously uploaded to or that Glean generated during a Chat session. Returns an empty success response once the files are removed. Use this to clean up chat attachments or generated files you no longer need; use glean_get_chat_file to download a file's content instead of deleting it. Requires the file IDs returned when the files were uploaded or generated in a prior chat turn.
file_idsarrayrequiredIDs of the chat files to delete. Each ID comes from a prior chat turn's upload response or a generated-file reference (for example, an image the assistant produced). Example: ["f_abc123", "f_def456"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC (e.g. -420 for PDT, which is 7 hours behind UTC). Used only for audit/logging purposes on this endpoint.glean_delete_chats#Permanently delete one or more specific saved Chats, along with their conversational content.
Returns no content on success.
Use this to remove selected chats by id; use glean_delete_all_chats instead to clear a user's entire chat history at once.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Permanently delete one or more specific saved Chats, along with their conversational content. Returns no content on success. Use this to remove selected chats by id; use glean_delete_all_chats instead to clear a user's entire chat history at once. Requires a Glean connection with the target Glean instance's domain and an API token.
chat_idsarrayrequiredA non-empty list of Chat ids to permanently delete, e.g. ids returned by glean_list_chats or the chatId from a previous glean_chat response. All conversational content in each listed chat is deleted along with it. Example: ["c1a2b3c4d5", "e6f7g8h9i0"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_delete_collection#Permanently delete one or more Collections in Glean by their IDs.
Returns an empty success response once the Collections are removed.
Use this to remove entire Collections; use glean_delete_collection_item to remove a single item from a Collection instead of deleting the whole thing.
Requires the Collection IDs from glean_create_collection or Glean's Collections UI.3 params
Permanently delete one or more Collections in Glean by their IDs. Returns an empty success response once the Collections are removed. Use this to remove entire Collections; use glean_delete_collection_item to remove a single item from a Collection instead of deleting the whole thing. Requires the Collection IDs from glean_create_collection or Glean's Collections UI.
collection_idsarrayrequiredThe IDs of the Collections to delete. Example: [12345, 67890].allowed_datasourcestringoptionalRestricts the deletion to Collections that hold items from this specific datasource (e.g. gdrive, confluence). Leave blank to allow deleting Collections regardless of their allowed datasource.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_collection_item#Remove a single item from an existing Glean Collection.
Returns the updated Collection object with the item removed.
Use this to remove one item while keeping the Collection itself; use glean_delete_collection to delete the whole Collection instead.
Requires the Collection ID and item ID, available from glean_add_collection_item's response or Glean's Collections UI.4 params
Remove a single item from an existing Glean Collection. Returns the updated Collection object with the item removed. Use this to remove one item while keeping the Collection itself; use glean_delete_collection to delete the whole Collection instead. Requires the Collection ID and item ID, available from glean_add_collection_item's response or Glean's Collections UI.
collection_idnumberrequiredThe ID of the Collection to remove an item from. Example: 12345.item_idstringrequiredThe item ID of the CollectionItem to remove from the Collection. Example: item_9f8e7d6c.document_idstringoptionalThe Glean Document ID of the item being removed, if the item is an indexed document. Only needed when the item's identity as a document (rather than a URL or text note) matters for the removal.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_custom_metadata_schema#Delete the schema definition for a Glean custom metadata group (field).
Returns a simple {success: true} acknowledgement; it does not delete existing metadata values already stored on documents.
Use this to remove a metadata FIELD definition entirely once it's no longer needed. Use the remove document custom metadata tool instead to clear just one document's value while keeping the schema intact.1 param
Delete the schema definition for a Glean custom metadata group (field). Returns a simple {success: true} acknowledgement; it does not delete existing metadata values already stored on documents. Use this to remove a metadata FIELD definition entirely once it's no longer needed. Use the remove document custom metadata tool instead to clear just one document's value while keeping the schema intact.
group_namestringrequiredName of the custom metadata group (field) whose schema definition to delete. Example: "priority".glean_delete_document#Remove a single document from Glean's index by its datasource, object type, and id.
Returns no response body; the call succeeds even if the document is already absent from the index.
Use this to remove one document. Use glean_bulk_index_documents instead when removing many documents at once by re-uploading the datasource's remaining contents.
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.4 params
Remove a single document from Glean's index by its datasource, object type, and id. Returns no response body; the call succeeds even if the document is already absent from the index. Use this to remove one document. Use glean_bulk_index_documents instead when removing many documents at once by re-uploading the datasource's remaining contents. This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringrequiredThe short name of the datasource that owns this document. Example: "my-wiki".document_idstringrequiredThe datasource-specific id of the document to remove from the index. Example: "doc-12345".object_typestringrequiredThe document's type within this datasource (e.g. "Case", "KnowledgeArticle"). Example: "KnowledgeArticle".versionintegeroptionalVersion number used for optimistic concurrency control. If omitted or 0, no version check is performed and the delete always applies. Example: 1.glean_delete_document_custom_metadata#Remove all custom metadata values for one metadata group from a single document in Glean's index.
Returns a simple {success: true} acknowledgement; it does not return the metadata that was removed.
Use this to clear a document-level metadata value; it deletes only the value stored on this document, not the group's schema definition. Use the delete custom metadata schema tool instead to remove the field definition itself.2 params
Remove all custom metadata values for one metadata group from a single document in Glean's index. Returns a simple {success: true} acknowledgement; it does not return the metadata that was removed. Use this to clear a document-level metadata value; it deletes only the value stored on this document, not the group's schema definition. Use the delete custom metadata schema tool instead to remove the field definition itself.
doc_idstringrequiredThe ID of the document to remove custom metadata from, matching the ID under which the document was indexed into Glean. Example: "jira-PROJ-1234".group_namestringrequiredName of the custom metadata group (field) whose value should be removed from this document. Example: "priority".glean_delete_employee#Delete an employee from Glean's indexed People directory by email.
Returns no response body on success; the call silently succeeds even if the employee is not currently indexed.
Use this to remove a single former or incorrect employee record; use glean_bulk_index_employees instead if you need to replace the entire employee directory at once.2 params
Delete an employee from Glean's indexed People directory by email. Returns no response body on success; the call silently succeeds even if the employee is not currently indexed. Use this to remove a single former or incorrect employee record; use glean_bulk_index_employees instead if you need to replace the entire employee directory at once.
employeeEmailstringrequiredThe email address of the employee to delete from Glean's indexed People directory. Example: "jane.doe@example.com".versionintegeroptionalVersion number for optimistic concurrency control. If provided and it doesn't match the currently stored version, the delete is rejected; if omitted or 0, no version check is performed. Example: 3.glean_delete_group#Delete a group from a Glean-indexed datasource's permission graph, along with every membership associated with that group.
Returns an empty success response, including when the group was already absent.
Use this to remove a group entirely, for example a deprovisioned team, from a datasource's permissions; use glean_delete_membership instead to remove just one member without deleting the group itself.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Delete a group from a Glean-indexed datasource's permission graph, along with every membership associated with that group. Returns an empty success response, including when the group was already absent. Use this to remove a group entirely, for example a deprovisioned team, from a datasource's permissions; use glean_delete_membership instead to remove just one member without deleting the group itself. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource the group should be removed from, matching the datasource name registered in Glean. Example: "myconfluence".group_namestringrequiredName of the group to delete from the datasource's permission graph. The call succeeds even if no such group exists. Example: "engineering-team".versionintegeroptionalVersion number used for optimistic concurrency control against the existing group record. Leave at 0 (the default) to skip version checking and always apply the delete.glean_delete_membership#Delete a single group membership from a Glean datasource, removing one user or nested group from a parent group.
Returns an empty success response, including when the membership was already absent.
Use this for one-off membership removal; use glean_delete_group or glean_delete_user instead when you need to remove all of a group's or user's memberships at once by deleting the group or user itself.
Requires a Glean connection with the target Glean instance's domain and an API token.5 params
Delete a single group membership from a Glean datasource, removing one user or nested group from a parent group. Returns an empty success response, including when the membership was already absent. Use this for one-off membership removal; use glean_delete_group or glean_delete_user instead when you need to remove all of a group's or user's memberships at once by deleting the group or user itself. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource the group and membership belong to, matching the datasource name registered in Glean. Example: "myconfluence".group_namestringrequiredName of the group in the datasource that the member should be removed from. Example: "engineering-team".member_group_namestringoptionalSet this to remove a nested group from the group, using that member group's name. Provide exactly one of member_user_id or member_group_name, never both. Example: "finance-team".member_user_idstringoptionalSet this to remove a user from the group, using the same email address or datasource-specific ID that was used to add them as a member. Provide exactly one of member_user_id or member_group_name, never both. Example: "alice@example.com".versionintegeroptionalVersion number used for optimistic concurrency control against the existing membership record. Leave at 0 (the default) to skip version checking and always apply the delete.glean_delete_pin#Remove an existing pin so its document no longer shows as a pinned result.
Returns an empty response on success.
Use this to permanently unpin a document; this cannot be undone, so confirm the pin id with glean_get_pin or glean_list_pins first if unsure.
Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.2 params
Remove an existing pin so its document no longer shows as a pinned result. Returns an empty response on success. Use this to permanently unpin a document; this cannot be undone, so confirm the pin id with glean_get_pin or glean_list_pins first if unsure. Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.
pin_idstringrequiredThe opaque id of the pin to remove, as returned by glean_create_pin or glean_list_pins. Example: "p_9f8c3a2b".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_shortcut#Permanently delete an existing user-generated Glean shortcut by its numeric ID.
Returns no content on success.
Use this to remove a go/ link you or your organization no longer wants; use glean_get_shortcut or glean_list_shortcuts first if you need to confirm the shortcut's ID before deleting.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Permanently delete an existing user-generated Glean shortcut by its numeric ID. Returns no content on success. Use this to remove a go/ link you or your organization no longer wants; use glean_get_shortcut or glean_list_shortcuts first if you need to confirm the shortcut's ID before deleting. Requires a Glean connection with the target Glean instance's domain and an API token.
idintegerrequiredThe opaque numeric ID of the shortcut to delete, as returned when the shortcut was created or by glean_get_shortcut / glean_list_shortcuts.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_delete_skill#Permanently delete a Glean skill and all of its versions by skill ID.
Returns no content on success; the skill and its entire version history are removed and cannot be recovered.
Use this only when you're certain the skill should be removed. Use Update Skill to disable a skill instead if you might need it again.
Requires a Glean connection with the target Glean instance's domain and an API token.1 param
Permanently delete a Glean skill and all of its versions by skill ID. Returns no content on success; the skill and its entire version history are removed and cannot be recovered. Use this only when you're certain the skill should be removed. Use Update Skill to disable a skill instead if you might need it again. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID to permanently delete, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".glean_delete_team#Delete a team from Glean's indexed People directory by its team ID.
Returns no response body on success once the team is removed.
Use this to remove a team that should no longer appear in Glean search results or org charts; use glean_index_team to update a team's details instead of deleting and recreating it.1 param
Delete a team from Glean's indexed People directory by its team ID. Returns no response body on success once the team is removed. Use this to remove a team that should no longer appear in Glean search results or org charts; use glean_index_team to update a team's details instead of deleting and recreating it.
idstringrequiredThe unique ID of the team to delete from Glean's indexed People directory — the same id used when the team was created with glean_index_team. Example: "team-platform".glean_delete_trigger#Permanently delete a trigger, stopping future webhook deliveries for it.
Returns no content on success.
Use glean_list_triggers to find the trigger_id first. This cannot be undone — use glean_create_trigger to set up a replacement if you need this trigger again.1 param
Permanently delete a trigger, stopping future webhook deliveries for it. Returns no content on success. Use glean_list_triggers to find the trigger_id first. This cannot be undone — use glean_create_trigger to set up a replacement if you need this trigger again.
trigger_idstringrequiredID of the trigger to delete. Obtain this from glean_list_triggers.glean_delete_user#Delete a user from a Glean-indexed datasource's permission graph, along with every group membership associated with that user.
Returns an empty success response, including when the user was already absent.
Use this to remove a person's permissions from a datasource entirely, for example after they leave the underlying system; use glean_delete_membership instead to remove just one membership without deleting the user.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Delete a user from a Glean-indexed datasource's permission graph, along with every group membership associated with that user. Returns an empty success response, including when the user was already absent. Use this to remove a person's permissions from a datasource entirely, for example after they leave the underlying system; use glean_delete_membership instead to remove just one membership without deleting the user. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource the user should be removed from, matching the datasource name registered in Glean. Example: "myconfluence".emailstringrequiredEmail address of the user to delete from the datasource's permission graph. The call succeeds even if no such user exists. Example: "alice@example.com".versionintegeroptionalVersion number used for optimistic concurrency control against the existing user record. Leave at 0 (the default) to skip version checking and always apply the delete.glean_get_action_pack_auth_status#Check whether the current user has already authorized the third-party tool behind a given Glean action pack.
Returns whether the user is authenticated and the action pack's authentication mechanism (per-user OAuth, admin-managed, or none required).
Use this before calling a tool from that action pack; if the user isn't authenticated, use glean_authorize_action_pack to start the OAuth flow.1 param
Check whether the current user has already authorized the third-party tool behind a given Glean action pack. Returns whether the user is authenticated and the action pack's authentication mechanism (per-user OAuth, admin-managed, or none required). Use this before calling a tool from that action pack; if the user isn't authenticated, use glean_authorize_action_pack to start the OAuth flow.
action_pack_idstringrequiredThe ID of the action pack to check authentication status for.glean_get_agent#Retrieve full details for one Glean agent by its ID.
Returns the agent's name, description, metadata, and capability flags (e.g. whether it supports message input or streaming output).
Use this once you already have an agent_id; use glean_agent_search first to find an agent by name.1 param
Retrieve full details for one Glean agent by its ID. Returns the agent's name, description, metadata, and capability flags (e.g. whether it supports message input or streaming output). Use this once you already have an agent_id; use glean_agent_search first to find an agent by name.
agent_idstringrequiredUnique ID of the Glean agent to retrieve, as returned by glean_agent_search's agent_id field. Example: "3f9c2b7a-4e21-4b8a-9c3d-1234567890ab".glean_get_agent_schemas#Retrieve the input and output JSON Schemas for a Glean agent, and optionally the tools it can invoke.
Returns the agent's name plus input_schema and output_schema (JSON Schema documents describing the fields it expects and returns), and, when requested, a list of the tools/actions available to it.
Call this before glean_run_agent to learn what fields belong in that tool's input object for input-form triggered agents.2 params
Retrieve the input and output JSON Schemas for a Glean agent, and optionally the tools it can invoke. Returns the agent's name plus input_schema and output_schema (JSON Schema documents describing the fields it expects and returns), and, when requested, a list of the tools/actions available to it. Call this before glean_run_agent to learn what fields belong in that tool's input object for input-form triggered agents.
agent_idstringrequiredUnique ID of the Glean agent whose schemas should be retrieved, as returned by glean_agent_search's agent_id field. Example: "3f9c2b7a-4e21-4b8a-9c3d-1234567890ab".include_toolsbooleanoptionalWhether to also include the list of tools/actions this agent can invoke in the response's tools array. Defaults to false (tools omitted) when not set.glean_get_answer#Retrieve a single user-generated Answer from Glean by its Answer ID or Glean Document ID.
Returns the Answer's question, answer text, author, verification state, likes, and collections, or an error if the caller lacks permission or the ID is invalid.
Use this when you already know which Answer you need; use glean_list_answers to browse a user's own Answers instead.
Requires a Glean connection with the target instance's domain and an API token.3 params
Retrieve a single user-generated Answer from Glean by its Answer ID or Glean Document ID. Returns the Answer's question, answer text, author, verification state, likes, and collections, or an error if the caller lacks permission or the ID is invalid. Use this when you already know which Answer you need; use glean_list_answers to browse a user's own Answers instead. Requires a Glean connection with the target instance's domain and an API token.
doc_idstringoptionalThe Glean Document ID of the Answer to fetch, used when the Answer ID isn't available. If both id and doc_id are given, using the Answer ID is preferred. Example: "ANSWER_445566".idintegeroptionalThe opaque ID of the Answer to fetch. Provide this or doc_id (at least one is required). Example: 445566.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_chat#Retrieve the full message history of one saved Chat between the current user and Glean Assistant.
Returns the chat's messages, the roles assigned on it, and a tracking token used for feedback reporting.
Use this to read back a specific chat's contents by id; use glean_list_chats instead to browse available chats without their conversational content.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Retrieve the full message history of one saved Chat between the current user and Glean Assistant. Returns the chat's messages, the roles assigned on it, and a tracking token used for feedback reporting. Use this to read back a specific chat's contents by id; use glean_list_chats instead to browse available chats without their conversational content. Requires a Glean connection with the target Glean instance's domain and an API token.
chat_idstringrequiredThe id of the Chat whose message history should be retrieved, e.g. the chatId from a previous glean_chat response or an id from glean_list_chats. Example: "c1a2b3c4d5".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_get_chat_application#Retrieve the configuration details of a custom Glean Chat application (AI App) by its id.
Returns the application's metadata as configured by a Glean admin.
Use this to look up how a specific Chat application is set up before referencing its id as the application_id in glean_chat.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Retrieve the configuration details of a custom Glean Chat application (AI App) by its id. Returns the application's metadata as configured by a Glean admin. Use this to look up how a specific Chat application is set up before referencing its id as the application_id in glean_chat. Requires a Glean connection with the target Glean instance's domain and an API token.
application_idstringrequiredThe id of the Chat application (AI App) to retrieve, as configured by a Glean admin (e.g. the same id you would pass as application_id to glean_chat). Example: "hr-assistant-app".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_get_chat_file#Download the raw bytes of a file that was uploaded to or generated by a Glean Chat session, such as an image the assistant produced.
Returns the file's binary content with a Content-Type header matching its MIME type, rather than JSON.
Use this to retrieve a chat file's actual content once you have its ID; use glean_delete_chat_files to remove chat files instead of fetching them.
Requires a file ID from a prior chat session's upload or generated-file reference.2 params
Download the raw bytes of a file that was uploaded to or generated by a Glean Chat session, such as an image the assistant produced. Returns the file's binary content with a Content-Type header matching its MIME type, rather than JSON. Use this to retrieve a chat file's actual content once you have its ID; use glean_delete_chat_files to remove chat files instead of fetching them. Requires a file ID from a prior chat session's upload or generated-file reference.
file_idstringrequiredIdentifier of the chat file to download, from a prior chat turn's upload response or a generated-file reference. Example: f_abc123.previewbooleanoptionalWhen true and the file is a PDF, the response is served for inline viewing (Content-Disposition: inline) instead of as a downloadable attachment. Has no effect on non-PDF files.glean_get_chat_files#Retrieve metadata for files previously uploaded for use in Glean Chat, by their file ids.
Returns a map of file id to its name, URL, MIME type, and upload/processing status (including a failure reason if processing failed).
Use this to check whether one or more uploaded files finished processing before referencing them as uploaded_file context in a glean_chat message.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Retrieve metadata for files previously uploaded for use in Glean Chat, by their file ids. Returns a map of file id to its name, URL, MIME type, and upload/processing status (including a failure reason if processing failed). Use this to check whether one or more uploaded files finished processing before referencing them as uploaded_file context in a glean_chat message. Requires a Glean connection with the target Glean instance's domain and an API token.
file_idsarrayrequiredIDs of previously uploaded Chat files to look up, e.g. the id values returned when a file is uploaded for use in Glean Chat. Example: ["f1a2b3c4", "g5h6i7j8"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_get_collection#Retrieve the details of a single Glean Collection by its numeric ID, optionally including its items or the top-level Collection in its hierarchy.
Returns the Collection's name, description, icon, item count, and — only when requested — its full item list and/or root ancestor Collection.
Use this to inspect one Collection you already have the ID for; use glean_list_collections to discover Collection IDs first.5 params
Retrieve the details of a single Glean Collection by its numeric ID, optionally including its items or the top-level Collection in its hierarchy. Returns the Collection's name, description, icon, item count, and — only when requested — its full item list and/or root ancestor Collection. Use this to inspect one Collection you already have the ID for; use glean_list_collections to discover Collection IDs first.
collection_idintegerrequiredThe numeric ID of the Collection to retrieve. Get this from glean_list_collections. Example: 42.allowed_datasourcestringoptionalRestrict the datasource type allowed in the returned Collection, for example "ANSWERS" for Collections representing answer boards. Leave unset to use the Collection's own configured datasource.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.with_hierarchybooleanoptionalIf true, also return the top-level Collection at the root of this Collection's hierarchy. Defaults to false when unset.with_itemsbooleanoptionalIf true, include the full list of items inside this Collection in the response. This is an expensive operation on large Collections — only request it when the item list is actually needed. Defaults to false (items omitted) when unset.glean_get_custom_metadata_schema#Retrieve the current schema definition for a Glean custom metadata group (field).
Returns an array of metadata key definitions, each with its display labels, property type (TEXT, DATE, INT, USERID, PICKLIST, or TEXTLIST), UI facet options, and indexing behavior.
Use this to inspect how a metadata FIELD is defined before setting or changing its values. Use the document custom metadata tools instead to read or write the actual value stored on a specific document.1 param
Retrieve the current schema definition for a Glean custom metadata group (field). Returns an array of metadata key definitions, each with its display labels, property type (TEXT, DATE, INT, USERID, PICKLIST, or TEXTLIST), UI facet options, and indexing behavior. Use this to inspect how a metadata FIELD is defined before setting or changing its values. Use the document custom metadata tools instead to read or write the actual value stored on a specific document.
group_namestringrequiredName of the custom metadata group (field) whose schema definition to retrieve. Example: "priority".glean_get_datasource_config#Fetch the stored configuration for one custom datasource registered in Glean's Indexing API.
Returns the datasource's full config object, including its category, URL regex, icon, object type definitions, and other schema settings.
Use this to inspect an existing datasource before updating it with glean_add_datasource, or to confirm a datasource was registered correctly.
Requires the datasource to already exist (create it first with glean_add_datasource).1 param
Fetch the stored configuration for one custom datasource registered in Glean's Indexing API. Returns the datasource's full config object, including its category, URL regex, icon, object type definitions, and other schema settings. Use this to inspect an existing datasource before updating it with glean_add_datasource, or to confirm a datasource was registered correctly. Requires the datasource to already exist (create it first with glean_add_datasource).
datasourcestringrequiredThe unique name of the custom datasource whose configuration you want to retrieve — the same value that was used as the name field when the datasource was created with glean_add_datasource. Example: "myjira".glean_get_document_count#Fetch the total document count for a specified custom Glean datasource.
Returns a single documentCount integer for the datasource.
This endpoint is deprecated — for richer diagnostics see glean_debug_get_datasource_status, which also returns upload/index counts by object type and bulk upload history. Use this tool only where the older count-only response shape is specifically required.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.1 param
Fetch the total document count for a specified custom Glean datasource. Returns a single documentCount integer for the datasource. This endpoint is deprecated — for richer diagnostics see glean_debug_get_datasource_status, which also returns upload/index counts by object type and bulk upload history. Use this tool only where the older count-only response shape is specifically required. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.
datasourcestringrequiredThe short name of the custom datasource to fetch the document count for, exactly as configured in Glean's datasource setup. Example: "myjira".glean_get_document_permissions#List the email addresses of every user who has permission to view a specific document that Glean has indexed.
Returns an array of user email addresses, or a single-element array containing "VISIBLE_TO_ALL" if the document is visible to every Glean user.
Use this to audit who can access a document before sharing it further; use glean_search or glean_get_documents first to find the document's Glean Document ID.2 params
List the email addresses of every user who has permission to view a specific document that Glean has indexed. Returns an array of user email addresses, or a single-element array containing "VISIBLE_TO_ALL" if the document is visible to every Glean user. Use this to audit who can access a document before sharing it further; use glean_search or glean_get_documents first to find the document's Glean Document ID.
document_idstringrequiredThe Glean Document ID identifying the document to check permissions for. Find this in the id field of a glean_search or glean_get_documents result. Example: "GLEAN_1a2b3c4d5e".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_document_status#Fetch the current upload and indexing status of one document in a custom Glean datasource, identified by object type and document ID.
Returns the document's upload status, indexing status, and their respective timestamps as epoch seconds.
This endpoint is deprecated — for richer diagnostics see glean_debug_get_document, which also returns the document's full permissions record. Use this tool only where the older status-only response shape is specifically required.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.3 params
Fetch the current upload and indexing status of one document in a custom Glean datasource, identified by object type and document ID. Returns the document's upload status, indexing status, and their respective timestamps as epoch seconds. This endpoint is deprecated — for richer diagnostics see glean_debug_get_document, which also returns the document's full permissions record. Use this tool only where the older status-only response shape is specifically required. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.
datasourcestringrequiredThe short name of the custom datasource the document belongs to, exactly as configured in Glean's datasource setup. Example: "myjira".doc_idstringrequiredThe document's unique ID within the datasource, exactly as it was set in the id field when the document was uploaded via the indexing API. Example: "TICKET-1234".object_typestringrequiredThe object type the document belongs to within the datasource's schema, exactly as it was set when the document was uploaded via the indexing API (e.g. "ticket", "issue", "page").glean_get_documents#Retrieve one or more documents Glean has indexed, by Glean Document ID, URL, or user-generated-content reference (Announcements, Answers, Collections, Shortcuts, Chats).
Returns a map keyed by the document specifier you passed in, where each value is either the document's title, url, datasource, content, and metadata, or an error if that document wasn't found.
Use this to fetch full details for documents you already have identifiers for; use glean_search to discover documents by keyword first.3 params
Retrieve one or more documents Glean has indexed, by Glean Document ID, URL, or user-generated-content reference (Announcements, Answers, Collections, Shortcuts, Chats). Returns a map keyed by the document specifier you passed in, where each value is either the document's title, url, datasource, content, and metadata, or an error if that document wasn't found. Use this to fetch full details for documents you already have identifiers for; use glean_search to discover documents by keyword first.
document_specsarrayrequiredArray of document specifiers identifying which documents to retrieve. Each entry identifies exactly one document, using one of these shapes: by Glean Document ID, e.g. {"id": "GLEAN_1a2b3c4d5e"}; by URL, e.g. {"url": "https://docs.example.com/page"}; or, for user-generated content such as Announcements, Answers, Collections, or Shortcuts, by a numeric content ID plus its type, e.g. {"contentId": 42, "ugcType": "COLLECTIONS"}; or, for Chats, by a string ID plus its type, e.g. {"ugcId": "chat_abc", "ugcType": "CHATS"}. Example: [{"id": "GLEAN_1a2b3c4d5e"}, {"url": "https://docs.example.com/page"}].include_fieldsarrayoptionalAdditional document fields to return that aren't included by default, such as view/visitor counts, recent shares, full document content, or custom metadata. Example: ["DOCUMENT_CONTENT"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_documents_by_facets#Find documents Glean has indexed that match one or more structured facet filter sets, such as document type or owner, without a free-text search query.
Returns a list of matching documents with metadata and full-text content, ordered by score, plus hasMoreResults and a cursor for fetching further pages.
Use this instead of glean_search when you want to filter purely by structured facets rather than by keyword.4 params
Find documents Glean has indexed that match one or more structured facet filter sets, such as document type or owner, without a free-text search query. Returns a list of matching documents with metadata and full-text content, ordered by score, plus hasMoreResults and a cursor for fetching further pages. Use this instead of glean_search when you want to filter purely by structured facets rather than by keyword.
filter_setsarrayrequiredA list of facet filter sets that are OR'd together; the sets in the list are alternatives, and a document matching any one of them is returned. Within a single set, filters are AND'd together. Each filter is an object with a fieldName (the facet to filter on, e.g. "type" or "owner") and a values array of {"value": ..., "relationType": "EQUALS"} objects (relationType can also be "LT"/"GT" for date ranges). Example: [{"filters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}]}]}].cursorstringoptionalOpaque pagination cursor from a previous response's top-level cursor field. Pass it back to fetch the next page of results for the same filter sets. Omit for the first page.datasources_filterarrayoptionalRestrict results to one or more datasources by their short name (e.g. gmail, slack, confluence, jira, github, gdrive). All datasources are searched if omitted. Example: ["slack", "confluence"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_feed#Fetch the personalized Glean feed/home content for the authenticated user, such as document suggestions, trending items, mentions, and calendar events.
Returns a list of feed entries grouped by category, each with a primary entry (and any secondary entries) plus optional facet metadata.
Use this to surface a user's personalized homepage content; use glean_search for keyword search or glean_recommend_documents to find content similar to one document.
Requires a Glean connection with the target instance's domain and an API token.5 params
Fetch the personalized Glean feed/home content for the authenticated user, such as document suggestions, trending items, mentions, and calendar events. Returns a list of feed entries grouped by category, each with a primary entry (and any secondary entries) plus optional facet metadata. Use this to surface a user's personalized homepage content; use glean_search for keyword search or glean_recommend_documents to find content similar to one document. Requires a Glean connection with the target instance's domain and an API token.
refresh_typestringrequiredThe kind of feed refresh being requested by the client, as defined by Glean's Feed API (e.g. an initial full load versus loading more/incremental items). Check your Glean instance's Feed API documentation for the exact accepted value strings. Example: "INITIAL".result_sizeintegerrequiredNumber of feed results requested. A result that is a collection (e.g. a carousel) counts as one. Example: 10.categoriesarrayoptionalRestrict the feed to specific content categories (e.g. DOCUMENT_SUGGESTION, TRENDING_DOCUMENT, EVENT, ANNOUNCEMENT, MENTION, RECENT, DAILY_DIGEST). Acts as an allowlist so categories can be requested individually or together; all supported categories are returned if omitted. Example: ["RECENT", "MENTION"].datasource_filterarrayoptionalRestrict feed content to one or more datasources by their short name (e.g. gmail, gdrive, confluence). All datasources are considered if omitted. Example: ["gdrive"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_insights#Fetch aggregate usage insights — the data shown in Glean's Insights Dashboards — for Search/Assistant activity, Agents, or MCP usage, optionally broken down by department, manager, or MCP tool/server.
Returns dashboard-specific metrics such as active-user counts, usage timeseries, and per-user, per-agent, or per-tool breakdowns for whichever request sections you populate; sections you omit are left out of the response.
Populate the overview, assistant, agents, mcp, or mcp-breakdown request objects to select which dashboard(s) to pull data for.
Requires Glean Insights admin access on the connected account.7 params
Fetch aggregate usage insights — the data shown in Glean's Insights Dashboards — for Search/Assistant activity, Agents, or MCP usage, optionally broken down by department, manager, or MCP tool/server. Returns dashboard-specific metrics such as active-user counts, usage timeseries, and per-user, per-agent, or per-tool breakdowns for whichever request sections you populate; sections you omit are left out of the response. Populate the overview, assistant, agents, mcp, or mcp-breakdown request objects to select which dashboard(s) to pull data for. Requires Glean Insights admin access on the connected account.
agents_requestobjectoptionalConfiguration for the Agents insights dashboard: {"agentIds": [...], "departments": [...], "managerEmails": [...], "dayRange": {"start": {...}, "end": {...}}}. An empty or omitted agentIds means all agents. Leave unset to skip this dashboard.assistant_requestobjectoptionalConfiguration for the Assistant (chat) insights dashboard, using the same shape as overview_request: {"departments": [...], "managerEmails": [...], "dayRange": {"start": {...}, "end": {...}}}. Leave unset to skip this dashboard.disable_per_user_insightsbooleanoptionalIf true, suppresses the generation of per-user insight breakdowns in the response, which can reduce response size for large organizations. Defaults to false.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.mcp_breakdown_requestobjectoptionalConfiguration for a detailed MCP breakdown by users, host applications, tools, or servers: {"departments": [...], "managerIds": [...], "managerEmails": [...], "dayRange": {"start": {...}, "end": {...}}, "breakdownType": "TOOLS", "hostApplications": [...], "tools": [...], "servers": [...]}. breakdownType must be one of USERS, HOST_APPLICATIONS, TOOLS, or SERVERS. Leave unset to skip this dashboard.mcp_requestobjectoptionalConfiguration for the MCP usage insights dashboard: {"departments": [...], "managerIds": [...], "managerEmails": [...], "dayRange": {"start": {...}, "end": {...}}}. Leave unset to skip this dashboard.overview_requestobjectoptionalConfiguration for the Search overview dashboard: which departments and managers' teams to filter by, and the day range to report over. Shape: {"departments": ["Engineering"], "managerEmails": ["vp@company.com"], "dayRange": {"start": {...}, "end": {...}}} — any of these keys can be omitted to use Glean's defaults. Leave this whole field unset to skip the overview dashboard entirely.glean_get_messages#Retrieve messages from a Slack, Microsoft Teams, Google Chat, Workplace, or Slack Enterprise Grid channel, thread, or conversation that Glean has indexed.
Returns a hasMore flag plus the matching messages (as search-style results with text, url, and timestamps), and — if requested — the thread's root message.
Use this to read the content of a specific channel, thread, or conversation you already have an ID for; use glean_search to find that ID by keyword first.9 params
Retrieve messages from a Slack, Microsoft Teams, Google Chat, Workplace, or Slack Enterprise Grid channel, thread, or conversation that Glean has indexed. Returns a hasMore flag plus the matching messages (as search-style results with text, url, and timestamps), and — if requested — the thread's root message. Use this to read the content of a specific channel, thread, or conversation you already have an ID for; use glean_search to find that ID by keyword first.
datasourcestringrequiredThe messaging datasource the channel/thread/conversation belongs to. Example: "SLACK".idstringrequiredThe identifier of the channel, thread, or conversation to read messages from. Its meaning depends on id_type: for CHANNEL_NAME or THREAD_ID this is the underlying messaging platform's own channel/thread ID; for CONVERSATION_ID this is the Glean Document ID of the indexed conversation. Example: "C0123456789".id_typestringrequiredThe kind of identifier passed in id: CHANNEL_NAME for a channel, THREAD_ID for a specific thread, or CONVERSATION_ID for a Glean-indexed conversation document. Example: "THREAD_ID".datasource_instance_display_namestringoptionalFor datasources with more than one connected instance, the display name of the specific instance to read from (used as the appinstance facet filter). Leave unset to search across all instances of this datasource.directionstringoptionalDirection to page relative to timestamp_millis: OLDER returns messages sent before it, NEWER returns messages sent after it. Only meaningful when timestamp_millis is also set; defaults to OLDER when omitted.include_root_messagebooleanoptionalIf true, include the thread's or conversation's root/parent message in the response's rootMessage field. Defaults to false.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timestamp_millisintegeroptionalUnix timestamp in milliseconds of a reference message; used together with direction to page forward or backward from that point in the conversation. Omit to start from the most recent messages. Example: 1717000000000.workspace_idstringoptionalID of the specific workspace to read from, needed only when your organization has more than one workspace connected for this datasource (for example, multiple Slack workspaces). Example: "T0123456789".glean_get_people#Retrieve directory profile details for one or more people by their Glean person ID or email address, or for the current user if none are given.
Returns each person's name, title, department, manager, contact info, and other profile metadata, plus a list of any IDs that could not be found.
Use this when you already have specific person IDs or emails; use glean_list_entities to search or browse the directory instead.
Requires a Glean connection with the target Glean instance's domain and an API token.7 params
Retrieve directory profile details for one or more people by their Glean person ID or email address, or for the current user if none are given. Returns each person's name, title, department, manager, contact info, and other profile metadata, plus a list of any IDs that could not be found. Use this when you already have specific person IDs or emails; use glean_list_entities to search or browse the directory instead. Requires a Glean connection with the target Glean instance's domain and an API token.
email_idsarrayoptionalEmail addresses of the people to look up. The result is the deduplicated union of people found via email_ids and obfuscated_ids. Example: ["alice@example.com"].include_fieldsarrayoptionalExtra profile fields to include beyond what's returned by default, such as BADGES, PEOPLE_DISTANCE, or PERMISSIONS. Leave empty to receive only the default fields. Example: ["BADGES", "PEOPLE_DISTANCE"].include_typesarrayoptionalExtra categories of people to include in the response beyond those matching the requested IDs: PEOPLE_WITHOUT_MANAGER also returns everyone without a manager, and INVALID_ENTITIES includes entries for any requested IDs that weren't valid. Example: ["PEOPLE_WITHOUT_MANAGER"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.obfuscated_idsarrayoptionalThe opaque Glean person IDs to look up, as returned by glean_search, glean_list_entities, or a prior call to this tool. If both obfuscated_ids and email_ids are omitted, the current authenticated user's own details are returned. Example: ["abc123XYZ"].sourcestringoptionalA string identifying the calling surface, used only for internal logging/attribution. Most callers can leave this empty.timezone_offsetintegeroptionalThe calling client's timezone offset from UTC, in minutes (e.g. -420 for Pacific Daylight Time). Used to localize any time-based fields in the response. Leave empty if this doesn't matter for your use case.glean_get_person_photo#Download the profile photo for a person whose photo is stored in Glean (crawled from an identity source, or uploaded via the admin console), identified by their person ID.
Returns the raw image bytes of the photo (PNG or JPEG), not a JSON object.
Use this only for photos Glean itself hosts; for externally-hosted photos (e.g. a Slack CDN), follow the photoUrl field returned by glean_get_people or glean_list_entities directly instead of calling this tool.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Download the profile photo for a person whose photo is stored in Glean (crawled from an identity source, or uploaded via the admin console), identified by their person ID. Returns the raw image bytes of the photo (PNG or JPEG), not a JSON object. Use this only for photos Glean itself hosts; for externally-hosted photos (e.g. a Slack CDN), follow the photoUrl field returned by glean_get_people or glean_list_entities directly instead of calling this tool. Requires a Glean connection with the target Glean instance's domain and an API token.
person_idstringrequiredThe obfuscated Glean person ID whose photo to retrieve, as returned by glean_get_people, glean_list_entities, or glean_search.dsstringoptionalOptional datasource override to use when resolving a crawled photo (e.g. AZURE, GDRIVE, OKTA). When omitted, the datasource is derived from the person's stored photo URL or the deployment's primary person datasource.glean_get_pin#Read the details of a single pin by its pin id.
Returns the pin's document id, queries, audience filters, and who created/last updated it.
Use this to inspect one specific pin; use glean_list_pins to browse all pins and find the id you need first.
Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.2 params
Read the details of a single pin by its pin id. Returns the pin's document id, queries, audience filters, and who created/last updated it. Use this to inspect one specific pin; use glean_list_pins to browse all pins and find the id you need first. Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.
pin_idstringrequiredThe opaque id of the pin to fetch, as returned by glean_create_pin or glean_list_pins. Example: "p_9f8c3a2b".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_shortcut#Look up a single Glean shortcut's details by its numeric ID or by its alias.
Returns the shortcut's alias, destination URL, description, and ownership/role metadata.
Use this to check one specific shortcut; use glean_list_shortcuts to browse or search shortcuts you own or can edit.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
Look up a single Glean shortcut's details by its numeric ID or by its alias. Returns the shortcut's alias, destination URL, description, and ownership/role metadata. Use this to check one specific shortcut; use glean_list_shortcuts to browse or search shortcuts you own or can edit. Requires a Glean connection with the target Glean instance's domain and an API token.
aliasstringoptionalThe shortcut's alias (the text following go/), including any arguments for a variable shortcut. Provide either alias or id, not both. Example: "team-wiki".idintegeroptionalThe opaque numeric ID of the shortcut to look up. Provide either id or alias, not both. Example: 482913.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_get_skill#Retrieve metadata for a single Glean skill by its skill ID.
Returns the skill's display name, description, status, origin, owner, source provenance (for GitHub-imported skills), and creation/update timestamps.
Use this to check a specific skill's current state before updating, deleting, or syncing it. Use List Skill Versions to see its version history instead.
Requires a Glean connection with the target Glean instance's domain and an API token.1 param
Retrieve metadata for a single Glean skill by its skill ID. Returns the skill's display name, description, status, origin, owner, source provenance (for GitHub-imported skills), and creation/update timestamps. Use this to check a specific skill's current state before updating, deleting, or syncing it. Use List Skill Versions to see its version history instead. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID to look up, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".glean_get_skill_content#Download the latest installable content bundle for a Glean skill by skill ID.
Returns the raw bundle bytes rather than a JSON object — depending on how the skill was authored this is a SKILL.md file, a .zip archive, or a .skill package (served as application/octet-stream).
Use this to fetch a skill's actual instructions/code for inspection or re-upload; use Get Skill instead if you only need its metadata.
Requires a Glean connection with the target Glean instance's domain and an API token.1 param
Download the latest installable content bundle for a Glean skill by skill ID. Returns the raw bundle bytes rather than a JSON object — depending on how the skill was authored this is a SKILL.md file, a .zip archive, or a .skill package (served as application/octet-stream). Use this to fetch a skill's actual instructions/code for inspection or re-upload; use Get Skill instead if you only need its metadata. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID whose latest content bundle should be downloaded, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".glean_get_skill_version#Retrieve metadata for one specific major version of a Glean skill.
Returns that version's major and minor number, whether it's the latest, who created it, source provenance (for GitHub-imported skills), and timestamps.
Use this to inspect a particular historical version once you know its number. Use List Skill Versions first to find the version number you need.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Retrieve metadata for one specific major version of a Glean skill. Returns that version's major and minor number, whether it's the latest, who created it, source provenance (for GitHub-imported skills), and timestamps. Use this to inspect a particular historical version once you know its number. Use List Skill Versions first to find the version number you need. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID the version belongs to, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".versionintegerrequiredThe major version number to retrieve, as returned by List Skill Versions. Must be 1 or greater. Example: 2.glean_get_skill_version_content#Download the installable content bundle for one specific version of a Glean skill.
Returns the raw bundle bytes for that version rather than a JSON object — depending on how the skill was authored this is a SKILL.md file, a .zip archive, or a .skill package (served as application/octet-stream).
Use this to retrieve an exact historical version's content once you know its version number. Use Download Skill Content instead if you just want the latest version.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Download the installable content bundle for one specific version of a Glean skill. Returns the raw bundle bytes for that version rather than a JSON object — depending on how the skill was authored this is a SKILL.md file, a .zip archive, or a .skill package (served as application/octet-stream). Use this to retrieve an exact historical version's content once you know its version number. Use Download Skill Content instead if you just want the latest version. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID the version belongs to, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".versionintegerrequiredThe major version number whose content bundle should be downloaded, as returned by List Skill Versions. Must be 1 or greater. Example: 2.glean_get_tool_server_auth_status#Check the current user's authentication status and display info for a Glean tool server.
Returns the server's display name, logo, description, authentication status (awaiting auth or authorized), and authentication mechanism.
Use this before calling tools hosted on that server; if the user isn't authorized, use glean_authorize_tool_server to start the OAuth flow.1 param
Check the current user's authentication status and display info for a Glean tool server. Returns the server's display name, logo, description, authentication status (awaiting auth or authorized), and authentication mechanism. Use this before calling tools hosted on that server; if the user isn't authorized, use glean_authorize_tool_server to start the OAuth flow.
server_idstringrequiredThe ID of the tool server to check authentication status for.glean_get_tool_server_tools#Look up the definitions (name, description, and JSON input schema) for one or more named tools on a Glean tool server.
Returns each found tool's server id, name, display name, description, input schema, and behavioral annotations, plus a list of any requested names that don't exist on that server.
Use this to inspect a tool's schema before invoking it through a Glean agent or tool-calling flow; pass serverId "native" for Glean's built-in tools.
Requires a Glean connection with the target instance's domain and an API token.2 params
Look up the definitions (name, description, and JSON input schema) for one or more named tools on a Glean tool server. Returns each found tool's server id, name, display name, description, input schema, and behavioral annotations, plus a list of any requested names that don't exist on that server. Use this to inspect a tool's schema before invoking it through a Glean agent or tool-calling flow; pass serverId "native" for Glean's built-in tools. Requires a Glean connection with the target instance's domain and an API token.
server_idstringrequiredIdentifier of the tool server to query. Use the literal value "native" for Glean's built-in tools, or the id of a specific tool pack / connected MCP server. Example: "native".tool_namesarrayrequiredNames of the tools to fetch definitions for on this server, as a JSON array of strings (maximum 100 entries). Matching is case-insensitive and treats hyphens and underscores as equivalent. Names that don't exist on the server are reported back separately rather than failing the whole request. Example: ["search", "read_document"].glean_get_trigger#Retrieve a single trigger owned by the authenticated caller by its id.
Returns the trigger's id, source preset id, optional description, status (ENABLED or DISABLED), input values, delivery webhook configuration, and timestamps.
Use glean_list_triggers first if you don't already know the trigger_id.
Requires a Glean connection with the target instance's domain and an API token.1 param
Retrieve a single trigger owned by the authenticated caller by its id. Returns the trigger's id, source preset id, optional description, status (ENABLED or DISABLED), input values, delivery webhook configuration, and timestamps. Use glean_list_triggers first if you don't already know the trigger_id. Requires a Glean connection with the target instance's domain and an API token.
trigger_idstringrequiredID of the trigger to retrieve. Obtain this from glean_list_triggers.glean_get_trigger_preset#Retrieve a single trigger preset by id, including the input fields it accepts.
Returns the preset's id, datasource, display name, description, and an array of input field definitions the preset expects when a trigger is created from it.
Use this to see what inputs a preset needs before calling glean_create_trigger. Use glean_list_trigger_presets to browse presets by datasource first.
Requires a Glean connection with the target instance's domain and an API token.1 param
Retrieve a single trigger preset by id, including the input fields it accepts. Returns the preset's id, datasource, display name, description, and an array of input field definitions the preset expects when a trigger is created from it. Use this to see what inputs a preset needs before calling glean_create_trigger. Use glean_list_trigger_presets to browse presets by datasource first. Requires a Glean connection with the target instance's domain and an API token.
preset_idstringrequiredID of the trigger preset to retrieve. Obtain this from glean_list_trigger_presets.glean_get_user_count#Fetch the total user count for a specified custom Glean datasource.
Returns a single userCount integer for the datasource.
This endpoint is deprecated — for richer diagnostics see glean_debug_get_datasource_status, which also returns identity upload/index counts and bulk upload history. Use this tool only where the older count-only response shape is specifically required.
Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.1 param
Fetch the total user count for a specified custom Glean datasource. Returns a single userCount integer for the datasource. This endpoint is deprecated — for richer diagnostics see glean_debug_get_datasource_status, which also returns identity upload/index counts and bulk upload history. Use this tool only where the older count-only response shape is specifically required. Requires a Glean connection with the target instance's domain and an API token with indexing access for the datasource.
datasourcestringrequiredThe short name of the custom datasource to fetch the user count for, exactly as configured in Glean's datasource setup. Example: "myjira".glean_import_skill#Import one or more skills into Glean directly from resolved GitHub source URLs.
Returns the newly persisted skills, each with its id, display name, description, version numbers, status, owner, and source provenance, in the same order as the input URLs.
Use this once you have exact skill source URLs to persist; the whole import is all-or-nothing, so if any URL fails to fetch or validate none of the skills are created.
Run glean_preview_skill_source first if you only have a repository or directory URL and need to see which skills it contains before importing them.1 param
Import one or more skills into Glean directly from resolved GitHub source URLs. Returns the newly persisted skills, each with its id, display name, description, version numbers, status, owner, and source provenance, in the same order as the input URLs. Use this once you have exact skill source URLs to persist; the whole import is all-or-nothing, so if any URL fails to fetch or validate none of the skills are created. Run glean_preview_skill_source first if you only have a repository or directory URL and need to see which skills it contains before importing them.
source_urlsarrayrequiredResolved GitHub URLs for the skills to import, exactly as returned by glean_preview_skill_source's skills[].source_url field (a skill directory, a SKILL.md file, or, for a single-skill repository, the repository URL itself). Must contain 1 to 100 unique URLs. Example: ["https://github.com/acme/skills/tree/main/incident-summarizer"].glean_index_document#Add a single document to Glean's index, or update it if a document with the same datasource and id already exists.
Returns no response body; a successful call confirms the document was accepted for indexing.
Use this to index or update one document immediately. Use glean_index_documents to push several documents in one call, or glean_bulk_index_documents when replacing an entire datasource's contents across paginated batches.
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.20 params
Add a single document to Glean's index, or update it if a document with the same datasource and id already exists. Returns no response body; a successful call confirms the document was accepted for indexing. Use this to index or update one document immediately. Use glean_index_documents to push several documents in one call, or glean_bulk_index_documents when replacing an entire datasource's contents across paginated batches. This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringrequiredThe short name of the custom datasource this document belongs to (as set up in the Glean admin console). Example: "my-wiki".additional_urlsarrayoptionalAdditional URL variations that also resolve to this document, beyond the main view URL. Example: ["https://wiki.example.com/roadmap"].authorobjectoptionalThe document's author. How to identify the person by email, a datasource-specific user id, and/or display name. Set at least email or a datasource user id. Example: {"email": "alice@example.com", "name": "Alice Smith"}.bodyobjectoptionalThe document's full body content. The content, as either plain text or base64-encoded binary. Set mimeType (e.g. text/plain or text/html), and either textContent for text-based sources or binaryContent (base64) for non-text formats — not both. Example: {"mimeType": "text/plain", "textContent": "Quarterly roadmap notes..."}.containerstringoptionalDisplay name of the container (e.g. a folder) that holds this document's content, if applicable. Example: "Engineering Docs".container_datasource_idstringoptionalThe datasource-specific id of the container identified in "container". Example: "folder-987".container_object_typestringoptionalThe object type of the container named above (e.g. "Folder"). Must not contain spaces or underscores. Example: "Folder".created_atintegeroptionalThe document's creation time, as an integer number of epoch seconds. Example: 1700000000.custom_propertiesarrayoptionalExtra metadata attached to the document, surfaced as search facets/operators in Glean. Each entry needs a name and a value (a string, a number for INT-typed properties, or an array of strings — not a boolean). Example: [{"name": "priority", "value": "P1"}].document_idstringoptionalThe datasource-specific id for this document. Case-insensitive, at most 200 characters. Required in practice for any datasource created after March 1, 2025. Example: "doc-12345".filenamestringoptionalSource filename for this document's content. Used as a fallback title when no explicit title is given and one can't be extracted from the content. Set this when the content came from a file. Example: "roadmap-q3.docx".object_typestringoptionalThe document's type within this datasource, used for grouping and facets (e.g. "Case", "KnowledgeArticle"). Must not contain spaces or underscores. Example: "KnowledgeArticle".ownerobjectoptionalThe document's current owner, if not the author. How to identify the person by email, a datasource-specific user id, and/or display name. Set at least email or a datasource user id. Example: {"email": "alice@example.com", "name": "Alice Smith"}.permissionsobjectoptionalControls which Glean users can see this document. Provide allowedUsers (a list of {email, datasourceUserId, name} objects) and/or allowedGroups (a list of group names) to grant access to specific people or groups; allowedGroupIntersections lets you require membership in every group within each listed set (an OR across multiple ANDed sets). Set allowAnonymousAccess to true to let every Glean user view it, or allowAllDatasourceUsersAccess to let anyone with an account in this datasource view it. Example: {"allowedUsers": [{"email": "alice@example.com"}], "allowedGroups": ["engineering"], "allowAnonymousAccess": false}.summaryobjectoptionalShort summary content for the document. The content, as either plain text or base64-encoded binary. Set mimeType (e.g. text/plain or text/html), and either textContent for text-based sources or binaryContent (base64) for non-text formats — not both. Example: {"mimeType": "text/plain", "textContent": "Quarterly roadmap notes..."}.tagsarrayoptionalLabels to attach to the document for organization and filtering. Example: ["roadmap", "q3"].titlestringoptionalPlain-text document title. If not supplied, Glean attempts to extract a title from the document's content. Example: "Q3 Roadmap Planning".updated_atintegeroptionalThe document's last-updated time, as an integer number of epoch seconds. Example: 1700003600.versionintegeroptionalVersion number used for optimistic concurrency control on this document. If omitted or 0, no version check is performed and the write always applies. Example: 1.view_urlstringoptionalThe permalink for viewing this document. Required for most datasources, but not required when the datasource is used purely to push custom entities. Example: "https://wiki.example.com/roadmap-q3".glean_index_documents#Add or update a batch of documents in a Glean datasource in a single call, without affecting any other documents already indexed there.
Returns no response body; a successful call confirms the batch was accepted for indexing.
Use this for a one-off push of a modest number of documents. Use glean_index_document for a single document, or glean_bulk_index_documents when you need to fully replace a datasource's contents across paginated batches (including deleting documents no longer present).
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.3 params
Add or update a batch of documents in a Glean datasource in a single call, without affecting any other documents already indexed there. Returns no response body; a successful call confirms the batch was accepted for indexing. Use this for a one-off push of a modest number of documents. Use glean_index_document for a single document, or glean_bulk_index_documents when you need to fully replace a datasource's contents across paginated batches (including deleting documents no longer present). This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringrequiredThe short name of the custom datasource all documents in this batch belong to. Example: "my-wiki".documentsarrayrequiredBatch of documents to add or update in this datasource, as a JSON array. Each entry describes one indexable document and needs at least a datasource. Common fields per document: id (the datasource-specific document id), title, viewURL (the permalink), objectType, summary/body (content objects with a mimeType plus textContent or binaryContent), author/owner (who created/owns it), permissions (who can view it), tags, and customProperties. Example: [{"datasource": "my-wiki", "id": "doc-1", "title": "Runbook", "viewURL": "https://wiki.example.com/runbook", "body": {"mimeType": "text/plain", "textContent": "Steps to..."}}].upload_idstringoptionalAn optional identifier for this batch, used to identify and track the upload. Example: "batch-2024-05-01".glean_index_employee#Add a new employee or replace the existing indexed record for an employee in Glean's People directory.
Returns no response body on success; the employee's profile is created or fully overwritten.
Use this to index or update a single employee; use glean_bulk_index_employees to replace the entire employee directory in one paginated operation instead.18 params
Add a new employee or replace the existing indexed record for an employee in Glean's People directory. Returns no response body on success; the employee's profile is created or fully overwritten. Use this to index or update a single employee; use glean_bulk_index_employees to replace the entire employee directory in one paginated operation instead.
departmentstringrequiredThe organizational unit the employee belongs to, where everyone typically shares a similar function (e.g. Engineering, Sales, Finance). Example: "Engineering".emailstringrequiredThe employee's work email address, used as the primary identifier for this record when creating or updating it. Example: "jane.doe@example.com".biostringoptionalA short biography or personal mission statement shown on the employee's Glean profile. Example: "Loves distributed systems and good coffee."businessUnitstringoptionalThe highest-level organizational unit the employee belongs to; typically only meaningful for larger companies with multiple distinct businesses. Example: "Cloud Division".employee_extra_jsonobjectoptionalAdvanced passthrough for employee fields not broken out above, merged directly into the employee object sent to Glean. Use this for things like the employee's internal ID and manager ID (for building manager relationships independent of email), datasource profiles (e.g. Slack or GitHub handles), team memberships, structured location details, social network links, other known names, or additional custom fields. Example: {"id": "emp-123", "managerId": "emp-100", "teams": [{"id": "team-1", "name": "Platform"}]}.endDatestringoptionalIf this is a former employee, their last date of employment, in YYYY-MM-DD format. Example: "2026-06-30".firstNamestringoptionalThe employee's first name. Cannot be an empty string if provided. Example: "Jane".lastNamestringoptionalThe employee's last name. Cannot be an empty string if provided. Example: "Doe".managerEmailstringoptionalThe email address of this employee's manager, used to build reporting-line relationships in Glean's org chart. Example: "manager@example.com".phoneNumberstringoptionalThe employee's phone number, in any format your organization uses. Example: "+1-555-0100".photoUrlstringoptionalA URL to the employee's profile photo. Example: "https://example.com/photos/jane-doe.jpg".preferredNamestringoptionalThe employee's preferred name or nickname, shown instead of their legal first name where applicable. Example: "JD".pronounstringoptionalThe employee's pronouns, e.g. "she/her", "he/his", or another pronoun set. Example: "she/her".startDatestringoptionalThe date the employee started, in YYYY-MM-DD format. Example: "2024-01-15".statusstringoptionalThe employee's current status relative to the organization. Defaults to CURRENT if omitted. Example: "FUTURE" for someone who hasn't started yet.titlestringoptionalThe employee's job or role title. Example: "Senior Software Engineer".typestringoptionalThe employee's employment type. Defaults to FULL_TIME if omitted. Example: "CONTRACTOR".versionintegeroptionalVersion number for optimistic concurrency control on this employee record. If omitted or 0, no version check is performed and the update always applies. Example: 3.glean_index_group#Add a group to a datasource, or update it if a group with that name already exists.
Returns no response body; a successful call confirms the group was accepted.
Use this to define the groups you'll reference from document permissions (allowedGroups) or user group memberships. This does not add members to the group by itself — membership comes from how users and documents reference the group name.
Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's group data used for access control, not third-party data.3 params
Add a group to a datasource, or update it if a group with that name already exists. Returns no response body; a successful call confirms the group was accepted. Use this to define the groups you'll reference from document permissions (allowedGroups) or user group memberships. This does not add members to the group by itself — membership comes from how users and documents reference the group name. Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's group data used for access control, not third-party data.
datasourcestringrequiredThe short name of the datasource this group belongs to. Example: "my-wiki".group_namestringrequiredThe group's name. Must be unique among all groups for this datasource and cannot contain spaces. Referenced from document permissions' allowedGroups and users' group memberships. Example: "engineering".versionintegeroptionalVersion number used for optimistic concurrency control on this group record. If omitted or 0, no version check is performed. Example: 1.glean_index_membership#Add a single membership to a group in a Glean datasource, linking a user or a nested group to that parent group.
Returns an empty success response once the membership is indexed.
Use this for a one-off membership change; use glean_bulk_index_memberships instead when uploading many memberships for a group in paginated batches.
Requires a Glean connection with the target Glean instance's domain and an API token.5 params
Add a single membership to a group in a Glean datasource, linking a user or a nested group to that parent group. Returns an empty success response once the membership is indexed. Use this for a one-off membership change; use glean_bulk_index_memberships instead when uploading many memberships for a group in paginated batches. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource the group and membership belong to, matching the datasource name registered in Glean. Example: "myconfluence".group_namestringrequiredName of the group in the datasource that the new member is being added to. Example: "engineering-team".member_group_namestringoptionalSet this when the new member is itself another group (a nested group), to that member group's name. Provide exactly one of member_user_id or member_group_name, never both. Example: "finance-team".member_user_idstringoptionalSet this when the new member is a user, to that user's email address or datasource-specific ID. Provide exactly one of member_user_id or member_group_name, never both. Example: "alice@example.com".versionintegeroptionalVersion number used for optimistic concurrency control against the existing membership record. Leave at 0 (the default) to skip version checking and always apply the change.glean_index_team#Add a new team or update the existing indexed information for a team in Glean's People directory.
Returns no response body on success; the team's profile, members, and metadata are created or replaced.
Use this to index or update a single team's roster and details; use glean_delete_team to remove a team entirely instead.11 params
Add a new team or update the existing indexed information for a team in Glean's People directory. Returns no response body on success; the team's profile, members, and metadata are created or replaced. Use this to index or update a single team's roster and details; use glean_delete_team to remove a team entirely instead.
idstringrequiredA unique identifier for this team, used to reference it later (e.g. when deleting it with glean_delete_team, or as a manager relationship target). Example: "team-platform".membersarrayrequiredThe team's members. Each entry needs at least the member's email; you can optionally set their relationship to the team (MEMBER, MANAGER, LEAD, or POINT_OF_CONTACT — defaults to MEMBER) and their join date. Example: [{"email": "jane.doe@example.com", "relationship": "LEAD"}].namestringrequiredThe human-readable name of the team, shown in Glean search results and org charts. Example: "Platform Engineering".businessUnitstringoptionalThe highest-level organizational unit this team belongs to; typically only meaningful for larger companies with multiple distinct businesses. Example: "Cloud Division".departmentstringoptionalAn organizational unit where everyone has a similar task, e.g. "Engineering". Example: "Engineering".descriptionstringoptionalA short description of what this team does. Example: "Owns Glean's core indexing and search infrastructure."emailsarrayoptionalThe team's contact email addresses. Each entry has an email and a type (PRIMARY, SECONDARY, ONCALL, or OTHER — defaults to OTHER). Example: [{"email": "platform-team@example.com", "type": "PRIMARY"}].externalLinkstringoptionalA link to an external page for this team (e.g. an internal wiki page). If set, Glean's team search results link out to it instead of generating their own page. Example: "https://wiki.example.com/teams/platform".photoUrlstringoptionalA link to the team's photo. Example: "https://example.com/photos/platform-team.jpg".team_extra_jsonobjectoptionalAdvanced passthrough for team fields not broken out above, merged directly into the team object sent to Glean. Use this for things like datasource profiles (e.g. the team's Slack channel or GitHub team handle) or additional custom fields. Example: {"datasourceProfiles": [{"datasource": "slack", "handle": "#platform-team"}]}.versionintegeroptionalVersion number for optimistic concurrency control on this team record. If omitted or 0, no version check is performed and the update always applies. Example: 3.glean_index_user#Add a datasource user to Glean's permissions graph, or update an existing user's name, external id, or active status.
Returns no response body; a successful call confirms the user record was accepted.
Use this to register or update one user referenced by document permissions. Use glean_bulk_index_users instead when replacing an entire datasource's user list.
Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's user directory data used for access control, not third-party data.6 params
Add a datasource user to Glean's permissions graph, or update an existing user's name, external id, or active status. Returns no response body; a successful call confirms the user record was accepted. Use this to register or update one user referenced by document permissions. Use glean_bulk_index_users instead when replacing an entire datasource's user list. Requires a Glean connection with the target instance's domain and an API token with write access to this datasource — this manages your own organization's user directory data used for access control, not third-party data.
datasourcestringrequiredThe short name of the datasource this user account belongs to. Example: "my-wiki".user_emailstringrequiredThe user's email address. Example: "alice@example.com".user_namestringrequiredThe user's display name. Example: "Alice Smith".is_activebooleanoptionalWhether the user is currently active. Set to false for a former employee or a bot account so that permissions checks treat them accordingly. Leave unset to use Glean's default.user_idstringoptionalThe datasource-specific identifier for this user, if the datasource refers to users by an id other than their email. Example: "u-9001".versionintegeroptionalVersion number used for optimistic concurrency control on this user record. If omitted or 0, no version check is performed. Example: 1.glean_list_answers#List the Answers created by the current user on a given Answer Board in Glean.
Returns an array of Answers, each with its question, answer text, author, and tracking token.
Glean has deprecated this endpoint since Answer Boards are no longer supported; use glean_get_answer to fetch a single Answer by ID or Glean Document ID instead.
Requires a Glean connection with the target instance's domain and an API token.2 params
List the Answers created by the current user on a given Answer Board in Glean. Returns an array of Answers, each with its question, answer text, author, and tracking token. Glean has deprecated this endpoint since Answer Boards are no longer supported; use glean_get_answer to fetch a single Answer by ID or Glean Document ID instead. Requires a Glean connection with the target instance's domain and an API token.
board_idintegeroptionalThe ID of the (legacy) Answer Board to list the current user's Answers from. Example: 5566.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_list_chats#List all saved Chats the current user has had with Glean Assistant.
Returns each chat's metadata (id, name, create/update timestamps, and associated AI app) plus a pagination cursor, without any conversational content.
Use this to browse or find a chat before fetching its full message history with glean_get_chat.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
List all saved Chats the current user has had with Glean Assistant. Returns each chat's metadata (id, name, create/update timestamps, and associated AI app) plus a pagination cursor, without any conversational content. Use this to browse or find a chat before fetching its full message history with glean_get_chat. Requires a Glean connection with the target Glean instance's domain and an API token.
localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR) for any localized error messages. If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC. Example: -420 for Pacific Daylight Time, which is 7 hours behind UTC.glean_list_collections#List all Collections that exist in this Glean instance, optionally including each Collection's audience filters or editor roles.
Returns an array of Collection objects with id, name, description, icon, and item count — the items inside each Collection are not fetched.
Use this to browse or discover Collections and their IDs; use glean_get_collection afterward to fetch one Collection's full item list.4 params
List all Collections that exist in this Glean instance, optionally including each Collection's audience filters or editor roles. Returns an array of Collection objects with id, name, description, icon, and item count — the items inside each Collection are not fetched. Use this to browse or discover Collections and their IDs; use glean_get_collection afterward to fetch one Collection's full item list.
allowed_datasourcestringoptionalOnly return Collections that hold this datasource type, for example "ANSWERS" for Collections representing answer boards. Leave unset to return Collections of every datasource type.include_audiencebooleanoptionalIf true, include each Collection's audience filters (who the Collection is visible to) in the response. Defaults to false when unset.include_rolesbooleanoptionalIf true, include each Collection's editor role assignments in the response. Defaults to false when unset.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_list_entities#List directory entities matching the given filters, sorted in the requested order.
Returns people, teams, or custom-entity records (depending on entity type) plus a pagination cursor and total count.
Use this to browse or filter Glean's people/teams/custom-entity directory; use glean_get_people when you already have specific person IDs or emails to look up.
Requires a Glean connection with the target Glean instance's domain and an API token.11 params
List directory entities matching the given filters, sorted in the requested order. Returns people, teams, or custom-entity records (depending on entity type) plus a pagination cursor and total count. Use this to browse or filter Glean's people/teams/custom-entity directory; use glean_get_people when you already have specific person IDs or emails to look up. Requires a Glean connection with the target Glean instance's domain and an API token.
cursorstringoptionalOpaque pagination cursor from a previous list-entities response's cursor field. Pass it back to fetch the next page. Omit for the first page.datasourcestringoptionalThe short datasource name to scope results to, most commonly used with entity_type CUSTOM_ENTITIES (e.g. "jira", "salesforce"). Leave empty to search across the default datasource for the chosen entity type.entity_typestringoptionalThe category of entity to list. PEOPLE lists directory people, TEAMS lists teams, and CUSTOM_ENTITIES lists custom entities ingested from a datasource. Defaults to PEOPLE when omitted.filterarrayoptionalStructured filters applied as an AND across the list; within one filter, multiple values are OR'd together. Each entry names a field to filter on and a list of value/comparison pairs (comparisons default to an equality check). Negation is not supported. Example: [{"fieldName": "type", "values": [{"value": "FULL_TIME", "relationType": "EQUALS"}]}] restricts results to full-time employees.include_fieldsarrayoptionalExtra entity fields to include in the response beyond what's returned by default, such as PERMISSIONS or FACETS. Leave empty to receive only the default fields. Example: ["PEOPLE_DISTANCE", "PERMISSIONS"].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.page_sizeintegeroptionalHint to the server for how many entities to return in this page. The server may return fewer. Example: 25.querystringoptionalA substring that every returned entity's matching fields must contain. Leave empty to not filter by text at all. Example: "engineering".request_typestringoptionalSTANDARD (the default) satisfies normal list requests and is capped at 10000 entities. FULL_DIRECTORY returns a comprehensive list of all people in the organization for audit-like purposes and should be paired with sorting by first or last name.sortarrayoptionalOne or more sort orders to apply, evaluated in list order. Each entry names a sort key (e.g. "FIRST_NAME", "LAST_NAME", "ORG_SIZE_COUNT", "START_DATE", "TEAM_SIZE", "RELEVANCE") and a direction (ASC or DESC). Example: [{"sortBy": "FIRST_NAME", "orderBy": "ASC"}].sourcestringoptionalA string identifying the calling surface, used only for internal logging/attribution. Most callers can leave this empty.glean_list_pins#List all pins configured for the connected Glean instance.
Returns an array of pins, each with its pin id, pinned document id, queries, audience filters, and creation/update metadata.
Use this to browse or audit existing pins; use glean_get_pin to fetch one pin's full details by id once you have it.
Requires a Glean connection with the target instance's domain and an API token.1 param
List all pins configured for the connected Glean instance. Returns an array of pins, each with its pin id, pinned document id, queries, audience filters, and creation/update metadata. Use this to browse or audit existing pins; use glean_get_pin to fetch one pin's full details by id once you have it. Requires a Glean connection with the target instance's domain and an API token.
localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_list_search_filters#List the datasources and common built-in filter fields visible to the authenticated user, or fetch suggested filter values for a query.
Without a query, returns a list of visible datasources, each with its available filter fields. With a query and exactly one datasource, returns suggested filter values for that query instead — no documents are returned either way.
Use this before calling glean_platform_search to discover valid datasource identifiers and filter field names, or to get typeahead suggestions for a filter value.
Requires a Glean connection with the target instance's domain and an API token.2 params
List the datasources and common built-in filter fields visible to the authenticated user, or fetch suggested filter values for a query. Without a query, returns a list of visible datasources, each with its available filter fields. With a query and exactly one datasource, returns suggested filter values for that query instead — no documents are returned either way. Use this before calling glean_platform_search to discover valid datasource identifiers and filter field names, or to get typeahead suggestions for a filter value. Requires a Glean connection with the target instance's domain and an API token.
datasourcesarrayoptionalRestrict the returned metadata to one or more datasource identifiers, as previously returned by this same endpoint (for example, "jira"). When query is also set, exactly one datasource identifier must be given here. An unknown or inaccessible identifier returns an invalid_datasource error. Example: ["jira"].querystringoptionalOptional search query that requests suggested filter values for the single datasource given in datasources, instead of field metadata. Must be non-blank when present; this triggers a facet-value lookup only and returns no documents.glean_list_shortcuts#List Glean shortcuts (go-links) that the current user owns or can edit, optionally filtered, sorted, and searched by text.
Returns a page of shortcut records plus a cursor, a has-more-pages flag, and a total count for pagination.
Use this to browse or search existing shortcuts; use glean_get_shortcut to fetch one specific shortcut by ID or alias.
Requires a Glean connection with the target Glean instance's domain and an API token.7 params
List Glean shortcuts (go-links) that the current user owns or can edit, optionally filtered, sorted, and searched by text. Returns a page of shortcut records plus a cursor, a has-more-pages flag, and a total count for pagination. Use this to browse or search existing shortcuts; use glean_get_shortcut to fetch one specific shortcut by ID or alias. Requires a Glean connection with the target Glean instance's domain and an API token.
page_sizeintegerrequiredHow many shortcuts to return in this page.cursorstringoptionalPagination token from a previous list-shortcuts response's meta.cursor field. Pass it back to fetch the next page. Omit for the first page.filtersarrayoptionalStructured filters applied as an AND across the list (Glean supports filtering shortcuts by name, author, department, and type); within one filter, multiple values are OR'd together. Each entry names a field to filter on and a list of value/comparison pairs. Example: [{"fieldName": "author", "values": [{"value": "alice@example.com", "relationType": "EQUALS"}]}].include_fieldsarrayoptionalExtra fields to include in the response beyond what's returned by default: FACETS or PEOPLE_DETAILS. Leave empty to receive only the default fields.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.querystringoptionalA substring that must appear in at least one of the shortcut's alias, canonical alias, destination URL, or description fields. Leave empty to not filter by text at all. Example: "wiki".sortobjectoptionalHow to order the results: a sort key and a direction (ASC or DESC). Example: {"sortBy": "inputAlias", "orderBy": "ASC"}.glean_list_skill_versions#List the versions recorded for a Glean skill by skill ID.
Returns each version's major and minor number, whether it's the latest, who created it, source provenance (for GitHub-imported skills), and timestamps, plus a has_more flag and a next_cursor for paging through more results.
Use this to browse a skill's version history before fetching or downloading one specific version. Use Get Skill Version or Download Skill Version Content for a single version's details or content.
Requires a Glean connection with the target Glean instance's domain and an API token.3 params
List the versions recorded for a Glean skill by skill ID. Returns each version's major and minor number, whether it's the latest, who created it, source provenance (for GitHub-imported skills), and timestamps, plus a has_more flag and a next_cursor for paging through more results. Use this to browse a skill's version history before fetching or downloading one specific version. Use Get Skill Version or Download Skill Version Content for a single version's details or content. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID whose versions should be listed, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".cursorstringoptionalOpaque pagination cursor from a previous list-versions response's next_cursor field. Pass it back to fetch the next page. Omit for the first page.page_sizeintegeroptionalMaximum number of versions to return in this page, from 1 to 100. Leave unset to use the server's default page size. Example: 25.glean_list_skills#List the skills available to the authenticated Glean user.
Returns each skill's id, display name, description, version numbers, status (draft, enabled, or disabled), owner, and timestamps, plus a has_more flag and a next_cursor for paging.
Use this to browse skills or look up a skill's id before referencing it elsewhere; there is no separate get-single-skill endpoint in this connector.2 params
List the skills available to the authenticated Glean user. Returns each skill's id, display name, description, version numbers, status (draft, enabled, or disabled), owner, and timestamps, plus a has_more flag and a next_cursor for paging. Use this to browse skills or look up a skill's id before referencing it elsewhere; there is no separate get-single-skill endpoint in this connector.
cursorstringoptionalOpaque pagination cursor from a previous response's next_cursor field. Pass it back to fetch the next page of skills. Omit for the first page.page_sizeintegeroptionalMaximum number of skills to return in this page (1-100). The server may return fewer than requested. Leave blank to use Glean's default page size. Example: 25.glean_list_tools#List the tools available to the calling user in Glean's agent tool-calling framework, optionally filtered to specific tool names.
Returns each tool's type (READ or WRITE), name, display name, description, and parameter schema.
Use this to discover what a Glean-connected tool server exposes before calling one with glean_call_tool.1 param
List the tools available to the calling user in Glean's agent tool-calling framework, optionally filtered to specific tool names. Returns each tool's type (READ or WRITE), name, display name, description, and parameter schema. Use this to discover what a Glean-connected tool server exposes before calling one with glean_call_tool.
tool_namesarrayoptionalRestrict results to these tool names. Omit to return all tools available to the calling user. Example: ["web_search", "send_email"].glean_list_trigger_presets#List the trigger presets available to the caller, optionally filtered to a single datasource.
Returns each preset's id, datasource, human-readable display name, and description, with cursor pagination.
Use this to find a preset_id before calling glean_create_trigger. Use glean_get_trigger_preset for full detail on one preset, including its input fields.
Requires a Glean connection with the target instance's domain and an API token.3 params
List the trigger presets available to the caller, optionally filtered to a single datasource. Returns each preset's id, datasource, human-readable display name, and description, with cursor pagination. Use this to find a preset_id before calling glean_create_trigger. Use glean_get_trigger_preset for full detail on one preset, including its input fields. Requires a Glean connection with the target instance's domain and an API token.
cursorstringoptionalOpaque pagination cursor copied from a previous response's next_cursor field. Omit this on the first request.datasourcestringoptionalRestrict results to presets for a single datasource, e.g. github or jira. Leave unset to list presets across all datasources.page_sizeintegeroptionalMaximum number of presets to return per page, from 1 to 100. Defaults to 50 when omitted.glean_list_triggers#List the automation triggers owned by the authenticated caller.
Returns each trigger's id, source preset id, optional description, status (ENABLED or DISABLED), input values, delivery webhook configuration, and timestamps, with cursor pagination.
Use this to find an existing trigger's id before calling glean_get_trigger, glean_update_trigger, or glean_delete_trigger.
Requires a Glean connection with the target instance's domain and an API token.2 params
List the automation triggers owned by the authenticated caller. Returns each trigger's id, source preset id, optional description, status (ENABLED or DISABLED), input values, delivery webhook configuration, and timestamps, with cursor pagination. Use this to find an existing trigger's id before calling glean_get_trigger, glean_update_trigger, or glean_delete_trigger. Requires a Glean connection with the target instance's domain and an API token.
cursorstringoptionalOpaque pagination cursor copied from a previous response's next_cursor field. Omit this on the first request.page_sizeintegeroptionalMaximum number of triggers to return per page, from 1 to 100. Defaults to 50 when omitted.glean_list_verifications#List documents owned by the current user along with their verification status, reminders, and candidate verifiers, for use in a verification dashboard.
Returns an array of documents, each with verification state, last verifier, expiration, outstanding reminders, and visitor counts.
Use this to see which of your documents need re-verification; use glean_update_verification to act on a specific one, or glean_create_verification_reminder to ask someone else to review it.2 params
List documents owned by the current user along with their verification status, reminders, and candidate verifiers, for use in a verification dashboard. Returns an array of documents, each with verification state, last verifier, expiration, outstanding reminders, and visitor counts. Use this to see which of your documents need re-verification; use glean_update_verification to act on a specific one, or glean_create_verification_reminder to ask someone else to review it.
countintegeroptionalMaximum number of documents to return. Omit to use Glean's default page size.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_platform_chat#Send a message (or a full conversation) to Glean's current Assistant/Chat endpoint and get back its reply.
Returns the assistant's reply text, a response id, its completion status, and — when the interaction is persisted — a conversation_id you can pass back in to continue the thread.
Use this for a general assistant turn that isn't tied to any specific agent; use glean_agent_search plus glean_run_agent instead to run a named, pre-built agent. This is the current Platform chat endpoint — prefer it over the older glean_chat tool (Glean's earlier Client API chat endpoint) for new integrations.3 params
Send a message (or a full conversation) to Glean's current Assistant/Chat endpoint and get back its reply. Returns the assistant's reply text, a response id, its completion status, and — when the interaction is persisted — a conversation_id you can pass back in to continue the thread. Use this for a general assistant turn that isn't tied to any specific agent; use glean_agent_search plus glean_run_agent instead to run a named, pre-built agent. This is the current Platform chat endpoint — prefer it over the older glean_chat tool (Glean's earlier Client API chat endpoint) for new integrations.
inputstringrequiredThe message(s) to send to Glean's assistant. Pass either a single string for a one-off question, or a chronological array of {"role": "USER"|"ASSISTANT", "content": "..."} turns to continue a multi-turn exchange — when using the array form, the final entry must have role USER. Example: "What changed in our Q3 roadmap?" or [{"role": "USER", "content": "Hi"}, {"role": "ASSISTANT", "content": "Hello! How can I help?"}, {"role": "USER", "content": "What changed in our Q3 roadmap?"}].conversation_idstringoptionalID of an existing stored conversation to continue, from a previous response's conversation_id field. Only compatible with a plain string input and with store left at its default (true) — do not set this together with an array-of-messages input or with store set to false.storebooleanoptionalWhether Glean should persist this interaction so it can be continued later via conversation_id. Defaults to true. Set to false to run the turn ephemerally with nothing saved — in that case no conversation_id is returned.glean_platform_search#Search your organization's connected content through Glean's Platform Search API and return ranked document results with cursor pagination.
Returns an ordered list of results (url, title, snippets, datasource, document type, creator/owner, and timestamps) plus has_more, next_cursor, and any non-blocking warnings.
Use this for the Platform API's search surface; use glean_search for Glean's original Client Search API instead. Call glean_list_search_filters first to discover valid datasource identifiers and filter field names.
Requires a Glean connection with the target instance's domain and an API token.6 params
Search your organization's connected content through Glean's Platform Search API and return ranked document results with cursor pagination. Returns an ordered list of results (url, title, snippets, datasource, document type, creator/owner, and timestamps) plus has_more, next_cursor, and any non-blocking warnings. Use this for the Platform API's search surface; use glean_search for Glean's original Client Search API instead. Call glean_list_search_filters first to discover valid datasource identifiers and filter field names. Requires a Glean connection with the target instance's domain and an API token.
querystringrequiredThe search query string. Supports inline operators such as from:jane, type:document, and app:confluence, which are AND'd together with any structured filters supplied separately. Example: "from:jane type:document app:confluence roadmap".cursorstringoptionalOpaque pagination token copied from a previous response's next_cursor field. Omit this on the first request.datasourcesarrayoptionalRestrict results to specific datasource identifiers, as returned by GET /api/search/filters (glean_list_search_filters). Scopes the search to that datasource type and may include results from multiple connected instances of it. Example: ["jira", "confluence"].filtersarrayoptionalStructured filters applied to search results. Multiple filters are AND'd together and with any inline operators in the query. Each filter has a field name, one or more values to match, and an optional operator (defaults to EQUALS). Built-in field names (case-sensitive, lowercase) are type, owner, from, author, channel, status, assignee, reporter, component, mentions, and collection; these support only EQUALS and NOT_EQUALS, and multiple values within an EQUALS filter are OR'd together. Any other non-blank field name is accepted as a custom filter without validation, and range operators (GT, GTE, LT, LTE) accept exactly one value each. Example: [{"field": "type", "values": ["document"], "operator": "EQUALS"}].page_sizeintegeroptionalNumber of results to return per page, from 1 to 100. Defaults to 10 when omitted.time_rangeobjectoptionalRestrict results to those last updated within this range. Both bounds are optional ISO 8601 date-times; start is inclusive and end is exclusive. Example: {"start": "2026-01-01T00:00:00Z", "end": "2026-07-01T00:00:00Z"}.glean_preview_skill_source#Preview the skills contained in a GitHub URL (a repository, a skill directory, or a single SKILL.md file) without persisting anything.
Returns the valid skills discovered — display name, description, resolved source_url, commit SHA, main SKILL.md content, supporting files, and file tree — plus any entries that could not be previewed and why.
Use this to inspect what a GitHub source contains and get the exact source_url values glean_import_skill needs, before actually importing anything; nothing is saved by this call.1 param
Preview the skills contained in a GitHub URL (a repository, a skill directory, or a single SKILL.md file) without persisting anything. Returns the valid skills discovered — display name, description, resolved source_url, commit SHA, main SKILL.md content, supporting files, and file tree — plus any entries that could not be previewed and why. Use this to inspect what a GitHub source contains and get the exact source_url values glean_import_skill needs, before actually importing anything; nothing is saved by this call.
source_urlstringrequiredGitHub URL to inspect: a repository URL, a skill directory URL, or a direct SKILL.md file URL. Glean scans it and reports every valid skill it finds, without saving anything. Example: "https://github.com/acme/skills/tree/main/incident-summarizer".glean_process_all_documents#Schedule immediate processing of documents already uploaded through the indexing API, instead of waiting for Glean's normal asynchronous processing.
Returns no response body; a successful call confirms processing was scheduled.
Use this after a bulk upload when you need the indexed content to become searchable right away. This endpoint is rate-limited to once every 3 hours per datasource (and once every 3 hours for a call covering all datasources) — calling it again sooner returns an error.
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.1 param
Schedule immediate processing of documents already uploaded through the indexing API, instead of waiting for Glean's normal asynchronous processing. Returns no response body; a successful call confirms processing was scheduled. Use this after a bulk upload when you need the indexed content to become searchable right away. This endpoint is rate-limited to once every 3 hours per datasource (and once every 3 hours for a call covering all datasources) — calling it again sooner returns an error. This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringoptionalIf set, only documents uploaded to this custom datasource are scheduled for immediate processing. If omitted, all uploaded documents across every custom datasource are processed. Example: "my-wiki".glean_process_all_employees_and_teams#Schedule immediate processing of any employees and teams already uploaded through Glean's Indexing API, instead of waiting for Glean's default asynchronous processing schedule.
Returns no response body on success; processing is scheduled to run right away.
Use this after indexing or bulk-uploading employees or teams when you need the changes reflected in Glean sooner than the default asynchronous timing.
Requires that employee or team data has already been submitted via glean_index_employee, glean_bulk_index_employees, or glean_index_team.0 params
Schedule immediate processing of any employees and teams already uploaded through Glean's Indexing API, instead of waiting for Glean's default asynchronous processing schedule. Returns no response body on success; processing is scheduled to run right away. Use this after indexing or bulk-uploading employees or teams when you need the changes reflected in Glean sooner than the default asynchronous timing. Requires that employee or team data has already been submitted via glean_index_employee, glean_bulk_index_employees, or glean_index_team.
glean_process_all_memberships#Trigger immediate processing of group memberships uploaded through the Glean indexing API, instead of waiting for Glean's normal asynchronous schedule.
Returns an empty success response once processing has been scheduled.
Use this right after finishing a memberships upload with glean_index_membership or glean_bulk_index_memberships when the changes need to take effect without delay; restrict it to one datasource, or leave the datasource unset to process every datasource with uploaded memberships.
Requires a Glean connection with the target Glean instance's domain and an API token.1 param
Trigger immediate processing of group memberships uploaded through the Glean indexing API, instead of waiting for Glean's normal asynchronous schedule. Returns an empty success response once processing has been scheduled. Use this right after finishing a memberships upload with glean_index_membership or glean_bulk_index_memberships when the changes need to take effect without delay; restrict it to one datasource, or leave the datasource unset to process every datasource with uploaded memberships. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringoptionalIf provided, only group memberships uploaded for this custom datasource are processed immediately. If omitted, Glean processes the uploaded memberships for every datasource. Example: "myconfluence".glean_recommend_documents#Retrieve documents Glean recommends as related to a given URL or Glean document ID.
Returns a list of recommended results (title, url, snippets, and source document metadata), in the same shape as glean_search results.
Use this to find content similar to a document a user is already viewing or working on; use glean_search for a plain keyword search instead.
Requires a Glean connection with the target instance's domain and an API token.6 params
Retrieve documents Glean recommends as related to a given URL or Glean document ID. Returns a list of recommended results (title, url, snippets, and source document metadata), in the same shape as glean_search results. Use this to find content similar to a document a user is already viewing or working on; use glean_search for a plain keyword search instead. Requires a Glean connection with the target instance's domain and an API token.
datasourcesarrayoptionalRestrict recommendations to one or more datasources by their short name (e.g. gmail, slack, confluence, jira, github, gdrive). All datasources are considered if omitted. Example: ["confluence"].document_idstringoptionalThe Glean Document ID of the document to get recommendations for. Provide exactly one of url or document_id. Example: "abcXYZ123".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.max_snippet_sizeintegeroptionalHint to the server about the maximum character length of each returned snippet. The server may return more or less. Example: 500.page_sizeintegeroptionalHint to the server for how many recommended results to return. The server may return more or fewer; structured and clustered results don't count towards this limit. Example: 10.urlstringoptionalThe URL of the document to get recommendations for. Provide exactly one of url or document_id. Example: "https://mycompany.atlassian.net/wiki/spaces/ENG/pages/12345".glean_report_client_activity#Report a client-side interaction event, such as a search result click, view, upvote, or manual feedback comment, tied to one or more Glean-issued tracking tokens.
Returns an empty success response once Glean accepts the event.
Use this for in-app UI feedback signals on search or chat results; use glean_report_document_activity instead for background document view/edit signals not tied to a specific UI result.
Requires a Glean connection with the target instance's domain and an API token.17 params
Report a client-side interaction event, such as a search result click, view, upvote, or manual feedback comment, tied to one or more Glean-issued tracking tokens. Returns an empty success response once Glean accepts the event. Use this for in-app UI feedback signals on search or chat results; use glean_report_document_activity instead for background document view/edit signals not tied to a specific UI result. Requires a Glean connection with the target instance's domain and an API token.
eventstringrequiredThe action the user took with respect to the object identified by tracking_tokens. Common values: CLICK (opened the object's primary link), VIEW/VISIBLE/SEEN (the object was visible), UPVOTE/DOWNVOTE (usefulness feedback), MANUAL_FEEDBACK (free-text feedback, paired with manual_feedback_info), SHARE, DISMISS, and others covering autocomplete, chat streaming, and feed interactions. Example: "CLICK".tracking_tokensarrayrequiredOne or more server-generated tracking tokens (from a prior search, chat, or feed response) that identify the object this event applies to. Example: ["eyJkb2NJZCI6IjEyMyJ9"].agent_idstringoptionalThe identifier of the agent that sent this feedback event, when the event originates from an automated agent rather than a person. Example: "my-agent-123".application_idstringoptionalThe identifier of the Glean client application that sent this event (e.g. a browser extension or a custom integration). Example: "chrome-extension".categorystringoptionalThe broad product area this feedback applies to, such as Search, Answers, Chat, or Announcements. Example: "SEARCH".channelsarrayoptionalWhere the feedback should be routed: COMPANY sends it to the customer's own admins, GLEAN sends it to Glean. If omitted, feedback goes only to Glean. Example: ["GLEAN"].idstringoptionalA universally unique identifier for this event. Only the earliest event Glean receives for a given ID is considered valid, so set this if you need to safely retry sending the same event without double-counting it. Example: "3fa85f64-5717-4562-b3fc-2c963f66afa6".manual_feedback_infoobjectoptionalExtra structured details for a MANUAL_FEEDBACK event, as a JSON object — for example a vote ("UPVOTE"/"DOWNVOTE"), a rating with its scale, free-text comments, the query being rated, or a list of issue tags. Example: {"vote": "UPVOTE", "comments": "Very helpful", "query": "Q3 roadmap"}.pathnamestringoptionalThe path within the Glean client the user was on when the event was triggered. Example: "/search".payloadstringoptionalFree-form text tied to the event: for MANUAL_FEEDBACK, the user's feedback text; for autocomplete, the partial query typed so far. Example: "This result was very helpful".positionintegeroptionalThe position of the element in the list, for clients that control ordering (such as a search results list, feed, or autocomplete dropdown). Example: 3.session_infoobjectoptionalSession context for this event, as a JSON object with the session's tracking token, tab ID, and optionally the last time the server saw it and the user's last query. Example: {"sessionTrackingToken": "abc123", "tabId": "tab-1"}.timestampstringoptionalThe ISO 8601 timestamp when the event occurred. If omitted, Glean uses the time it received the request. Example: "2025-06-01T14:30:00Z".ui_elementstringoptionalThe name or identifier of the specific UI element the user interacted with, if any. Example: "result-card-thumbs-up".ui_treearrayoptionalThe chain of UI elements/containers leading to the interacted element, outermost first, for detailed UI analytics. Example: ["search-results", "result-card", "thumbs-up-button"].urlstringoptionalThe full browser URL of the Glean client at the time the event was triggered. Example: "https://mycompany-be.glean.com/search?q=roadmap".user_infoobjectoptionalIdentifies which user this event is attributed to, as a JSON object with an opaque userID (the effective user, honoring any act-as) and/or origID (the authenticated user). Only needed for advanced attribution cases. Example: {"userID": "u_123"}.glean_report_document_activity#Report a single activity signal — a view, edit, search, comment, or crawl — that a user performed on an indexed document's URL.
Returns an empty success response once Glean accepts the event.
Use this to feed real-time document usage signals into Glean's search ranking; use glean_report_client_activity instead for in-app UI events like clicking a search result.
Requires a Glean connection with the target instance's domain and an API token.13 params
Report a single activity signal — a view, edit, search, comment, or crawl — that a user performed on an indexed document's URL. Returns an empty success response once Glean accepts the event. Use this to feed real-time document usage signals into Glean's search ranking; use glean_report_client_activity instead for in-app UI events like clicking a search result. Requires a Glean connection with the target instance's domain and an API token.
actionstringrequiredThe type of activity being reported for this URL. VIEW records a page visit, EDIT a document edit, SEARCH a search performed at the URL, COMMENT a comment left on the document, CRAWL an explicit request to index the URL, and HISTORICAL_SEARCH/HISTORICAL_VIEW record past search/view activity found in a user's history. Example: "VIEW".sourcestringrequiredThe short name of the datasource that owns this URL, without any instance suffix (e.g. "gmail", "confluence", "jira"). Glean uses this to attribute the activity to the correct connected data source. Example: "confluence".timestampstringrequiredThe ISO 8601 timestamp when the activity began. Example: "2025-06-01T14:30:00Z".urlstringrequiredThe full URL of the document, message, or page the activity occurred on. Example: "https://mycompany.atlassian.net/wiki/spaces/ENG/pages/123".body_contentstringoptionalThe HTML content of the page body at the time of the activity, used to help Glean index the page. Example: "<p>Roadmap details...</p>".datasource_instancestringoptionalThe full datasource instance name inferred from the URL, including any instance suffix (e.g. "jira_1" for a second Jira connector instance). Leave blank to let Glean infer it. Example: "jira_1".duration_secondsintegeroptionalHow long, in seconds, the activity lasted. For a VIEW, this is roughly how long the page was visible in the foreground. Example: 45.event_idstringoptionalA universally unique identifier for this event. Only the earliest event Glean receives for a given ID is considered valid, so set this if you need to safely retry sending the same event without double-counting it. Example: "3fa85f64-5717-4562-b3fc-2c963f66afa6".instance_only_namestringoptionalJust the instance suffix of the datasource instance (e.g. "1" for jira_1), inferred from the URL. Leave blank to let Glean infer it. Example: "1".page_titlestringoptionalThe title of the page or document at this URL, used for display and search-quality signals. Example: "Q3 Engineering Roadmap".querystringoptionalThe search query the user entered, when action is SEARCH or HISTORICAL_SEARCH. Example: "Q3 roadmap".referrerstringoptionalThe URL that referred the user to this VIEW or SEARCH. Example: "https://mycompany.atlassian.net/wiki/spaces/ENG".truncatedbooleanoptionalSet to true if this report is incomplete and more details for the same action, timestamp, and URL will follow later — for example, sending a VIEW's duration once the view finishes. Defaults to false.glean_rotate_token#Rotate the secret value of the Indexing API token used to authenticate this connection, leaving all other token properties unchanged.
Returns the new raw secret, the timestamp it was created, and the rotation period in minutes before it must be rotated again.
Use this on a recurring schedule to comply with the token's rotation policy; the token used to call this endpoint is the one that gets rotated, and the old secret stops working once the rotation period elapses.0 params
Rotate the secret value of the Indexing API token used to authenticate this connection, leaving all other token properties unchanged. Returns the new raw secret, the timestamp it was created, and the rotation period in minutes before it must be rotated again. Use this on a recurring schedule to comply with the token's rotation policy; the token used to call this endpoint is the one that gets rotated, and the old secret stops working once the rotation period elapses.
glean_run_agent#Run a Glean agent by ID, passing either a conversation (messages) or form-style input, and wait for its completed response.
Returns the run's final messages (each with a role and text content blocks) plus a run object describing the agent, the input it received, and its status.
Use this to execute a specific agent found via glean_agent_search; use glean_platform_chat instead for a general assistant turn that isn't tied to one named agent.
Call glean_get_agent_schemas first to see whether this agent expects messages or input, and what fields input should contain.4 params
Run a Glean agent by ID, passing either a conversation (messages) or form-style input, and wait for its completed response. Returns the run's final messages (each with a role and text content blocks) plus a run object describing the agent, the input it received, and its status. Use this to execute a specific agent found via glean_agent_search; use glean_platform_chat instead for a general assistant turn that isn't tied to one named agent. Call glean_get_agent_schemas first to see whether this agent expects messages or input, and what fields input should contain.
agent_idstringrequiredUnique ID of the Glean agent to run, as returned by glean_agent_search's agent_id field. Example: "3f9c2b7a-4e21-4b8a-9c3d-1234567890ab".inputobjectoptionalForm-style input fields for an input-form triggered agent, as a JSON object whose keys match that agent's input schema. Call glean_get_agent_schemas for this agent_id first to see which fields it expects, then pass them here. Supply this or messages, not both — input is required only when the target agent is input-form triggered rather than conversation-driven. Example: {"topic": "Q3 roadmap", "audience": "engineering"}.messagesarrayoptionalConversation to send to the agent, as an array of turns each with a role (USER or GLEAN_AI) and a content array of text blocks (e.g. {"type": "text", "text": "..."}). Must contain at least one message when provided. Supply this or input, not both — messages is required only when the target agent expects a conversation rather than form-style fields. Example: [{"role": "USER", "content": [{"type": "text", "text": "Summarize this week's incidents"}]}].metadataobjectoptionalArbitrary metadata to attach to this run, passed through to the agent as a JSON object (e.g. correlation IDs or context your integration wants the agent to see). Optional and provider-defined; omit if you have none to send. Example: {"source": "slack-bot"}.glean_search#Search across all of Glean's indexed content for a text query, returning matching documents, messages, and other results ranked by relevance.
Returns a list of results (each with title, url, snippets, and source document metadata), plus a pagination cursor and facet/result-tab metadata when requested.
Use this as the default way to find content by keyword; narrow results with datasource or facet filters instead of issuing many separate queries.
Requires a Glean connection with the target Glean instance's domain and an API token.10 params
Search across all of Glean's indexed content for a text query, returning matching documents, messages, and other results ranked by relevance. Returns a list of results (each with title, url, snippets, and source document metadata), plus a pagination cursor and facet/result-tab metadata when requested. Use this as the default way to find content by keyword; narrow results with datasource or facet filters instead of issuing many separate queries. Requires a Glean connection with the target Glean instance's domain and an API token.
querystringrequiredThe search terms to look for across all content Glean has indexed for this organization (documents, messages, tickets, code, people, and more). Supports Glean's search operators (e.g. from:, app:, is:). Example: "Q3 roadmap planning".cursorstringoptionalOpaque pagination cursor from a previous search response's top-level cursor (or metadata.cursor) field. Pass it back to fetch the next page of results for the same query. Omit for the first page.datasourcesarrayoptionalRestrict results to one or more datasources by their short name (e.g. gmail, slack, confluence, jira, github, gdrive). All datasources are searched if omitted. Example: ["slack", "confluence"].disable_spellcheckbooleanoptionalIf true, disables automatic spelling correction/suggestion for this query. Defaults to false (spellcheck enabled) when omitted.facet_filtersarrayoptionalStructured filters applied as an AND across the list (e.g. filter by document type AND owner). Each entry is an object with a fieldName (the facet, e.g. "type" or "last_updated_at") and a values array of {"value": ..., "relationType": "EQUALS"} objects (relationType may also be "ID_EQUALS" for exact ID matches, "NOT_EQUALS" to negate a value, or "LT"/"GT" for range comparisons such as dates). Example: [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}]}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.max_snippet_sizeintegeroptionalHint to the server about the maximum character length of each returned snippet (or LLM content block, when return_llm_content is true). The server may return more or less. Example: 500.page_sizeintegeroptionalHint to the server for how many results to return in this page. The server may return more or fewer; structured and clustered results don't count towards this limit. Example: 10.result_tab_idsarrayoptionalRestrict results to specific result-tab IDs returned by a previous search response's resultTabs field (e.g. a "People" or "Code" tab). Takes precedence over the datasource filter when both are set. Most callers should leave this unset and use datasources instead.return_llm_contentbooleanoptionalIf true, returns expanded document content sized for LLM consumption instead of short highlighted snippets. Pair with max_snippet_size to bound the amount of content returned per result.glean_search_trigger_events#Preview the recent content events an existing trigger would match, without sending any webhook deliveries.
Returns matching events from the last seven days (event type, datasource, document id and type, title, view url, reason, and event time), most recent first.
Use this to debug or verify a trigger's conditions after creating it. Use glean_search_trigger_preset_events instead to preview a preset before any trigger exists.
Requires a Glean connection with the target instance's domain and an API token.2 params
Preview the recent content events an existing trigger would match, without sending any webhook deliveries. Returns matching events from the last seven days (event type, datasource, document id and type, title, view url, reason, and event time), most recent first. Use this to debug or verify a trigger's conditions after creating it. Use glean_search_trigger_preset_events instead to preview a preset before any trigger exists. Requires a Glean connection with the target instance's domain and an API token.
trigger_idstringrequiredID of the trigger whose matching events to search. Obtain this from glean_list_triggers.page_sizeintegeroptionalMaximum number of events to return, from 1 to 100. Defaults to 10 when omitted. There is no cursor-based paging yet — raise this to see more matches.glean_search_trigger_preset_events#Preview the recent content events an unsaved trigger built from this preset would match, without creating a trigger or sending any deliveries.
Returns matching events from the last seven days (event type, datasource, document id and type, title, view url, reason, and event time), most recent first.
Use this to validate a preset's inputs before calling glean_create_trigger. Use glean_search_trigger_events instead to preview an already-created trigger.
Requires a Glean connection with the target instance's domain and an API token.3 params
Preview the recent content events an unsaved trigger built from this preset would match, without creating a trigger or sending any deliveries. Returns matching events from the last seven days (event type, datasource, document id and type, title, view url, reason, and event time), most recent first. Use this to validate a preset's inputs before calling glean_create_trigger. Use glean_search_trigger_events instead to preview an already-created trigger. Requires a Glean connection with the target instance's domain and an API token.
preset_idstringrequiredID of the trigger preset to preview. Obtain this from glean_list_trigger_presets.inputsobjectoptionalValues for the preset's input fields, as a flat JSON object keyed by input field name, used to simulate a trigger built with these inputs. Use glean_get_trigger_preset to see which input fields this preset expects. Example: {"project": "ENG", "issue_type": "Bug"}.page_sizeintegeroptionalMaximum number of events to return, from 1 to 100. Defaults to 10 when omitted. There is no cursor-based paging yet — raise this to see more matches.glean_search_trigger_preset_input_values#Look up selectable values for a single picklist input field on a trigger preset, for typeahead selection.
Returns up to 300 matching values (each with its raw value and display name) plus is_truncated, indicating whether more matches exist than were returned.
Use this to find valid input values for a preset field discovered via glean_get_trigger_preset, before calling glean_create_trigger. Narrow the query if is_truncated comes back true.
Requires a Glean connection with the target instance's domain and an API token.3 params
Look up selectable values for a single picklist input field on a trigger preset, for typeahead selection. Returns up to 300 matching values (each with its raw value and display name) plus is_truncated, indicating whether more matches exist than were returned. Use this to find valid input values for a preset field discovered via glean_get_trigger_preset, before calling glean_create_trigger. Narrow the query if is_truncated comes back true. Requires a Glean connection with the target instance's domain and an API token.
fieldstringrequiredField identifier of the picklist input whose values to list. Obtain valid field identifiers from glean_get_trigger_preset's inputs array.preset_idstringrequiredID of the trigger preset the input field belongs to. Obtain this from glean_list_trigger_presets.querystringoptionalPrefix filter applied to the field's option values, for typeahead. Matches against the raw option value, not its display name.glean_set_beta_users#Set the exact list of beta users allowed to see a datasource while it is still in beta, replacing any previous beta user list for that datasource.
Returns an empty success response once the beta user list is saved.
Use this while a datasource is enabled but not yet generally available; once out of beta the datasource becomes visible to all users, and it stays invisible to everyone if the datasource itself is disabled.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Set the exact list of beta users allowed to see a datasource while it is still in beta, replacing any previous beta user list for that datasource. Returns an empty success response once the beta user list is saved. Use this while a datasource is enabled but not yet generally available; once out of beta the datasource becomes visible to all users, and it stays invisible to everyone if the datasource itself is disabled. Requires a Glean connection with the target Glean instance's domain and an API token.
datasourcestringrequiredThe short name of the custom datasource that should be made visible to the listed beta users, matching the datasource name registered in Glean. Example: "myconfluence".user_emailsarrayrequiredThe complete list of email addresses for users who should be able to see this datasource during its beta period. This list replaces any beta users previously set for the datasource. Example: ["alice@example.com", "bob@example.com"].glean_submit_datasource_data#Submit a batch of documents, identities, permissions, or other records for asynchronous processing into a specific Glean custom datasource instance and submission type.
Returns a requestId used to track the asynchronous processing of the submission.
Use this for the ongoing feed of data into an already-registered datasource; call it repeatedly as new or changed records become available.
Requires the target datasource to already be registered via glean_add_datasource.3 params
Submit a batch of documents, identities, permissions, or other records for asynchronous processing into a specific Glean custom datasource instance and submission type. Returns a requestId used to track the asynchronous processing of the submission. Use this for the ongoing feed of data into an already-registered datasource; call it repeatedly as new or changed records become available. Requires the target datasource to already be registered via glean_add_datasource.
datasource_instancestringrequiredThe unique name of the datasource instance to submit this data to — the same name used when the datasource was registered with glean_add_datasource. Example: "myjira".submission_dataobjectrequiredThe submission payload itself, sent as-is to Glean. Its shape depends on the type being submitted (e.g. a list of documents, identity mappings, or permission rules) — refer to Glean's Indexing API documentation for the exact structure expected for this submission type. Example: {"documents": [{"id": "doc-1", "title": "Example Doc", "viewURL": "https://example.com/doc-1"}]}.typestringrequiredThe kind of data being submitted, as defined by this datasource's submission schema (for example, a document, identity, or permissions submission type). Check the datasource's configuration or Glean's Indexing API documentation for the exact submission types it accepts. Example: "documents".glean_summarize_documents#Generate an AI-written summary of one or more Glean documents, optionally focused on a query.
Returns the summary text, follow-up prompt suggestions, and a tracking token for feedback reporting.
Use this when you already know which documents to summarize (by URL, document ID, or user-generated-content reference) rather than searching for them first.
Run glean_search first if you don't already have a document ID or URL to summarize.6 params
Generate an AI-written summary of one or more Glean documents, optionally focused on a query. Returns the summary text, follow-up prompt suggestions, and a tracking token for feedback reporting. Use this when you already know which documents to summarize (by URL, document ID, or user-generated-content reference) rather than searching for them first. Run glean_search first if you don't already have a document ID or URL to summarize.
document_specsarrayrequiredOne or more documents to summarize, each identified a different way: by its URL (e.g. {"url": "https://docs.example.com/page"}), by its Glean document ID (e.g. {"id": "abc123"}), or by a piece of user-generated content such as an announcement, answer, collection, shortcut, chat, or artifact. For user-generated content, provide a ugcType plus either a numeric contentId (ugcType one of ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS, or CHATS) or a string ugcId (ugcType one of ANNOUNCEMENTS, ANSWERS, ARTIFACTS, COLLECTIONS, SHORTCUTS, or CHATS — use ugcId rather than contentId for CHATS and ARTIFACTS), plus an optional docType. Example: [{"id": "abc123"}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.preferred_summary_lengthintegeroptionalPreferred maximum length of the summary output, in characters. Defaults to 500 characters if omitted. Example: 500.querystringoptionalOptional query to focus the summary on, e.g. "What are the key decisions?". If omitted, Glean produces a general summary of the document(s).timestampstringoptionalISO 8601 timestamp associated with this request, for audit/logging purposes. Example: 2024-01-01T00:00:00Z.tracking_tokenstringoptionalOpaque tracking token from a previous summary response, used to associate feedback (via Glean's /feedback endpoint) with this particular summary request.glean_sync_skill#Refresh a GitHub-imported Glean skill from its stored source URL, checking for upstream changes.
Returns the resulting sync status, the git commit SHA now associated with the skill, and whether this call created a new skill version.
Use this to pull in updates from the skill's source repository. If the skill's source was removed upstream, the stored skill is left unchanged and must be removed explicitly with Delete Skill.
Requires a Glean connection with the target Glean instance's domain and an API token.1 param
Refresh a GitHub-imported Glean skill from its stored source URL, checking for upstream changes. Returns the resulting sync status, the git commit SHA now associated with the skill, and whether this call created a new skill version. Use this to pull in updates from the skill's source repository. If the skill's source was removed upstream, the stored skill is left unchanged and must be removed explicitly with Delete Skill. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID of the GitHub-imported skill to sync, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".glean_update_agent#Edit an existing agent in Glean's Agent Builder, saving the change as a draft or publishing it live.
Returns an empty success response once the update is applied.
Use this to rename or reconfigure an agent you already created; use glean_create_agent to define a brand-new agent instead.
Requires the agent ID returned by glean_create_agent or found in Glean's Agent Builder.6 params
Edit an existing agent in Glean's Agent Builder, saving the change as a draft or publishing it live. Returns an empty success response once the update is applied. Use this to rename or reconfigure an agent you already created; use glean_create_agent to define a brand-new agent instead. Requires the agent ID returned by glean_create_agent or found in Glean's Agent Builder.
agent_idstringrequiredThe ID of the agent to edit. Example: wf_1a2b3c4d.agent_config_jsonobjectoptionalEscape hatch for updating additional agent configuration beyond name/is_draft — for example a description, instructions, trigger settings, or tool/skill configuration. Provide a JSON object whose fields are merged directly into the update-agent request; the exact fields available depend on your Glean instance's Agent Builder schema (see https://developers.glean.com/agents/agents-api). The agent_id and name fields above always take precedence over the same keys inside this object.is_draftbooleanoptionalWhether to save this change as a draft instead of publishing it live. Set to true to save a draft without affecting the published agent; set to false or omit to publish the change immediately. Only draft and publish modes are supported.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.namestringoptionalNew name for the agent. Leave blank to keep the current name. Example: "Weekly Report Summarizer v2".timezone_offsetintegeroptionalThe offset of the client's timezone in minutes from UTC (e.g. -420 for PDT, which is 7 hours behind UTC). Used only for audit/logging purposes on this endpoint.glean_update_announcement#Update an existing announcement in Glean, identified by its ID, including its title, active window, body content, or audience filters.
Returns the updated announcement object.
Use this to edit an announcement already created with glean_create_announcement; use glean_delete_announcement to remove one instead.
Requires a Glean connection with the target instance's domain and an API token.16 params
Update an existing announcement in Glean, identified by its ID, including its title, active window, body content, or audience filters. Returns the updated announcement object. Use this to edit an announcement already created with glean_create_announcement; use glean_delete_announcement to remove one instead. Requires a Glean connection with the target instance's domain and an API token.
end_timestringrequiredThe ISO 8601 date and time at which the announcement expires and stops being shown. Example: "2025-12-26T00:00:00Z".idintegerrequiredThe opaque ID of the announcement to update. Example: 987654.start_timestringrequiredThe ISO 8601 date and time at which the announcement becomes active and visible to its audience. Example: "2025-12-24T00:00:00Z".titlestringrequiredThe headline of the announcement, shown as its main heading. Example: "Office closed for the holiday".audience_filtersarrayoptionalRestricts who sees the announcement, as an array of facet-filter objects taken from the same filters used in Glean people search (e.g. department or location). Each entry has a fieldName and a values array of {"value": ..., "relationType": "EQUALS"} objects; multiple entries are combined with AND, values within one entry with OR. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].bannerobjectoptionalA wide banner image for the announcement, as a JSON object with a photoId (if using a Glean-hosted photo) and/or a direct image url. Example: {"url": "https://example.com/banner.png"}.bodyobjectoptionalThe announcement's body content, as a JSON object. It carries the rich-text body plus an optional structuredList array of items, each of which is either a plain string or a link (optionally pointing to a Glean document). Example: {"text": "Enjoy the long weekend!"}.channelstringoptionalWhich surface the announcement is posted to: MAIN for a regular announcement, SOCIAL_FEED for a Social Feed post.emojistringoptionalAn emoji used to indicate the nature of the announcement, shown alongside its title. Example: "🎉".hide_attributionbooleanoptionalIf true, hides the author's name from the announcement.is_prioritizedbooleanoptionalIf true and channel is SOCIAL_FEED, pins this post to the front of the Social Feed.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.post_typestringoptionalWhether this is a regular rich-text announcement (TEXT) or a post linking out to an external site (LINK).source_document_idstringoptionalThe Glean Document ID of the source document this announcement was created from, if it originated elsewhere (e.g. a Slack thread). Example: "CONFLUENCE_12345".thumbnailobjectoptionalA small thumbnail image for the announcement, as a JSON object with a photoId (if using a Glean-hosted photo) and/or a direct image url. Example: {"url": "https://example.com/thumb.png"}.view_urlstringoptionalThe URL to open when viewing the announcement. Only used when channel is SOCIAL_FEED. Example: "https://example.com/blog/holiday-notice".glean_update_answer#Update an existing user-generated Answer in Glean, identified by its Answer ID, changing its question, answer text, audience, roles, or collections.
Returns the updated Answer object.
Use this to edit an Answer already created with glean_create_answer; use glean_delete_answer to remove one instead.
Requires a Glean connection with the target instance's domain and an API token.15 params
Update an existing user-generated Answer in Glean, identified by its Answer ID, changing its question, answer text, audience, roles, or collections. Returns the updated Answer object. Use this to edit an Answer already created with glean_create_answer; use glean_delete_answer to remove one instead. Requires a Glean connection with the target instance's domain and an API token.
idintegerrequiredThe opaque ID of the Answer to update. Example: 445566.added_collectionsarrayoptionalIDs of Collections to add this Answer to. Example: [1234, 5678].added_rolesarrayoptionalUser roles to add on this Answer, as an array of objects, each naming a role (e.g. OWNER, EDITOR) and either a person or a group. Example: [{"role": "EDITOR", "person": {"email": "alice@company.com"}}].audience_filtersarrayoptionalThe updated list of facet filters restricting who sees this Answer, replacing the existing filters. Each entry has a fieldName and a values array of {"value": ..., "relationType": "EQUALS"} objects. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].body_textstringoptionalThe updated plain-text answer, replacing the existing one. Example: "Submit a PTO request in Workday at least two weeks in advance.".combined_answer_textstringoptionalThe updated rich-text answer body, replacing the existing one. Example: "Submit a **PTO request** in Workday at least two weeks in advance.".doc_idstringoptionalThe Glean Document ID of the Answer, provided in addition to id for cases where it's also known. Example: "ANSWER_445566".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.questionstringoptionalThe updated question this Answer addresses. Leave blank to keep the existing question. Example: "How do I request PTO?".question_variationsarrayoptionalThe updated list of alternate phrasings for the question, replacing any existing ones. Example: ["How do I take time off?", "How do I book vacation?"].removed_collectionsarrayoptionalIDs of Collections to remove this Answer from. Example: [1234].removed_rolesarrayoptionalUser roles to remove from this Answer, in the same shape as added_roles. Example: [{"role": "EDITOR", "person": {"email": "bob@company.com"}}].rolesarrayoptionalThe full replacement list of explicitly-granted roles on this Answer, as an array of objects (each naming a role and a person or group). Overrides added_roles/removed_roles if set. Example: [{"role": "EDITOR", "person": {"email": "alice@company.com"}}].source_document_specobjectoptionalIdentifies the source document this Answer was derived from, as a JSON object using exactly one of: {"url": ...}, {"id": ...} (a Glean Document ID), or {"ugcType": ..., "contentId": ...} / {"ugcType": ..., "ugcId": ...}. Example: {"id": "CONFLUENCE_12345"}.source_typestringoptionalWhether this Answer's source content is a DOCUMENT or generated by an ASSISTANT.glean_update_collection#Update the name, description, or other properties of an existing Glean Collection.
Returns the updated Collection object, or an error such as NAME_EXISTS if the new name is already taken.
Use this to rename or reconfigure a Collection you already created; use glean_add_collection_item to add items instead of changing Collection-level properties.
Requires the target Collection's ID from glean_create_collection or Glean's Collections UI.13 params
Update the name, description, or other properties of an existing Glean Collection. Returns the updated Collection object, or an error such as NAME_EXISTS if the new name is already taken. Use this to rename or reconfigure a Collection you already created; use glean_add_collection_item to add items instead of changing Collection-level properties. Requires the target Collection's ID from glean_create_collection or Glean's Collections UI.
collection_idintegerrequiredThe ID of the Collection to modify. Example: 12345.namestringrequiredThe Collection's (unique) name. This endpoint replaces the whole Collection definition, so pass the current name here even if you're only changing other fields. Example: "Q3 Launch Docs".added_rolesarrayoptionalRole grants to add to this Collection, one object per person or group being given a role (such as editor) on it. Each object follows Glean's role-specification shape used across the Collections API; if unsure of the exact fields, copy an example from this Collection's existing roles list or Glean's admin UI rather than constructing one from scratch.admin_lockedbooleanoptionalIf true, only Glean admins can edit this Collection; other users with access can view but not modify it.allowed_datasourcestringoptionalRestricts this Collection to holding items from a single datasource (e.g. gdrive, confluence) rather than any type of item. Leave blank to allow items from any datasource.audience_filtersarrayoptionalFilters restricting who can see this Collection, matching the values available in Glean's people search filters. Each entry is an object with a fieldName (the facet, e.g. "department") and a values array of {"value": ..., "relationType": "EQUALS"} objects. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].descriptionstringoptionalA brief summary of the Collection's contents, shown alongside its name.iconstringoptionalThe emoji icon shown next to the Collection's name. Example: "🚀".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.parent_idintegeroptionalThe ID of the parent Collection this Collection should be nested under. Use 0 (or omit) to make it a top-level Collection.removed_rolesarrayoptionalRole grants to remove from this Collection, in the same shape as added_roles.thumbnail_photo_idstringoptionalID of a Glean-hosted splash photo to use as this Collection's thumbnail, as an alternative to thumbnail_url.thumbnail_urlstringoptionalURL of an image to use as this Collection's thumbnail.glean_update_collection_item#Update the name, description, or icon of an existing item within a Glean Collection, identified by its Collection ID and item ID.
Returns the updated Collection object, including its full list of items, metadata, and permissions.
Use this to edit an item already in a Collection, not to add a new one.
Requires a Collection ID and item ID — find them with glean_list_collections or glean_get_collection first.6 params
Update the name, description, or icon of an existing item within a Glean Collection, identified by its Collection ID and item ID. Returns the updated Collection object, including its full list of items, metadata, and permissions. Use this to edit an item already in a Collection, not to add a new one. Requires a Collection ID and item ID — find them with glean_list_collections or glean_get_collection first.
collection_idintegerrequiredThe numeric ID of the Collection that contains the item to edit. Get this from glean_list_collections or glean_get_collection. Example: 42.item_idstringrequiredThe ID of the specific CollectionItem (not the Collection itself) to edit, as returned in a Collection's items list. Example: "item_abc123".descriptionstringoptionalA short note explaining why this item is included in the Collection. Leave unset to keep the current description unchanged. Example: "Reference doc for onboarding".iconstringoptionalAn emoji icon for this item. Only used when the item is a Text-type Collection item (as opposed to a linked document or URL). Example: "📌".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.namestringoptionalNew display name for this Collection item. Leave unset to keep the current name unchanged. Example: "Q3 Roadmap".glean_update_document_permissions#Change who can see an already-indexed document, without touching its title, content, or other fields.
Returns no response body; a successful call confirms the new permissions were accepted.
Use this when only access control needs to change. Use glean_index_document instead when you also need to update the document's content or metadata.
You must identify the document with either document_id or view_url, whichever was used when it was originally indexed.
This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.5 params
Change who can see an already-indexed document, without touching its title, content, or other fields. Returns no response body; a successful call confirms the new permissions were accepted. Use this when only access control needs to change. Use glean_index_document instead when you also need to update the document's content or metadata. You must identify the document with either document_id or view_url, whichever was used when it was originally indexed. This operates on your own organization's Glean-indexed content, not third-party data. Requires a Glean connection with the target instance's domain and a Glean Indexing API token with write access to this datasource.
datasourcestringrequiredThe short name of the datasource that owns this document. Example: "my-wiki".permissionsobjectrequiredControls which Glean users can see this document. Provide allowedUsers (a list of {email, datasourceUserId, name} objects) and/or allowedGroups (a list of group names) to grant access to specific people or groups; allowedGroupIntersections lets you require membership in every group within each listed set (an OR across multiple ANDed sets). Set allowAnonymousAccess to true to let every Glean user view it, or allowAllDatasourceUsersAccess to let anyone with an account in this datasource view it. Example: {"allowedUsers": [{"email": "alice@example.com"}], "allowedGroups": ["engineering"], "allowAnonymousAccess": false}.document_idstringoptionalThe datasource-specific id of the document whose permissions should change. Required unless view_url was used to originally identify the document instead of an id. Example: "doc-12345".object_typestringoptionalThe document's type within this datasource (e.g. "Case", "KnowledgeArticle"). Must not contain spaces or underscores. Example: "KnowledgeArticle".view_urlstringoptionalThe document's permalink. Only required if document_id was not set when the document was originally indexed. Example: "https://wiki.example.com/roadmap-q3".glean_update_pin#Update the queries or audience filters of an existing pin.
Returns the updated pin, including its pin id, pinned document id, queries, audience filters, and update metadata.
Use this to change which queries or audience a pin applies to; use glean_create_pin to pin a new document, since the pinned document itself cannot be changed here.
Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.4 params
Update the queries or audience filters of an existing pin. Returns the updated pin, including its pin id, pinned document id, queries, audience filters, and update metadata. Use this to change which queries or audience a pin applies to; use glean_create_pin to pin a new document, since the pinned document itself cannot be changed here. Requires a Glean connection with the target instance's domain and an API token, plus a pin id typically obtained from glean_create_pin or glean_list_pins.
pin_idstringrequiredThe opaque id of the pin to update, as returned by glean_create_pin or glean_list_pins. Example: "p_9f8c3a2b".audience_filtersarrayoptionalThe full replacement set of filters restricting which users see the pinned result, expressed the same way as people-search facet filters. Each entry has a fieldName (the facet being filtered, e.g. a department or location facet) and a values array of {"value": ..., "relationType": "EQUALS"} objects; an optional groupName nests the filter under another facet's value. Leave blank to leave the existing audience unchanged. Example: [{"fieldName": "department", "values": [{"value": "Engineering", "relationType": "EQUALS"}]}].localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.queriesarrayoptionalThe full replacement list of query strings for which this pinned document should be shown as a top result. Example: ["onboarding guide", "new hire setup"].glean_update_shortcut#Update fields on an existing Glean shortcut identified by its numeric ID.
Returns the updated shortcut record with its new alias, destination, and metadata.
Use this to change an existing go/ link's destination or details; use glean_create_shortcut to make a new one instead.
Requires a Glean connection with the target Glean instance's domain and an API token.10 params
Update fields on an existing Glean shortcut identified by its numeric ID. Returns the updated shortcut record with its new alias, destination, and metadata. Use this to change an existing go/ link's destination or details; use glean_create_shortcut to make a new one instead. Requires a Glean connection with the target Glean instance's domain and an API token.
idintegerrequiredThe opaque numeric ID of the shortcut to update, as returned when it was created or by glean_get_shortcut / glean_list_shortcuts.added_rolesarrayoptionalAdvanced: user roles to add on this shortcut, each naming a person or group and the role to grant. Leave empty to make no role changes. Example: [{"person": {"obfuscatedId": "abc123XYZ"}, "role": "EDITOR"}].descriptionstringoptionalNew short, plain-text blurb explaining what this shortcut is for. Leave empty to keep the current description. Example: "Team wiki homepage".destination_document_idstringoptionalNew Glean Document ID that corresponds to the destination URL, if applicable. Leave empty to keep the current value.destination_urlstringoptionalNew destination URL the shortcut should redirect to. Leave empty to keep the current destination. Example: "https://wiki.example.com/team-space".input_aliasstringoptionalNew link text following the go/ prefix. Leave empty to keep the current alias. Example: "team-wiki".localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.removed_rolesarrayoptionalAdvanced: user roles to remove from this shortcut, in the same shape as added_roles. Leave empty to make no role changes.unlistedbooleanoptionalIf true, makes the shortcut unlisted: visible only to its author and admins. Leave empty to keep the current visibility.url_templatestringoptionalNew URL template for a variable shortcut that accepts arguments after the alias. Leave empty to keep the current value. Example: "https://wiki.example.com/search?q={query}".glean_update_skill#Enable or disable an existing Glean skill without changing its content.
Returns the updated skill object, including its new status alongside display name, description, owner, and timestamps.
Use this to turn a skill on or off; use Sync Skill to refresh a GitHub-imported skill's content instead of changing its status.
Requires a Glean connection with the target Glean instance's domain and an API token.2 params
Enable or disable an existing Glean skill without changing its content. Returns the updated skill object, including its new status alongside display name, description, owner, and timestamps. Use this to turn a skill on or off; use Sync Skill to refresh a GitHub-imported skill's content instead of changing its status. Requires a Glean connection with the target Glean instance's domain and an API token.
skill_idstringrequiredThe Glean skill ID to update, as returned by skill list/search endpoints or shown in the Glean admin console. Example: "skill_8f3a1c".statusstringrequiredThe new status to set for the skill. "ENABLED" makes the skill available for use; "DISABLED" turns it off without deleting it. Example: "DISABLED".glean_update_trigger#Update an existing trigger's status, description, preset inputs, or webhook delivery settings. Only the fields you supply are changed.
Returns the updated trigger's id, source preset id, description, status, input values, delivery configuration, and timestamps.
Use this instead of deleting and recreating a trigger when you just need to enable/disable it or change its inputs or webhook. Find the trigger_id with glean_list_triggers first.
Requires a Glean connection with the target instance's domain and an API token.7 params
Update an existing trigger's status, description, preset inputs, or webhook delivery settings. Only the fields you supply are changed. Returns the updated trigger's id, source preset id, description, status, input values, delivery configuration, and timestamps. Use this instead of deleting and recreating a trigger when you just need to enable/disable it or change its inputs or webhook. Find the trigger_id with glean_list_triggers first. Requires a Glean connection with the target instance's domain and an API token.
trigger_idstringrequiredID of the trigger to update. Obtain this from glean_list_triggers.auth_secretstringoptionalSecret credential value sent with the auth_type header on each webhook delivery. Write-only — Glean never returns it on reads. Only applied when webhook_url is also supplied in this same call; provide together with auth_type — both or neither.auth_typestringoptionalOptional credential scheme sent as an HTTP auth header on every delivery, in addition to the HMAC signature. Currently the only supported value is BEARER. Only applied when webhook_url is also supplied in this same call (delivery updates replace the whole delivery object); provide together with auth_secret — both or neither.descriptionstringoptionalNew free-text note describing this trigger. Replaces the existing description when supplied.inputsobjectoptionalNew values for the preset's input fields, as a flat JSON object keyed by input field name. Replaces the existing inputs entirely when supplied. Example: {"project": "ENG", "issue_type": "Bug"}.statusstringoptionalNew lifecycle state for the trigger. Set to DISABLED to pause deliveries without deleting the trigger, or ENABLED to resume them.webhook_urlstringoptionalNew HTTPS URL for webhook delivery. Because a delivery update replaces the whole delivery object, this is required whenever you want to change delivery settings at all — including just the auth credentials below. If you only want to change auth_type/auth_secret, repeat the trigger's existing webhook_url here (from glean_get_trigger) unchanged. Leave this unset to leave delivery untouched.glean_update_verification#Mark a Glean document as verified, deprecated, or unverified to keep the knowledge base up to date.
Returns the document's new verification state plus verifier, reminder, and visitor-count metadata.
Use this after reviewing a document's accuracy; use glean_create_verification_reminder instead to ask someone else to review it later, or glean_list_verifications to see which documents need review.3 params
Mark a Glean document as verified, deprecated, or unverified to keep the knowledge base up to date. Returns the document's new verification state plus verifier, reminder, and visitor-count metadata. Use this after reviewing a document's accuracy; use glean_create_verification_reminder instead to ask someone else to review it later, or glean_list_verifications to see which documents need review.
document_idstringrequiredThe Glean document ID to update the verification status for.actionstringoptionalThe verification action to apply: VERIFY marks the document as currently accurate, DEPRECATE marks it as outdated, and UNVERIFY clears its verified status. Example: VERIFY.localestringoptionalThe client's preferred locale in RFC 5646 format (e.g. en, ja, pt-BR). If omitted, the Accept-Language header is used; if that's absent or unsupported, Glean defaults to the closest match or en.glean_upload_shortcuts#Create shortcuts that Glean itself hosts and serves (Golinks), by sending one page of a paginated bulk-upload request.
Returns an empty success acknowledgement for the page that was received; created shortcuts become manageable from Glean's Knowledge tab.
Use this when you want Glean to host and redirect the shortcut itself; use the bulk index shortcuts tool instead for shortcuts already hosted elsewhere that should only be indexed for search. Send one call per page, marking is_first_page/is_last_page, until every page has been sent.5 params
Create shortcuts that Glean itself hosts and serves (Golinks), by sending one page of a paginated bulk-upload request. Returns an empty success acknowledgement for the page that was received; created shortcuts become manageable from Glean's Knowledge tab. Use this when you want Glean to host and redirect the shortcut itself; use the bulk index shortcuts tool instead for shortcuts already hosted elsewhere that should only be indexed for search. Send one call per page, marking is_first_page/is_last_page, until every page has been sent.
shortcutsarrayrequiredOne page of shortcut records for Glean to host and serve as Golinks, manageable afterward from Glean's Knowledge tab. Each shortcut needs a destinationUrl (the URL it resolves to by default), a createdBy identifier (the owner), and an inputAlias (the keyword or path users type to reach it, e.g. go/onboarding). It can optionally be marked unlisted (visible only to its author and admins), and for variable shortcuts can include a urlTemplate holding placeholders alongside the default destinationUrl. Send one call per page, repeating with subsequent pages until is_last_page is true. Example: [{"destinationUrl": "https://wiki.example.com/onboarding", "createdBy": "alice@example.com", "inputAlias": "onboarding", "unlisted": false}].upload_idstringrequiredUnique identifier for this bulk-upload session. Use the exact same value on every page (first through last) of one upload; a new value starts a separate, independent upload. Example: "shortcuts-upload-2026-09-08".force_restart_uploadbooleanoptionalDiscards any previous incomplete upload attempt tied to this upload_id and starts the upload over from scratch. Must be set together with is_first_page = true; it has no effect on later pages. Defaults to false.is_first_pagebooleanoptionalWhether this call carries the first page of the bulk upload. Set to true only on the first page of a given upload_id; leave false for every later page. Defaults to false.is_last_pagebooleanoptionalWhether this call carries the final page of the bulk upload, telling Glean the full set of shortcuts has been received and the upload can be finalized. Leave false for every page except the last. Defaults to false.glean_upsert_custom_metadata_schema#Define or update the schema for a Glean custom metadata group (field) — the reusable definition of its display labels, data type, and search/faceting behavior.
Returns a simple {success: true} acknowledgement.
Use this to define a metadata FIELD's structure before any document sets a value for it. Use the set document custom metadata tool separately, afterward, to set that field's actual value on individual documents. Define schemas before indexing metadata values.2 params
Define or update the schema for a Glean custom metadata group (field) — the reusable definition of its display labels, data type, and search/faceting behavior. Returns a simple {success: true} acknowledgement. Use this to define a metadata FIELD's structure before any document sets a value for it. Use the set document custom metadata tool separately, afterward, to set that field's actual value on individual documents. Define schemas before indexing metadata values.
group_namestringrequiredName of the custom metadata group (field) to create or update the schema for. Example: "priority".metadata_keysarrayrequiredList of metadata key definitions that make up this schema (a group can define more than one key). Each key needs a name matching the property in the document metadata (e.g. "priority", "team"), and can also specify a displayLabel and displayLabelPlural (human-friendly names), a propertyType controlling search/faceting behavior (TEXT, DATE, INT, USERID, PICKLIST, or TEXTLIST — MULTIPICKLIST isn't supported yet), uiOptions controlling where it's surfaced (NONE, SEARCH_RESULT, or DOC_HOVERCARD), hideUiFacet to hide it from search facets, uiFacetOrder to position it among visible facets, skipIndexing to exclude it from search ranking, and group to associate it with a property group. Example: [{"name": "priority", "displayLabel": "Priority", "propertyType": "PICKLIST"}].glean_upsert_document_custom_metadata#Set or update custom metadata values for one metadata group on a single document already indexed in Glean.
Returns a simple {success: true} acknowledgement; it does not echo back the stored values.
Use this to attach metadata VALUES (like a status, owner, or priority) to one document. Use the custom metadata schema tools (get/define/delete custom metadata schema) instead to define what a metadata field looks like, not to set its value.
Requires the metadata group referenced here to already have a schema defined via the define custom metadata schema tool.3 params
Set or update custom metadata values for one metadata group on a single document already indexed in Glean. Returns a simple {success: true} acknowledgement; it does not echo back the stored values. Use this to attach metadata VALUES (like a status, owner, or priority) to one document. Use the custom metadata schema tools (get/define/delete custom metadata schema) instead to define what a metadata field looks like, not to set its value. Requires the metadata group referenced here to already have a schema defined via the define custom metadata schema tool.
custom_metadataarrayrequiredList of metadata name/value pairs to set on the document for this group. Each entry has a name (matching a key defined in the group's schema) and a value, which must be a string, a number (for INT-type fields), or an array of strings (for list-type fields) — booleans aren't accepted. Example: [{"name": "priority", "value": "High"}].doc_idstringrequiredThe ID of the document to attach custom metadata to, matching the ID under which the document was indexed into Glean. Example: "jira-PROJ-1234".group_namestringrequiredName of the custom metadata group (field) — defined ahead of time via the define custom metadata schema tool — whose value you're setting on this document. Example: "priority".