Skip to main content

KnowBe4 (KMSAT) Data Source

The KnowBe4 (KMSAT) connector enables you to retrieve security awareness training data, user information, and reporting metrics from your KnowBe4 account. This connector supports retrieving user data, training records, and security awareness metrics through the KnowBe4 Reporting API.
knowbe4_kmsat.png

KnowBe4 (KMSAT)

Configure Using a Template

The following endpoint templates are available for configuring KnowBe4 (KMSAT) data sources. These templates provide pre-configured settings for common API endpoints, making it easy to set up data sources without manual API configuration.

  • Select one of the following endpoint templates to configure your data source:

Get Users

This endpoint retrieves a list of all users in your KnowBe4 account, including user details, training status, and security awareness metrics. Use this endpoint to fetch comprehensive user information for reporting and analysis purposes.

  • Select the Get Users endpoint template from the available options.
  • The endpoint is configured to retrieve user data from {account_location}/v1/users where {account_location} is your KnowBe4 account server location (e.g., https://us.api.knowbe4.com).
  • The endpoint uses pagination with incrementing page numbers, starting from page 1, and retrieves up to 100 users per page by default.
  • All user records are returned in the response, and the connector automatically handles pagination to retrieve all available users.

The Get Users endpoint supports pagination to handle large numbers of users. The connector automatically manages pagination and retrieves all available user records. The endpoint returns user data including user IDs, names, email addresses, training status, and security awareness metrics. For detailed information about the Get Users endpoint, including response structure and available fields, refer to the KnowBe4 Reporting API Users documentation.

Configure Manually

If you need to configure a custom API endpoint that isn't available as a template, you can manually configure the data source using the KnowBe4 Reporting API. This section provides guidance on manual configuration for custom endpoints.

API Method

Select the HTTP method for your API request. The KnowBe4 Reporting API primarily uses GET requests for retrieving data. Choose the method that matches your API endpoint requirements.

API Endpoint URL

Enter the complete API endpoint URL for the KnowBe4 Reporting API endpoint you want to access. The URL should include your account server location and the API endpoint path.

URL Format:

  • Base URL: Your KnowBe4 account server location (e.g., https://us.api.knowbe4.com, https://eu.api.knowbe4.com)
  • Endpoint path: The API endpoint path (e.g., /v1/users, /v1/groups, /v1/training/enrollments)
  • Complete URL example: https://us.api.knowbe4.com/v1/users

You can use Nexla macros in the URL to make it dynamic. For example, you can use {now} to include the current timestamp, or reference data from other Nexla sources using lookup-based macros.

Path to Data

Specify the JSON path to the data you want to extract from the API response. Use dot notation to access nested data structures.

JSON Path Examples:

  • $[*] - Extract all items from the root array
  • $.data.items[*] - Extract all items from a nested array
  • $.users[*] - Extract all users from a users array

The KnowBe4 Reporting API typically returns data in arrays, so you'll commonly use paths like $[*] to extract all items from the response.

Pagination

Configure pagination settings if your API endpoint supports pagination. The KnowBe4 Reporting API uses incrementing page numbers for pagination.

Pagination Configuration:

  • Pagination Type: Select "Incrementing" for KnowBe4 API endpoints
  • Start Page: Set the starting page number (typically 1)
  • Page Size Parameter: Specify the query parameter name for page size (e.g., per_page)
  • Page Number Parameter: Specify the query parameter name for page number (e.g., page)
  • Expected Rows per Page: Set the expected number of records per page (e.g., 100)

The KnowBe4 Reporting API typically uses page and per_page query parameters for pagination, with a default page size of 100 records.

Request Headers

Configure any additional HTTP headers required for your API request. The KnowBe4 API authentication is handled automatically by the credential, but you may need to add custom headers for specific endpoints.

Common Headers:

  • Content-Type: application/json - For JSON request bodies
  • Accept: application/json - To specify JSON response format

Metadata

Configure metadata paths to preserve contextual information from API responses, such as timestamps, request IDs, or pagination information. This helps maintain context about when data was retrieved and how it was obtained.

Scheduling

Configure the schedule for your data source to determine how frequently data should be retrieved from the KnowBe4 API. You can set up cron expressions for regular data synchronization or use manual triggers for on-demand data retrieval.

Scheduling Options:

  • Cron Expression: Use cron syntax to define regular intervals (e.g., 0 0 * * * for daily at midnight)
  • Manual Trigger: Enable manual triggering for on-demand data retrieval

Consider the KnowBe4 Reporting API rate limits when configuring your schedule. The API has a daily limit of 2,000 requests plus the number of licensed users on your account. Exceeding this limit will result in a 429 (Too Many Requests) error.

The KnowBe4 Reporting API has rate limits that should be considered when configuring data sources. The daily limit is 2,000 requests plus the number of licensed users on your account. If you encounter rate limit errors, consider reducing the frequency of data retrieval or distributing requests over a longer period. For detailed information about API rate limits and best practices, refer to the KnowBe4 Reporting API documentation.