---
title: Guru API Integration on Truto
slug: guru
category: Knowledge Management
canonical: "https://truto.one/integrations/detail/guru/"
---

# Guru API Integration on Truto



**Category:** Knowledge Management  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 253 tools for Guru that AI agents can call directly.

- **list_all_guru_aievaluations** — List AI evaluations in Guru. Returns the evaluation records including id and dateCreated.
- **create_a_guru_aievaluation** — Create an AI evaluation in Guru by submitting a JSON payload. Returns the created record including id and dateCreated.
- **get_single_guru_aievaluation_by_id** — Get a single AI evaluation in Guru by id. Returns the AI evaluation record including its id; the API reference does not enumerate further response fields for this endpoint. Required: id.
- **delete_a_guru_aievaluation_by_id** — Delete an AI evaluation in Guru by id. Returns an empty 204 response on success. Required: id.
- **create_a_guru_aievaluations_delete** — Bulk delete AI evaluations in Guru by submitting a JSON request body to the bulk-delete endpoint. Returns an empty 204 response on success. Required: a JSON request body whose fields follow Guru's AiEvaluationBulkDeleteRequest schema (the source docs reference the schema by name but do not enumerate its fields).
- **list_all_guru_aievaluations_exports** — Export AI evaluations from Guru as a CSV file. Returns the raw CSV-formatted export text (a text/csv payload whose columns are not enumerated in the API docs). No required parameters.
- **list_all_guru_aievaluation_results** — List the results of a Guru AI evaluation. Returns each result record with its id and the upstream AiEvaluationResult attributes (fields are defined by the evaluation type). Required: evaluation_id.
- **list_all_guru_team_analytics** — List analytics events for a Guru team. Returns up to 500 events per page, each with id, eventType, user, and eventDate; optional fromDate and toDate narrow the date range. Required: team_id.
- **get_single_guru_analytics_summarized_by_id** — Get summarized analytics for a card in a Guru team, optionally filtered by group, date range, and event types. Returns: id, attributes (the summary fields, whose shape is defined by the upstream AnalyticsSummary schema and is not enumerated in the docs). Required: id (the team id) and cardId.
- **list_all_guru_announcements** — List Guru team announcements owned by the authenticated user. Returns announcement records including their id; the remaining announcement fields are not enumerated in the Guru API reference. Max 50 per page.
- **create_a_guru_announcement** — Create a new announcement in Guru. Returns the created announcement record including its id; the remaining announcement fields are not enumerated in the Guru API reference.
- **get_single_guru_announcement_by_id** — Get the full Guru announcement by id. Returns the announcement record including its id; the remaining announcement fields are not enumerated in the Guru API reference. Required: id.
- **delete_a_guru_announcement_by_id** — Delete a Guru announcement by id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_announcements_delegateds** — List delegated announcements in Guru, returning all announcements owned by the authenticated user. Returns announcement records including id. Maximum of 50 announcements per page.
- **create_a_guru_announcement_export** — Initiate an export of user details for a Guru announcement. Returns the bulk operation response object acknowledging the export was queued; Guru's docs do not enumerate its fields, and the exported results are delivered by email when available rather than returned inline. Required: announcement_id.
- **guru_announcement_reads_bulk_update** — Mark a Guru announcement as read for the authenticated user. Returns an empty 204 response on success. Required: announcement_id.
- **create_a_guru_announcement_remind** — Send announcement reminders to any users who have not yet read the announcement in guru. Returns an empty 204 response on success. Required: announcement_id.
- **get_single_guru_stats_full_by_id** — Get full stats for a Guru announcement by id. Returns the aggregated announcement stats object — an id plus stats-specific attributes whose exact keys are not enumerated in the source. Required: id.
- **get_single_guru_stats_summary_by_id** — Get the stats summary for a Guru announcement by id. Returns the announcement's aggregate stats summary object with stat fields defined upstream by Guru. Required: id.
- **list_all_guru_stats_users** — List per-user stats for a Guru announcement. Returns a JSON array of AnnouncementUser records, each with an id and an attributes object — the upstream docs define the AnnouncementUser schema but do not enumerate its fields. Required: announcement_id.
- **create_a_guru_answer** — Create a new answer in Guru. Returns the created answer object including its id.
- **delete_a_guru_answer_by_id** — Archive an answer in guru by id. Returns an empty 204 response on success. Required: id.
- **guru_answers_restore** — Restore an archived answer in Guru by id. Returns the restored answer object including its id. Required: answer_id.
- **guru_answers_assign** — Assign a Guru answer to an expert. Returns the updated answer object including its id. Required: answer_id.
- **guru_answers_unassign** — Unassign a Guru answer from its assigned expert. Returns the updated answer object including its id. Required: answer_id.
- **create_a_guru_answers_minimal** — Create a minimal answer in Guru by posting a JSON payload to the answers-minimal endpoint. Returns: id, openapi, info, externalDocs, servers, tags, paths, components, x-original-swagger-version.
- **create_a_guru_answers_stream** — Create an answer for a specific question in Guru with streaming. Returns a server-sent event stream (text/event-stream) carrying the ChatThread created for the answer — an event stream to consume incrementally, not a single JSON object. Requires the question payload in the request body (Guru's shared AnswerQuerySpec used by its ask-a-question endpoints).
- **list_all_guru_answer_boosteddocuments** — List the boosted documents for a Guru Answer — the documents Guru matched to the answer's question. Returns each matched document record including id plus document attributes defined by Guru's upstream Document schema. Required: answer_id (the Answer's id).
- **list_all_guru_answer_relevantunverifieddocuments** — List the relevant unverified documents for an answer in Guru. Returns an array of matching document records, each with an id and content-type-specific attributes (fields per Guru's upstream Document schema). Required: answer_id (ID of the answer).
- **list_all_guru_openapis** — Fetch the OpenAPI specification document that describes every Guru API endpoint. Returns the document's openapi version, info metadata, and paths operation definitions, plus optional components and servers sections. Takes no parameters.
- **list_all_guru_swaggers** — Get the raw Swagger document describing the Guru API. Returns the full Swagger JSON specification as-is; its contents track the live API surface and are not enumerated field-by-field. Takes no parameters.
- **delete_a_guru_card_by_id** — Delete a card in guru by its id. Returns an empty 204 response on success. Required: id.
- **guru_cards_bulk_update** — Verify a card in guru by its id. Returns an empty 204 response on success. Required: card_id.
- **list_all_guru_card_comments** — List the undeleted comments on a Guru card. Returns each comment's id, status (OPEN or RESOLVED), and content. Required: card_id. Max 25 per page.
- **update_a_guru_card_comment_by_id** — Update a comment on a Guru card by id. Returns the updated comment with id, status (OPEN or RESOLVED), and content. Required: card_id, id, content.
- **delete_a_guru_card_comment_by_id** — Delete a comment on a Guru card by id. Returns an empty 204 response on success. Required: card_id and id.
- **create_a_guru_card_comment** — Add a comment to a Guru card. Returns the created comment with id, content, and dateCreated. Required: card_id and content.
- **get_single_guru_card_comment_by_id** — Get a single comment on a Guru card by id. Returns the comment's id, content, and dateCreated. Required: card_id and id.
- **list_all_guru_comment_replies** — List all replies to a comment on a Guru card. Returns an array of reply objects with id, content, and author. Required: card_id, comment_id. Up to 25 replies per page; use paging to fetch more.
- **create_a_guru_comment_reply** — Create a new reply to a comment on a Guru card. Returns the created reply object with id, content, and author. Required: card_id, comment_id.
- **update_a_guru_comment_reply_by_id** — Update a reply to a comment on a Guru card by id. Returns the updated reply object with id, content, and author. Required: id, card_id, comment_id.
- **delete_a_guru_comment_reply_by_id** — Delete a reply to a comment on a Guru card by id. Returns an empty 204 response on success. Required: id, card_id, comment_id.
- **guru_comment_resolves_bulk_update** — Resolve a card comment in Guru by setting its status to resolved. Returns an empty 204 response on success. Required: card_id, comment_id.
- **guru_comment_unresolves_bulk_update** — Unresolve a comment on a Guru card, setting the comment's status back to open. Returns an empty 204 response on success. Required: card_id, comment_id.
- **list_all_guru_card_verifiers** — List the verifiers assigned to a Guru card. Returns an array of verifier records with schema-specific fields defined upstream (the Guru reference does not enumerate the UserVerifier fields). Requires card_id.
- **create_a_guru_card_verifier** — Replace a Guru card's verifiers — the supplied verifier list is created and all existing verifiers are deleted. Returns the resulting verifier collection with schema-specific fields defined upstream (the Guru reference does not enumerate them). Requires card_id and a JSON array of verifier objects.
- **get_single_guru_card_verifier_by_id** — Get a verifier assigned to a Guru card by id. Returns: id, dateCreated, type, user. Requires card_id and id (the verifier's email address).
- **create_a_guru_cards_extended** — Create a card in Guru and return it with extended fact data, including the card's boards (teams) and collaborators. Returns: id, content, preferredPhrase, collection, boards, collaborators, verifiers, tags, shareStatus, verificationState, verificationReason, verificationReasons, verificationInterval, verificationType, nextVerificationDate, lastVerified, lastVerifiedBy, verificationInitiator,…
- **list_all_guru_cards_verificationmgrs** — List unverified cards in Guru that are accessible to the authenticated user, for triaging card verification. Returns each card's id, title, verificationState, dateCreated, lastModified, and view/copy/favorite/follower/board counts. A maximum of 50 cards is returned per response.
- **list_all_guru_card_archivesettings** — Get the scheduled archival settings for a Guru card. Returns the scheduled archival settings object (Guru's ScheduleArchivalResponse) when a schedule exists, or an empty 204 response when the card has no scheduled archival. Required: card_id and cardId (the card's ID).
- **guru_card_archivesettings_bulk_update** — Schedule a Guru card to be archived at a future date. Returns the scheduled archival settings object (Guru's ScheduleArchivalResponse). Required: card_id and cardId (the card's ID), plus a required JSON schedule archival request body; invalid or past dates are rejected.
- **guru_card_archivesettings_bulk_delete** — Cancel the scheduled archival for a Guru card. Returns an empty 204 response on success. Required: card_id and cardId (the card's ID).
- **list_all_guru_card_boards** — List the boards a card belongs to in Guru. Returns board records including their id and attributes holding the board's upstream fields. Required: card_id.
- **get_single_guru_card_extended_by_id** — Get a single Guru card with extended details — loads the card together with its teams and collaborators. Returns the card object including id, content, preferredPhrase (title), verificationState, boards, and collaborators. Required: id (the card's ID). Only up to 25 teams or collaborators are included per response; if more exist, the remainder is available on a next page.
- **guru_card_extendeds_bulk_update** — Update a Guru card's content and settings, including its verifiers, in a single call. Returns the updated Card object with id, preferredPhrase, content, shareStatus, tags, verifiers, and verification state. Required: card_id, content, preferredPhrase. Omitting tags removes all existing tags from the card; shareStatus TEAM makes it team shared, PRIVATE restricts it to the owner.
- **list_all_guru_card_favoritelists** — List the favorite lists in Guru that contain a specific card. Returns an array of favorite list objects. Required: card_id.
- **list_all_guru_card_folders** — List the Guru folders a given card is organized under. Returns folder records with folder-specific fields (id plus content-specific attributes). Required: card_id.
- **create_a_guru_card_unverify** — Unverify a card in Guru by marking the card with the given id as unverified, moving it back to the unverified state. Required: card_id.
- **list_all_guru_card_versions** — List a Guru card's version history. Returns the list of recorded versions for the card, reflecting each revision made as the card is updated. Required: card_id.
- **get_single_guru_card_version_by_id** — Get a specific historical version of a Guru card by id. Returns the card version snapshot including its id, content, version, preferredPhrase, and lastModified. Required: card_id and id.
- **create_a_guru_chat_ask** — Ask a question to Guru and get an answer drawn from your team's knowledge. Returns the answer record for the submitted question. Note: writes through the Guru API require a User token — read-only Collection tokens cannot be used for this call.
- **create_a_guru_chat_ask_async** — Ask a question asynchronously in Guru. Returns the chat answer object including its answer, status (COMPLETE, PENDING, or ERRORED), answerId, chatThreadId, turnId, and sources. Requires a JSON body with the question; while the answer is still processing the API returns 202 instead of the final result, so poll the question-ask operation until it reaches a final state.
- **get_single_guru_chat_ask_async_by_id** — Get the result of an async ask operation in Guru. Returns the generated answer with its answer, status (COMPLETE, PENDING, or ERRORED), answerId, chatThreadId, turnId, sources, knowledgeAgent, and classification. Required: thread_id and id. A 202 response means the answer is still pending and can be polled again.
- **create_a_guru_chat_knowledge_agent_route** — Route a chat question to a Guru knowledge agent. Sends the question as a JSON request body and returns the knowledge agent's response.
- **create_a_guru_message_action** — Perform an action on a Guru chat message. Returns the resulting chat message object including its id, content, and type. Required: message_id and the action request body; invalid requests or unknown actions are rejected with 400.
- **list_all_guru_chat_plans** — List chat plans in Guru. Returns each chat plan record including its id.
- **create_a_guru_chat_plan** — Create a chat plan in Guru. Returns the created chat plan record including its id.
- **update_a_guru_chat_plan_by_id** — Update a chat plan in Guru by id. Returns the updated chat plan record including its id. Required: id.
- **delete_a_guru_chat_plan_by_id** — Delete a chat plan in Guru by id. Returns an empty 204 response on success. Required: id.
- **guru_chat_plans_pause** — Pause a chat plan in Guru by its plan id. Returns the chat plan record including its id. Required: plan_id.
- **guru_chat_plans_resume** — Resume a chat plan in Guru, continuing its execution from where it left off. Returns the resumed chat plan object. Required: plan_id.
- **list_all_guru_chat_threads** — List Guru chat threads (conversations with the Guru AI assistant) for the connected workspace. Note: this endpoint is not in Guru's public API reference, so its parameters and response shape are unverified; expect thread records with an id. Takes no required parameters.

- **create_a_guru_chat_thread** — Create a new chat thread in Guru. Returns an empty 204 response on success.
- **get_single_guru_chat_thread_by_id** — Get a single Guru chat thread by id. Returns the chat thread record identified by its id; Guru IDs are UUID-formatted strings (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Required: id.
- **update_a_guru_chat_thread_by_id** — Update a chat thread in Guru by id. Returns an empty 204 response on success. Required: id.
- **delete_a_guru_chat_thread_by_id** — Delete a chat thread in Guru by id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_threads_reviews** — List Guru chat threads queued for review. Returns review-ready chat thread records for the workspace, filterable by date range, group IDs, asker email, search assistant, plan, and sort direction. All filters are optional; no required parameters.
- **get_single_guru_thread_event_by_id** — Get the chat message in a Guru chat thread that corresponds to a given agent event. Returns: id, content, role, dateCreated, chatMode, type, turnId, metadata, approvalAction, mcpToolApprovals, answerMode, documents, operatorMode. Required: id (the agent event id) and thread_id.
- **list_all_guru_collections** — List all collections in Guru that are accessible to the authenticated user, including only undeleted collections. Returns each collection's id, created_at, and updated_at.
- **create_a_guru_collection** — Create a new collection in Guru. Returns the created collection object including its id, created_at, and updated_at.
- **get_single_guru_collection_by_id** — Get a single collection in Guru by id. Returns the collection record including its id plus collection-specific attribute fields defined upstream. Required: id.
- **update_a_guru_collection_by_id** — Update an existing collection in Guru by id. Returns the updated collection object. Required: id.
- **delete_a_guru_collection_by_id** — Delete a collection in Guru by id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_collections_pinned_collections** — List the collections the authenticated user has pinned in Guru. Returns: id, name, dateCreated.
- **list_all_guru_collection_authors** — List the user groups that have author access to a Guru collection, optionally filtered by group name. Returns group records with id, name, numberOfMembers and role. Required: collection_id.

- **list_all_guru_collection_groups** — List the user groups that have access to a Guru collection, with the role each group holds. Returns group records with id, name, numberOfMembers and role. Required: collection_id.

- **create_a_guru_collection_group** — Give a group access to a collection in Guru. Requires collection_id, the id of the collection the group is being added to.
- **update_a_guru_collection_group_by_id** — Update a group's access to a collection in Guru. Returns a success confirmation from the API; no response body fields are documented upstream. Required: collection_id (the collection's ID) and id (the group's ID).
- **delete_a_guru_collection_group_by_id** — Delete a group's access to a collection in Guru. Returns an empty 204 response on success. Required: collection_id and id.
- **create_a_guru_collection_pin** — Pin a Guru collection, adding it to the user's pinned collections list. Returns an empty 204 response on success. Required: collection_id (the id of the collection to pin).
- **create_a_guru_collection_unpin** — Unpin a collection in Guru by removing it from the team's pinned collections. Returns an empty 204 response on success. Required: collection_id.
- **list_all_guru_comments** — List Guru comment threads across all cards visible to the current user, ordered most recently active first. Returns an array of thread results, each with an id and schema-specific attributes holding a top-level comment plus all of its replies.
- **list_all_guru_search_drafts** — Search Guru card drafts with a search payload posted in the request body. Note: this endpoint is not in Guru's public API reference, so its parameters and response shape are unverified; the documented alternative is search_queries.list with queryType=draft. Takes no required parameters.

- **list_all_guru_folders** — List folders in Guru. Returns all undeleted folders the current user has access to, including their id and title. A maximum of 110 folders per page.
- **create_a_guru_folder** — Create a folder in Guru. Returns the created folder object including its id and title. Required: title.
- **get_single_guru_folder_by_id** — Get a single Guru folder by id, including its cards and sections. Pass the homeBoardSlug from the collection's response as id to return the collection's Home Folder, the structure listing the folders it contains. Required: id.
- **update_a_guru_folder_by_id** — Update a Guru folder by id. Returns the updated folder object including its id, title, description, collection, lastModified, slug, and numberOfFacts. Required: id.
- **delete_a_guru_folder_by_id** — Delete a Guru folder by id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_search_folders** — Search Guru folders accessible to the current user. Returns matching folder objects including id, title, description, slug, collection, and numberOfFacts.
- **list_all_guru_folder_effectivepermissions** — Get the effective permissions applied to a folder in guru, including permissions configured on the folder itself and those inherited from folders higher up in the hierarchy. Returns permission records with id and upstream permission attributes. Required: folder_id.
- **list_all_guru_folder_items** — List the cards and folders that live directly within a Guru folder. Returns each folder item object including its id and card- or folder-specific attributes. Required: folder_id. Max 50 items per page.
- **get_single_guru_folder_parent_by_id** — Get the parent folder of a folder in Guru. Returns the parent folder object including id, title, description, slug, lastModified, lastModifiedBy, and numberOfFacts. Required: id.
- **get_single_guru_folder_pdf_by_id** — Export a Guru folder as a PDF. Returns the folder rendered as a downloadable PDF file rather than a JSON object. Required: id (the folder's id). Requests can take up to 2 minutes before timing out.
- **list_all_guru_kcs** — List kcs records from Guru. Returns card records including id, title, content, verificationState, and dateCreated.
- **create_a_guru_kc** — Create a KCS entry in Guru by sending a JSON request body. Returns the created KCS entry object as JSON.
- **delete_a_guru_kc_by_id** — Delete a KCS record in Guru by id. Required: id. Returns an empty 204 response on success.
- **update_a_guru_kcs_app_by_id** — Enable a ticket linking platform for Guru's Knowledge-Centered Service. Returns the updated list of enabled platform types (ZENDESK, LIVEPERSON, SALESFORCE). Required: id (the ticketing platform type to enable).
- **delete_a_guru_kcs_app_by_id** — Disable a ticket linking platform for Guru's Knowledge-Centered Service. Returns an empty 204 response on success. Required: id (the ticketing platform type to disable: ZENDESK, LIVEPERSON, or SALESFORCE).
- **list_all_guru_kcs_apps** — List the ticket linking platforms currently enabled for Guru's Knowledge-Centered Service. Returns an array of enabled platform types (ZENDESK, LIVEPERSON, SALESFORCE).
- **list_all_guru_knowledgeagents** — List Knowledge Agents (assistants) in guru. Returns the collection of knowledge agent records, each including its id.
- **create_a_guru_knowledgeagent** — Create a new Knowledge Agent in guru. Returns the created knowledge agent record including its id. Sends a JSON request body; the upstream documentation does not enumerate its fields.
- **get_single_guru_knowledgeagent_by_id** — Get a single Knowledge Agent in guru by id. Returns the knowledge agent record including its id. Required: id.
- **update_a_guru_knowledgeagent_by_id** — Update an existing Knowledge Agent (assistant) in Guru by id. Returns the updated agent's id and its configuration attributes. Required: id.
- **delete_a_guru_knowledgeagent_by_id** — Delete a Knowledge Agent in Guru by its id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_knowledgeagents_routing_metadatas** — List routing metadata for all Knowledge Agents (KAs) accessible to the caller in Guru. Returns per-agent routing records including id and an attributes object holding the agent's routing metadata.
- **list_all_guru_knowledgeagent_accessiblesources** — List the sources a Knowledge Agent in guru can access. Returns the KnowledgeAgentAccessibleSources payload — the collection of accessible sources returned by the upstream API; its field names are defined in Guru's OpenAPI schema and not enumerated in the available documentation. Required: agent_id.
- **get_single_guru_knowledgeagent_config_by_id** — Get a Guru Knowledge Agent's configuration by id. Returns the Knowledge Agent Config, whose attributes include the read-only model and miniModel fields; the remaining fields are schema-specific to Guru's KnowledgeAgentConfig. Required: id.
- **guru_knowledgeagent_configs_bulk_update** — Update a Guru Knowledge Agent's configuration by agent_id with a Knowledge Agent Config body. Returns the updated config, whose attributes include the read-only model and miniModel fields; the remaining fields are schema-specific to Guru's KnowledgeAgentConfig. Required: agent_id and the config body. model, miniModel, and the fallback model fields are read-only — submitted values are ignored.
- **list_all_guru_config_versions** — List the config version history for a Knowledge Agent in Guru, newest first. Returns config version records including their id. Required: agent_id.
- **get_single_guru_config_version_by_id** — Get a single config version of a Knowledge Agent in Guru by version id. Returns the config version record including its id. Required: agent_id and id.
- **list_all_guru_knowledgeagent_experts** — List the users and groups that an answer from a Guru Knowledge Agent can be assigned to. Returns collaborator entries with: id, type. Required: agent_id.
- **list_all_guru_knowledgeagent_groups** — List the groups associated with a Knowledge Agent in guru. Returns the groups' access records for the agent. Required: agent_id.
- **create_a_guru_knowledgeagent_group** — Grant a user group access to a Guru Knowledge Agent with a role of ADMIN, EXPERT or VIEWER. Returns the created access record with group, role and objectRole. Required: agent_id, group, role.

- **update_a_guru_knowledgeagent_group_by_id** — Change the role a user group holds on a Guru Knowledge Agent (ADMIN, EXPERT or VIEWER). Returns the updated access record with group, role and objectRole. Required: agent_id, id (the group id), role.

- **delete_a_guru_knowledgeagent_group_by_id** — Delete a group's access to a Knowledge Agent in Guru by removing the group from the agent. Returns an empty 204 response on success. Required: agent_id and id.
- **list_all_guru_knowledgeagent_guardrails** — List the guardrails configured on a Knowledge Agent in Guru. Returns an array of KnowledgeAgentGuardrail objects, each including its id and name — Guru's docs reference the full guardrail schema without publishing its remaining field list. Required: agent_id.
- **create_a_guru_knowledgeagent_guardrail** — Create a new guardrail on a Knowledge Agent in Guru. Returns the created KnowledgeAgentGuardrail object including its id and name — Guru's docs reference the full guardrail schema without publishing its remaining field list. Requires agent_id and a KnowledgeAgentGuardrail request body.
- **update_a_guru_knowledgeagent_guardrail_by_id** — Update an existing guardrail on a Knowledge Agent in Guru. Returns the updated KnowledgeAgentGuardrail object including its id and name — Guru's docs reference the full guardrail schema without publishing its remaining field list. Requires agent_id, id, and a KnowledgeAgentGuardrail request body.
- **delete_a_guru_knowledgeagent_guardrail_by_id** — Delete a guardrail from a Knowledge Agent in Guru. Returns an empty 204 response on success. Required: agent_id and id.
- **get_single_guru_knowledgeagent_guardrail_by_id** — Get a single guardrail by id on a Knowledge Agent in Guru. Returns the KnowledgeAgentGuardrail object including its id. Required: agent_id and id.
- **create_a_guru_knowledgeagent_image** — Upload an image for a Knowledge Agent in Guru, attaching it to the agent specified by agent_id. Required: agent_id.
- **guru_knowledgeagent_images_bulk_delete** — Delete the image of a knowledge agent in Guru. Returns an empty 204 response on success. Required: agent_id.
- **list_all_guru_knowledgeagent_mcps** — List the external MCP servers configured for a Guru Knowledge Agent. Returns an array of MCP server records, each identified by its id. Required: agent_id.
- **create_a_guru_knowledgeagent_mcp** — Add an external MCP server to a Guru Knowledge Agent. Returns the added MCP server record, including its id. Required: agent_id and an MCP server configuration body.
- **update_a_guru_knowledgeagent_mcp_by_id** — Update an external MCP server's configuration for a Guru Knowledge Agent. Returns the updated MCP server record, including its id. Required: agent_id, id, and an MCP server configuration body.
- **delete_a_guru_knowledgeagent_mcp_by_id** — Remove an external MCP server from a Guru Knowledge Agent. Returns an empty 204 response on success. Required: agent_id and id.
- **get_single_guru_knowledgeagent_mcp_context_by_id** — Get the MCP context for a routed Knowledge Agent in Guru. Returns the agent's MCP context as an opaque JSON payload whose fields are not enumerated in Guru's documentation. Required: id (the Knowledge Agent ID).
- **list_all_guru_mcp_status** — Get MCP status for a Guru Knowledge Agent, including user connection status for its MCP servers. Returns an array of status records with id and upstream-defined attributes. Required: agent_id.
- **create_a_guru_knowledgeagent_migrate** — Trigger a migration for a Knowledge Agent in guru, identified by its Knowledge Agent id. Returns an empty 204 response on success. Required: agent_id.
- **list_all_guru_knowledgeagent_pages** — List the pages of a Guru Knowledge Agent. Returns the collection of pages belonging to the specified Knowledge Agent. Required: agent_id.
- **get_single_guru_knowledgeagent_qualityconfig_by_id** — Get the quality configuration for a Knowledge Agent in Guru by id. Returns the agent's quality configuration object with settings-specific fields defined by Guru. Required: id.
- **guru_knowledgeagent_qualityconfigs_bulk_update** — Update the quality configuration for a Knowledge Agent in Guru. Returns the agent's quality configuration object with settings-specific fields defined by Guru. Required: agent_id and a JSON quality configuration payload.
- **create_a_guru_qualityconfig_execute** — Execute the quality configuration for a Knowledge Agent in Guru, triggering its configured quality checks. Returns an empty 204 response on success. Required: agent_id.
- **list_all_guru_qualityconfig_rules** — List quality rules configured for a Knowledge Agent in guru. Returns quality rule objects including their id and name. Required: agent_id.
- **create_a_guru_qualityconfig_rule** — Create a quality rule for a Knowledge Agent in guru by mode. Returns the created quality rule including its id and name. Required: agent_id, mode, and a QualityRule request body.
- **update_a_guru_qualityconfig_rule_by_id** — Update a quality rule for a Knowledge Agent in guru. Returns the updated quality rule including its id and name. Required: agent_id, id, and a QualityRule request body.
- **delete_a_guru_qualityconfig_rule_by_id** — Delete a quality rule by id for a Knowledge Agent in guru. Returns an empty 204 response on success. Required: agent_id and id.
- **get_single_guru_qualityconfig_rule_by_id** — Get a single quality rule by id for a Knowledge Agent in guru. Returns the quality rule including its id. Required: agent_id and id.
- **create_a_guru_rules_revert** — Revert a Knowledge Agent's quality rules back to their default settings in Guru. Returns the reverted quality rules as an array, including each rule's id and name. Required: agent_id, mode (one of VERIFY, UNVERIFY, or ARCHIVE).
- **get_single_guru_knowledgeagent_setup_by_id** — Get the setup for a Knowledge Agent in Guru by id. Returns the setup record's id and setup attributes whose fields are defined by Guru's KnowledgeAgentSetup schema. Required: id (Knowledge Agent ID).
- **list_all_guru_knowledgeagent_skills** — List all skills configured on a Guru Knowledge Agent. Returns skill records with id and attributes (the KnowledgeAgentSkill fields defined in Guru's API reference; not enumerated in the source docs). Required: agent_id.
- **create_a_guru_knowledgeagent_skill** — Create a skill on a Guru Knowledge Agent. Returns the created skill record: id and attributes (the KnowledgeAgentSkill fields defined in Guru's API reference; not enumerated in the source docs). Required: agent_id.
- **update_a_guru_knowledgeagent_skill_by_id** — Update a skill on a Guru Knowledge Agent by id. Returns the updated skill record: id and attributes (the KnowledgeAgentSkill fields defined in Guru's API reference; not enumerated in the source docs). Required: agent_id, id.
- **delete_a_guru_knowledgeagent_skill_by_id** — Delete a skill from a Guru Knowledge Agent by id. Returns an empty 204 response on success. Required: agent_id, id.
- **guru_knowledgeagent_skills_disable** — Disable a skill on a Guru Knowledge Agent by skill_id. Returns the skill record including id. Required: agent_id, skill_id.
- **guru_knowledgeagent_skills_enable** — Enable a skill on a Knowledge Agent in guru. Returns the enabled skill record including its id and upstream-defined skill attributes. Required: agent_id, skill_id.
- **get_single_guru_knowledgeagent_skill_by_id** — Get a single skill on a Knowledge Agent in guru by id. Returns the skill record including its id and upstream-defined skill attributes. Required: id, agent_id.
- **list_all_guru_knowledgeagent_skills_access_availables** — List the users and groups eligible for skill access on a Guru Knowledge Agent. Returns a paged array of team entities, each with an id and a type distinguishing users from groups. Required: agent_id.
- **list_all_guru_skill_acceses** — List skill access records for a Knowledge Agent skill in Guru. Returns records with id and access-specific fields under attributes. Required: agent_id, skill_id.
- **create_a_guru_skill_accese** — Create a skill access record for a Knowledge Agent skill in Guru. Returns the created record with id and access-specific fields under attributes. Required: agent_id, skill_id. Body fields are not enumerated in the upstream documentation.
- **delete_a_guru_skill_accese_by_id** — Delete a skill access entry for a Guru Knowledge Agent, removing the access granted on the specified skill. Returns an empty 204 response on success. Required: id, agent_id, skill_id.
- **list_all_guru_skill_files** — List all files attached to a Knowledge Agent Skill in guru. Returns each skill file record: id plus an attributes object holding the content-type-specific file fields. Required: agent_id, skill_id.
- **create_a_guru_skill_file** — Create a file on a Knowledge Agent Skill in guru. Returns the created skill file object: id plus an attributes object holding the content-type-specific file fields. Required: agent_id, skill_id, and the skill file payload as the request body.
- **update_a_guru_skill_file_by_id** — Update a skill file on a Knowledge Agent Skill in guru. Returns the updated skill file object: id plus an attributes object holding the content-type-specific file fields. Required: agent_id, skill_id, id, and the skill file payload as the request body.
- **delete_a_guru_skill_file_by_id** — Delete a skill file from a Knowledge Agent Skill in guru. Returns an empty 204 response on success. Required: agent_id, skill_id, id.
- **get_single_guru_skill_file_by_id** — Get a single skill file by id from a Knowledge Agent Skill in guru. Returns the skill file record: id plus content-type-specific file attributes. Required: agent_id, skill_id, id.
- **list_all_guru_file_versions** — List the version history of an inline Knowledge Agent Skill file in Guru, returned newest first. Returns each version's id, status, and dateCreated. Required: agent_id, skill_id, file_id.
- **get_single_guru_file_version_by_id** — Get a single inline skill file version by id in Guru. Returns the skill file version object, including its id. Required: id (the version id), agent_id, skill_id, and file_id.
- **list_all_guru_skill_versions** — List the version history for a skill on a Guru Knowledge Agent, newest first. Returns skill version records with an id and attributes (schema-specific version fields). Required: agent_id, skill_id.
- **get_single_guru_skill_version_by_id** — Get a single skill version by id for a skill on a Guru Knowledge Agent. Returns the skill version record with an id and attributes (schema-specific version fields). Required: agent_id, skill_id, id.
- **list_all_guru_answersubscriptions** — List answer subscriptions for a Knowledge Agent's Slack setup in guru. Returns: id, dateCreated, dateUpdated, openapi, info, externalDocs, servers, tags, paths, components, x-original-swagger-version. Required: agent_id, slack_setup_id.
- **create_a_guru_answersubscription** — Create an answer subscription for a Knowledge Agent's Slack setup in guru. Returns: id, dateCreated, dateUpdated, openapi, info, externalDocs, servers, tags, paths, components, x-original-swagger-version. Required: agent_id, slack_setup_id.
- **create_a_guru_answersubscription_setting** — Update a Slack Answer Channel Subscription's per-channel response settings in guru. Returns an empty 204 response on success. Required: agent_id, slack_setup_id, answersubscription_id, and a JSON body of per-channel response settings.
- **list_all_guru_channels** — List the Slack channels connected to a Guru Knowledge Agent's Slack setup. Returns the collection of channels linked to that setup. Required: agent_id, slack_setup_id.
- **create_a_guru_knowledgeagent_testprompt** — Run a test prompt against a Guru knowledge agent to check how it responds. Returns the prompt test result object with agent-specific fields (the upstream API does not enumerate the response shape). Required: agent_id.
- **list_all_guru_knowledgeagent_urls** — List the URLs configured as sources for a Guru Knowledge Agent. Returns each URL record with its id and url. Required: agent_id.
- **create_a_guru_knowledgeagent_url** — Add a URL as a source for a Guru Knowledge Agent. Returns the created URL record with its id and url. Required: agent_id.
- **update_a_guru_knowledgeagent_url_by_id** — Update a URL attached to a Knowledge Agent in Guru. Returns the updated URL record including its id. Required: id (the URL record id) and agent_id (the Knowledge Agent id). Send the updated fields in the JSON body.
- **delete_a_guru_knowledgeagent_url_by_id** — Delete a URL from a Guru knowledge agent by id. Returns an empty 204 response on success. Required: agent_id and id.
- **list_all_guru_navigationpins_pinnableobjects** — List the guru objects that can be pinned to navigation. Returns an array of pinnable object records, each with its id and an attributes object containing the upstream-defined fields of the pinnable object.
- **list_all_guru_navigationpins_users** — List the navigation pins saved by the authenticated user in Guru. Returns each pin record including its id.
- **create_a_guru_navigationpins_user** — Create a navigation pin for the authenticated user in Guru. Returns the created pin record including its id.
- **update_a_guru_navigationpins_user_by_id** — Update a navigation pin for the authenticated user in Guru. Returns the updated pin record including its id. Required: id.
- **delete_a_guru_navigationpins_user_by_id** — Delete a navigation pin for the authenticated user in Guru. Returns an empty 204 response on success. Required: id.
- **list_all_guru_navigationpins_workspaces** — List the navigation pins configured for the workspace in guru. Returns the collection of navigation pin records available to the authenticated user's workspace.
- **create_a_guru_navigationpins_workspace** — Create a navigation pin on a workspace in Guru. Returns the created navigation pin record including its id. The request takes a JSON body; Guru's API reference does not enumerate its field-level payload.
- **update_a_guru_navigationpins_workspace_by_id** — Update the navigation pins for a Guru workspace. Returns the updated record with its id. Required: id.
- **delete_a_guru_navigationpins_workspace_by_id** — Delete the navigation pins for a Guru workspace. Returns an empty 204 response on success. Required: id.
- **create_a_guru_oauthclient_logo_url** — Upload a logo image for a Guru OAuth client as a multipart/form-data file. Returns the updated OAuthClient including its id, logoUrl, and remaining client attributes. Required: client_id and logo.
- **get_single_guru_people_by_id** — Get the profile for a specific person in Guru. Returns the person's profile with content-type-specific fields defined by Guru's People API. Required: id.
- **update_a_guru_people_by_id** — Update the profile for a person in guru. Sends the profile changes as a JSON body and returns the updated profile's id. Required: id.
- **list_all_guru_directreports** — List all users that report directly to the specified user in Guru. Returns each direct report as a person record with userId, displayName, manager, deleted, and startDate. Required: user_id.
- **list_all_guru_quality_runs** — List quality runs in Guru. Returns each run's id, created_at, and updated_at.
- **guru_quality_runs_revert** — Revert a quality run in Guru by id. Returns the reverted run's id, created_at, and updated_at. Required: run_id.
- **create_a_guru_runs_simulate** — Simulate a quality agent run for a specific document in Guru. Returns the quality agent simulation response with schema-specific fields defined by Guru's QualityAgentSimulationResponse. Required: type, simulate_id, and id (the document ID); a JSON request body is required.
- **list_all_guru_agents** — List the agents included in a specific Guru quality run simulation. Returns agent records with their id. Required: type, simulate_id.
- **list_all_guru_run_details** — List the detail records of a quality agent run in Guru. Each entry is a QualityAgentRunDetail record, returned as id plus an attributes object (the upstream field set is not enumerated in the reference docs). Required: run_id.
- **get_single_guru_run_detail_by_id** — Get the quality agent run detail for a specific document in Guru. Returns the QualityAgentRunDetail record as id plus an attributes object (the upstream field set is not enumerated in the reference docs). Required: run_id, mode (VERIFY, UNVERIFY, or ARCHIVE), type (GURU, SOURCE, GURU_ATTACHMENT, WEB, or MCP), and id (the document ID).
- **list_all_guru_roles** — List the roles available in Guru. Returns a JSON array of role records, each with its id and name.
- **list_all_guru_roles_permissions** — List the roles and their permissions available in Guru. Returns an array of role objects, each including its id.
- **list_all_guru_search_cardmgrs** — Search for Guru cards matching a query and return the matching card records. Returns card fields such as id, phrase, content, verificationState, collection, and tags. A maximum of 50 cards is returned per call; when more results exist, a link to the next page is included in the Link header.
- **create_a_guru_search_cardmgr** — Search Guru cards with a structured JSON query (the Card Manager query language): filter by title, tag, owner, verifier, verification state, folder ids, collection ids, dates and more, combined with search terms, sorting and paging. Returns up to 50 cards per page (id, preferredPhrase, content, verificationState, collection, owner, lastModified, tags, boards); the next page is linked via the Link header and the token parameter.

- **list_all_guru_search_documents** — Search across Guru and your connected Sources. Returns a search result whose fields Guru publishes as a named schema without enumerating them in the public reference.
- **create_a_guru_search_document** — Search across Guru and your connected Sources by posting a JSON query specification. Returns a document search result whose fields Guru publishes as a named schema without enumerating them in the public reference. Requires a SearchQuerySpec JSON body.
- **list_all_guru_search_queries** — Search Guru cards by free-text query and search terms, with optional sorting, archived-card inclusion and card attributes. Returns up to 50 cards per page (id, preferredPhrase, content, verificationState, collection, owner, lastModified, tags, boards); the next page is linked via the Link header and the token parameter.

- **create_a_guru_search_sourcemgr** — Search source records accessible to the user in Guru by submitting a JSON search query in the request body. Returns the DocumentSearchResponse payload, whose field-level structure is defined in Guru's upstream API reference; supply the query spec (SearchQuerySpec) as the JSON body.
- **list_all_guru_filters_sources** — List the sources available to filter search results in Guru's Search with Sources API. Returns a source record including its id. No required parameters.
- **list_all_guru_sources_groups** — List source groups in Guru. Returns the collection of source groups, each with its id and name.
- **get_single_guru_sources_group_by_id** — Get a single source group in Guru by id. Returns the source group object with its id and source-group-specific attributes. Required: id.
- **list_all_guru_source_objecttypes** — List the object types defined for a source in Guru. Returns each object type record including its id and source-specific attributes. Required: source_id.
- **update_a_guru_objecttype_object_by_id** — Mark a Guru source object as part of the current full sync by its external id. Returns an empty 204 response on success. Required: id (object external id), source_id, object_type_id.
- **guru_object_files_bulk_update** — Update the file attached to an external object in Guru, addressed by its source, object type, and external id. Sends a JSON request body with the file payload. Returns the stored object file record: id plus content-type-specific attributes defined by the object type. Required: source_id, object_type_id, external_id.
- **get_single_guru_metadatum_by_id** — Get the metadata of a single object of an object type within a source in Guru. Returns the object's metadata with fields defined by the source's object type schema. Required: source_id, object_type_id, id.
- **list_all_guru_team_tagcategories** — List the tag categories in a Guru team. Returns tag categories with their id. Required: team_id.
- **create_a_guru_team_tagcategory** — Create a tag category in a Guru team. Returns the created tag category with its id. Required: team_id.
- **update_a_guru_team_tagcategory_by_id** — Update a tag category in a Guru team by id. Returns the updated tag category with its id. Required: team_id, id.
- **delete_a_guru_team_tagcategory_by_id** — Delete a tag category in a Guru team by id. Returns an empty 204 response on success. Required: team_id, id.
- **create_a_guru_tagcategories_tag** — Create a new tag in a Guru team's tag categories. Returns the created tag object including its id, status, and dateCreated. Required: team_id and the tag config request body.
- **update_a_guru_tagcategories_tag_by_id** — Update an existing tag in a Guru team. Returns the updated tag object including its id, status, and dateCreated. Required: id, team_id, and the tag config request body.
- **get_single_guru_tagcategories_tag_by_id** — Get a single tag by id in a Guru team. Returns the tag object including its id, status, and dateCreated. Required: id and team_id.
- **list_all_guru_tasks_mentions** — List user mention notifications in Guru. Returns mention notification records including their id and content-type-specific attributes fields. Supports sorting by sortField (cardTitle, creator, dateSent) and sortOrder (ASC, DESC).
- **list_all_guru_members** — List all team members in Guru. Returns team member records (id) in a paginated array — a maximum of 50 members per page, with a Link header pointing to the next page when more exist.
- **list_all_guru_team_stats** — Get a Guru team's stats. Returns the team's TeamStats object, which per Guru's docs carries counts of trusted and unverified cards, an overall trust score, and the team card count; the exact field-level keys are not documented upstream. Required: team_id, teamId.
- **list_all_guru_templates_cards** — List card templates in Guru. Returns card template records, each including its id and template-definition attributes (the Guru API reference does not enumerate the template schema). No required parameters.
- **create_a_guru_templates_card** — Create a card template in Guru by submitting its JSON template definition. Returns the created card template record including its id and template-definition attributes.
- **get_single_guru_templates_card_by_id** — Get a single card template by id in Guru. Returns the card template record including its id and template-definition attributes (the template schema itself is not enumerated in the API reference). Required: id.
- **update_a_guru_templates_card_by_id** — Update a card template by id in Guru by submitting its JSON template definition. Returns the updated card template record including its id and template-definition attributes. Required: id.
- **delete_a_guru_templates_card_by_id** — Delete a card template by id in Guru. Returns an empty 204 response on success. Required: id.
- **list_all_guru_groups** — List all user groups in Guru. Returns every group on the team with its id and name.
- **create_a_guru_group** — Create a new user group in Guru. Returns the created group with its id and name.
- **get_single_guru_group_by_id** — Get a single user group in Guru by id. Returns: id, attributes, openapi, info, externalDocs, servers, tags, paths, components, x-original-swagger-version. Required: id.
- **update_a_guru_group_by_id** — Update a Guru user group: rename it or replace its members and their roles (ADMIN, AUTHOR, MEMBER, COLL_ADMIN). Returns the updated group with id, name, numberOfMembers, dateCreated and modifiable flags. Required: id.

- **delete_a_guru_group_by_id** — Delete a user group in Guru by id. Returns an empty 204 response on success. Required: id.
- **list_all_guru_group_collections** — List the collections a Guru group has access to. Returns each collection with its id. Required: group_id.
- **delete_a_guru_group_member_by_id** — Delete a user group member from a Guru group. Returns an empty 204 response on success. Required: group_id and id.
- **create_a_guru_group_member** — Add one or more members to a Guru user group by sending a JSON array of member objects. Returns the created member records including id, dateCreated, and dateLastModified. Required: group_id.
- **list_all_guru_group_members** — List the members of a Guru user group. Returns member records including id, dateCreated, and dateLastModified. A maximum of 100 members is returned per page. Required: group_id.
- **list_all_guru_user_followers** — List all followers of a Guru user. Returns follower records including: id, firstName, lastName, and followedDate; an empty result is returned when the user has no followers. Required: user_id.
- **list_all_guru_user_followings** — List all users a Guru user follows. Returns an array of followed-user records, each with an id and an attributes object of the followed user's fields (the endpoint can sort by first name, last name, or followed date). Required: user_id. Returns an empty 204 response if the user follows no one.
- **list_all_guru_whoamis** — Get the identity of the authenticated user in Guru via the whoami endpoint. Returns the user record tied to the API credentials used, including its id. Requires no parameters and takes no request body.
- **list_all_guru_widgets** — List widgets in Guru. Returns an array of Widget objects, each with its id and type; the upstream API references the Widget schema without enumerating further fields. No required parameters.
- **update_a_guru_widget_by_id** — Update a widget in Guru by id. Returns the updated Widget object including its id and type; the upstream API references the Widget schema without enumerating further fields. Required: id and a Widget data body.
- **create_a_guru_widget_widgetimage** — Upload an image for a widget in Guru. Returns the updated Widget object including its id and its widget-specific attributes. Required: widget_id, image_id, and widgetImage (the image file to upload).
- **delete_a_guru_widget_widgetimage_by_id** — Delete the image at a widget's image location in Guru. Returns an empty 204 response on success. Required: widget_id and id (the image location id).
- **list_all_guru_workspaces_permissions** — List the workspace permissions accessible to the authenticated Guru API token. Returns the permission record object with content-type-specific fields; consult Guru's API reference for the field-level breakdown. No required parameters.
- **create_a_guru_workspaces_permission** — Create a workspace permission in Guru. Returns the created permission record including its id and dateCreated. Requires a JSON request body.
- **update_a_guru_workspaces_permission_by_id** — Update a workspace permission in Guru by its id. Returns: id. Required: id.
- **delete_a_guru_workspaces_permission_by_id** — Delete a workspace permission in Guru by its id. Returns an empty 204 response on success. Required: id.
- **guru_card_contents_bulk_update** — Update the content of an existing card in Guru, replacing its HTML or Markdown body. Returns an empty 204 response on success. Requires card_id and content.
- **list_all_guru_folder_permissions** — List the permissions set directly on a Guru folder: which user groups can view or edit it and with what role. For permissions inherited from the collection use the effective-permissions endpoint. Returns permission records with the group (id, name) and role. Required: folder_id.

- **guru_source_object_contents_bulk_update** — Update the content of a source object in Guru, replacing the record stored for external_id under a custom source's object type. Required: source_id, object_type_id, external_id. Returns a response whose shape is content-type-specific and depends on the object type's schema.
- **create_a_guru_thread_message** — Add a new message to a Guru chat thread. The chat assistant's response is streamed back as a server-sent event (SSE) stream rather than a JSON body, and the stream events carry the ChatMessage record. Returns: id, content, role, dateCreated, chatMode, type, turnId, metadata, approvalAction, mcpToolApprovals, answerMode, documents, operatorMode. Required: thread_id and a message body.
- **list_all_guru_thread_messages** — List all messages in a Guru chat thread in reverse chronological order. Returns message records with id, content, role, dateCreated, and turnId. Required: thread_id.

## How it works

1. **Link your customer's Guru account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Guru.** The Proxy API is a 1-to-1 mapping of the Guru API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed AI knowledge answers inside helpdesk tickets** — Support platforms can let agents query their customers' Guru workspace from the ticket view to resolve issues faster without context-switching. This turns verified internal knowledge into instant ticket deflection and shorter handle times.
- **Capture new knowledge from solved conversations** — CX and support tools can offer a 'Publish to Guru' action that converts a great agent response or resolved ticket into a draft Guru Card. This closes the KCS loop so knowledge grows automatically as teams solve problems.
- **Power sales enablement with real-time battle cards** — Revenue intelligence and meeting tools can surface verified Guru Cards during live calls based on what the prospect is asking. Reps get accurate pricing, security, and competitive answers sourced from their company's own trusted knowledge.
- **Sync product and project data into Guru for unified search** — PM, docs, and collaboration tools can push their records into Guru as a source so they become indexable by Guru's AI Knowledge Agents. Customers get a single AI search layer that spans your product's data alongside their broader knowledge base.
- **Automate knowledge freshness from product events** — Feature flag, release management, or change-tracking tools can automatically unverify related Guru Cards when a product change ships. This keeps documentation trustworthy without relying on humans to remember to update it.

## What you can build

- **Agent copilot sidebar** — Call `create_a_guru_chat_ask` or `create_a_guru_search_cardmgr` on ticket open to render the top matching Guru Cards and an AI-synthesized answer directly in your app's side panel.
- **One-click Card publishing** — Let end users turn any message, note, or document in your product into a Guru Card using `create_a_guru_cards_extended`, with the originating record linked for traceability.
- **Conversational knowledge agent embed** — Build a chat UI backed by `create_a_guru_chat_thread` and `create_a_guru_thread_message` so users can have multi-turn conversations with their Guru Knowledge Agent from inside your app.
- **External source ingestion** — Push records from your product into Guru via `guru_source_object_contents_bulk_update` so they're indexed by Guru's AI search alongside native Cards.
- **Auto-unverify on upstream changes** — Trigger `create_a_guru_card_unverify` or `guru_cards_bulk_update` when a related entity in your product changes, so stale documentation is flagged for SME review automatically.
- **Announcements and tasks feed** — Pull `list_all_guru_announcements` and `list_all_guru_tasks_mentions` to surface pending knowledge tasks and company announcements inside your intranet, portal, or dashboard.

## FAQs

### How do end users authenticate their Guru account?

Truto handles the Guru auth flow for you — your end users connect via a hosted connect UI or token exchange, and Truto manages credential storage and refresh so you never touch secrets directly.

### Can we both read and write knowledge in Guru?

Yes. The available tools cover full CRUD on Cards, Collections, Folders, Comments, Verifiers, Templates, and Announcements, plus write access for AI chat, threads, and external source content ingestion.

### Does the integration support Guru's AI chat and Knowledge Agents?

Yes. You can call `create_a_guru_chat_ask` (sync) or `create_a_guru_chat_ask_async` for AI answers, manage chat threads and messages, and configure Knowledge Agents, skills, guardrails, and MCP connectors programmatically.

### How do we keep Guru Cards fresh when source data changes in our product?

Use `create_a_guru_card_unverify` or `guru_cards_bulk_update` to flag Cards as needing review when related entities change, or push updated content via `guru_source_object_contents_bulk_update` for Cards sourced from your system.

### How is pagination and rate limiting handled?

Truto normalizes Guru's pagination into a consistent cursor-based interface across all list endpoints, and transparently handles retries and backoff when Guru's rate limits are hit so your integration stays reliable.

### Can we scope what our integration accesses in a customer's Guru workspace?

Yes. You can list Collections, Folders, Groups, and permissions to respect existing access boundaries, and use `list_all_guru_whoamis` plus role and permission endpoints to confirm what the connected user can see or modify.
