Skip to main content

Data Source

The Guru connector enables you to ingest knowledge base content and organizational data from your Guru account into Nexla. This connector is particularly useful for applications that need to sync Cards, Collections, Boards, or user data from Guru into a data warehouse, analytics platform, or downstream system for search indexing, compliance archiving, or knowledge analytics.

The Guru connector enables you to retrieve knowledge base content and organizational data from Guru for use in Nexla data flows. Follow the instructions below to create a new data flow that ingests data from a Guru source in Nexla.
guru_api.png

Guru

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Guru connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Guru account, and click Next; or, create a new Guru credential for use in this flow.

  3. In Nexla, Guru data sources can be created using pre-built endpoint templates, which expedite source setup for common Guru endpoints. Each template is designed specifically for the corresponding Guru endpoint, making data source setup easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Guru sources can also be configured manually, allowing you to ingest data from Guru endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Guru endpoints. Each template is designed specifically for the corresponding Guru endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    List Teams

    Returns a list of all teams in the Guru account. Use this endpoint to retrieve team metadata for organizational reporting or to obtain team IDs needed for other Guru API calls.

    • Sends a GET request to /api/v1/teams using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each team as an individual record.

    Team IDs returned by this endpoint are required for endpoints such as Get Team Analytics and List Tag Categories.

    List Groups

    Returns a list of all groups in the Guru account. Use this endpoint to retrieve group metadata for access management reporting or to obtain group IDs for use in group-specific endpoints.

    • Sends a GET request to /api/v1/groups using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each group as an individual record.

    Group IDs returned by this endpoint are required for the List Group Collection Access and List Group Members endpoints.

    List Group Collection Access

    Returns a list of collections that a specific group has access to. Use this endpoint to audit which knowledge collections are accessible to a given group.

    • Sends a GET request to /api/v1/groups/{groupId} using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each accessible collection as an individual record.
    • Configure the following parameters: Group ID — the unique identifier of the group whose collection access should be retrieved.

    Use the List Groups endpoint to obtain group IDs. A User Token (rather than a Collection Token) is required to query group-level access data.

    List Group Members

    Returns a list of members in a specific group. Use this endpoint to audit group membership for compliance, access reviews, or directory synchronization.

    • Sends a GET request to /api/v1/groups/{groupId}/members using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each group member as an individual record.
    • Configure the following parameters: Group ID — the unique identifier of the group whose members should be listed.

    Use the List Groups endpoint to obtain group IDs. A User Token is required to access group membership data.

    List Members

    Returns a list of all members in the Guru account. Use this endpoint for user directory exports, onboarding audits, or to retrieve member IDs for use in other Guru API calls.

    • Sends a GET request to /api/v1/members using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each member as an individual record.

    A User Token (not a Collection Token) is required to list all account members.

    Get Team Analytics

    Returns analytics data for a specific team, including card views, searches, and engagement metrics. Use this endpoint to track knowledge base usage and adoption across a team.

    • Sends a GET request to /api/v1/teams/{teamId}/analytics using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each analytics record.
    • Configure the following parameters: Team ID — the unique identifier of the team for which analytics should be retrieved.

    Use the List Teams endpoint to obtain team IDs. Analytics data availability may vary based on your Guru plan.

    List Folder Items

    Returns a list of items contained in a specific folder. Use this endpoint to enumerate cards and boards organized within a known folder.

    • Sends a GET request to /api/v1/folders/{folderId}/items using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each folder item as an individual record.
    • Configure the following parameters: Folder ID — the unique identifier of the folder whose items should be listed.

    Use the List Folders or Search for folders endpoint to obtain folder IDs.

    Get Folder Parent

    Returns the parent folder of a specific folder, enabling traversal of the folder hierarchy. Use this endpoint to build full folder path metadata or to navigate the organizational structure of a Guru collection.

    • Sends a GET request to /api/v1/folders/{folderId}/parent using the base URL configured in your Guru credential.
    • Response data is extracted from $, returning the parent folder as a single record.
    • Configure the following parameters: Folder ID — the unique identifier of the folder whose parent should be retrieved.

    If the folder is a top-level folder within a collection, the parent may be the collection itself rather than another folder.

    List Tag Categories

    Retrieves all tag categories available for a given team. Use this endpoint to enumerate the tag taxonomy in your Guru account for content classification or reporting.

    • Sends a GET request to /api/v1/teams/{teamId}/tagcategories using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each tag category as an individual record.
    • Configure the following parameters: Team ID — the unique identifier of the team whose tag categories should be listed.

    Use the List Teams endpoint to obtain team IDs.

    List Collections

    Retrieves a list of all collections from the Guru API with optional search, filtering, and sorting parameters. Use this endpoint to enumerate knowledge collections for archiving, reporting, or to obtain collection IDs for downstream calls.

    • Sends a GET request to /api/v1/collections using the base URL configured in your Guru credential, with optional query parameters for Search, Sortfield, Sortdir, and Filter.
    • Response data is extracted from $[*], returning each collection as an individual record.
    • Configure the following parameters: Search — keyword search term to filter collections by name. Sortfield — field to sort results by. Sortdir — sort direction (ascending or descending). Filter — additional filter criteria.

    Collection Tokens only have access to the collection they were generated for. Use a User Token to list all collections in the account.

    List Folders

    Retrieves a list of folders from the Guru API, with optional filtering by collection, search terms, and sort order. Use this endpoint to enumerate folders for organizational mapping or to obtain folder IDs for subsequent calls.

    • Sends a GET request to /api/v1/folders using the base URL configured in your Guru credential, with optional query parameters including Token, Sort Field, Sort Order, Query, Search, Collection, Folder IDs, and Legacy Types.
    • Response data is extracted from $[*], returning each folder as an individual record.

    Use the Collection parameter to restrict results to folders within a specific collection. A User Token is required to list folders across all collections.

    Search Cards (Card Manager)

    Searches for cards using the Guru Card Manager endpoint, with support for keyword queries, filtering (including archived cards), and sort options. Use this endpoint to retrieve cards matching specific criteria for bulk export or analysis.

    • Sends a GET request to /api/v1/search/cardmgr using the base URL configured in your Guru credential, with optional parameters for Q (query string), Search Terms, Query Type, Show Archived, Max Results, Sort Field, Sort Order, Token, and X Guru Activity Subtype.
    • Response data is extracted from $[*], returning each matching card as an individual record.

    Set Show Archived to true to include archived cards in results. Use Max Results to control page size and Token for cursor-based pagination across large result sets.

    List AI evaluations

    Returns a paginated list of AI evaluations with optional filtering by question and agent. Use this endpoint to review AI answer quality assessments and monitor knowledge base accuracy over time.

    • Sends a GET request to /api/v1/aievaluations using the base URL configured in your Guru credential, with optional Question filter, Agent ID, and Sort order parameters.
    • Response data is extracted from $.evaluations[*], returning each AI evaluation as an individual record.
    • Configure the following parameters: Question filter — filter evaluations by question text. Agent ID — filter evaluations for a specific AI agent. Sort order — control the order of returned evaluations.

    AI evaluation data is available only on Guru plans that include the AI Answers feature. Confirm that your plan supports this endpoint before configuring this source.

    Search for folders

    Searches for folders by keyword terms, with an optional filter to restrict results to a specific collection. Use this endpoint to find folders by name when the folder ID is not yet known.

    • Sends a GET request to /api/v1/folders/search using the base URL configured in your Guru credential, with Search terms and an optional Collection ID parameter.
    • Response data is extracted from $[*], returning each matching folder as an individual record.
    • Configure the following parameters: Search terms — keyword terms to search folder names. Collection ID — optionally restrict search to a specific collection.

    Use a Collection Token scoped to the target collection, or a User Token to search across all collections.

    Get folder

    Retrieves detailed information about a specific folder by its ID. Use this endpoint to fetch full folder metadata including its name, collection, and associated items.

    • Sends a GET request to /api/v1/folders/{id} using the base URL configured in your Guru credential, with an optional Collection parameter and activity tracking headers.
    • Response data is extracted from $, returning the full folder object as a single record.
    • Configure the following parameters: Id — the unique identifier of the folder to retrieve. Collection — optional collection scoping parameter.

    Use the List Folders or Search for folders endpoint to obtain folder IDs.

    Search Documents with Natural Language

    Searches for documents using natural language query terms and returns results with source references. Use this endpoint to power AI-driven knowledge retrieval pipelines or to extract relevant content using semantic search.

    • Sends a GET request to /api/v1/search/documents using the base URL configured in your Guru credential, with optional parameters for Search Terms, Agent ID, Include Content, Max Results, Chunk Documents, and Limit to All Member Access.
    • Response data is extracted from $.results[*], returning each document result as an individual record.

    Set Include Content to true to embed the full document text in results. Use Chunk Documents for RAG-style pipelines that require document chunking.

    Search for Cards

    Searches for cards using query parameters with sorting and filtering options, returning results with relevance ranking. Use this endpoint for keyword-based card searches or to build search-driven knowledge ingestion pipelines.

    • Sends a GET request to /api/v1/search/query using the base URL configured in your Guru credential, with optional Query, Search Terms, Query Type, Show Archived, Max Results, Sort Field, Sort Order, and Include Card Attributes parameters.
    • Response data is extracted from $.results[*], returning each matching card as an individual record.

    Use Include Card Attributes to return extended metadata alongside each card result. For bulk exports without a search query, consider the List All Cards endpoint instead.

    List All Cards

    Lists all cards accessible to the authenticated user via the all-cards feed. Use this endpoint for bulk exports of the entire Guru knowledge base or for full-sync ingestion into a data warehouse.

    • Sends a GET request to /api/v1/cards using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each card as an individual record.

    A User Token is recommended for full account-wide card access. Collection Tokens will limit results to cards within the scoped collection only.

    Get Card by ID

    Retrieves a single card by its unique ID, including its full content and metadata. Use this endpoint when you need complete details of a specific Guru card, including HTML content and verification status.

    • Sends a GET request to /api/v1/cards/{cardId}/extended using the base URL configured in your Guru credential.
    • Response data is extracted from $, returning the full card object as a single record.
    • Configure the following parameters: Cardid — the unique identifier of the card to retrieve.

    Card IDs can be obtained from the List All Cards or Search for Cards endpoints. Use a lookup macro to pass card IDs dynamically when chaining API calls.

    List Collection Cards

    Lists all cards within a specific collection. Use this endpoint to perform collection-scoped bulk exports or to sync card content for a particular knowledge domain.

    • Sends a GET request to /api/v1/collections/{collectionId}/cards using the base URL configured in your Guru credential.
    • Response data is extracted from $[*], returning each card in the collection as an individual record.
    • Configure the following parameters: Collectionid — the unique identifier of the collection whose cards should be listed.

    Use the List Collections endpoint to obtain collection IDs. A Collection Token scoped to this collection, or a User Token, is required.

    Get Member by ID

    Retrieves details for a single team member by their unique ID, including profile information and role data. Use this endpoint to enrich member records retrieved from a bulk listing.

    • Sends a GET request to /api/v1/members/{memberId} using the base URL configured in your Guru credential.
    • Response data is extracted from $, returning the full member object as a single record.
    • Configure the following parameters: Memberid — the unique identifier of the member to retrieve.

    Member IDs can be obtained from the List Members endpoint. Use a lookup macro to pass member IDs dynamically when chaining API calls.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Guru sources can be configured to ingest data from any valid Guru API endpoint. The Guru REST API root URL is https://api.getguru.com/api/v1/, and endpoints follow standard REST conventions. Common endpoints include:

  • https://api.getguru.com/api/v1/search/query — Search for Cards across your knowledge base
  • https://api.getguru.com/api/v1/teams/{teamId}/cards — Retrieve all Cards for a team
  • https://api.getguru.com/api/v1/collections — List all Collections
  • https://api.getguru.com/api/v1/boards — List all Boards
  • https://api.getguru.com/api/v1/teams/{teamId}/members — Retrieve team members

First, select the HTTP method that will be used for calls to the Guru API from the Method pulldown menu. The most common methods are:

  • GET: For retrieving knowledge base data such as Cards, Collections, Boards, and users
  • POST: For searching Cards or creating new content programmatically

API Endpoint URL

  1. Enter the URL of the Guru API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the protocol (https://) and any required path parameters.

    For example, to retrieve all Cards for your team: https://api.getguru.com/api/v1/teams/{'{teamId}'}/cards

    Replace {'{teamId}'} with your actual Guru team ID, which can be found in your Guru account URL or via the Guru API.

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL. Note that Collection Tokens only have access to the Collection they were generated for — use a User Token for endpoints that span multiple Collections.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros—all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements.

Date/Time macros are useful for Guru API endpoints that support filtering by date, such as retrieving Cards updated within a specific time window.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime—for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. This format will be applied to the base datetime value of the macro—i.e., the value of {now} in {now-1}.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu—for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros allow you to reference data from previously configured data sources or lookups, enabling dynamic API endpoints that can adapt based on existing data.

Lookup-based macros are useful when you need to pass specific Guru IDs (such as Collection IDs or Card IDs) from another Nexla data source into the API URL dynamically.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data returned by the Guru API endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response.

For example, a typical Guru Cards list response wraps the card array in a top-level JSON structure. By specifying the path to the cards array, Nexla will treat each Card object as an individual record.

Path to Data is essential when Guru API responses contain nested data structures. For example, when listing Cards, the relevant data may be at a path like $.cards[*] or similar nested path depending on the endpoint.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format, enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation (e.g., $.cards[*] to access an array of cards, or $.data[*] for a generic data array).
    Path to Data Example:

    If the Guru API response includes a top-level array named cards containing the relevant records, the path to the response data would be entered as $.cards[*].

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content and format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

Metadata

If metadata is included in the Guru API response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. This is useful for preserving important context from the API response that applies to all records but is not part of the main data array — for example, pagination metadata or team-level information returned alongside card data.

Metadata paths are particularly useful when you want to preserve Guru API response context such as request timestamps, pagination details, or team identifiers that apply to all records in a response.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers and corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2). Additional headers may be required for API versioning or content type specifications.

    You do not need to include any authentication headers — the Basic Authentication credentials configured in your Guru credential are automatically included in every request. Common headers like Authorization are handled automatically by Nexla.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows you to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched and displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Guru data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.