Skip to content

Notion

Notion Integration for HolmesGPT

Enabling this toolset allows HolmesGPT to fetch pages from Notion, making it useful when providing Notion-based runbooks.

Setup Instructions

  1. Create a Webhook Integration

    • Go to the Notion Developer Portal.
    • Create a new integration with read content capabilities.
  2. Grant Access to Pages

    • Open the desired Notion page.
    • Click the three dots in the top right.
    • Select Connections and add your integration.
  3. Configure Authentication

    • Retrieve the Internal Integration Secret from Notion.
    • Create a Kubernetes secret in your cluster with this key.
    • Configure the NOTION_AUTH environment variable.

Configuration

Set the environment variable:

export NOTION_AUTH="<your Notion integration secret>"

Add the following to ~/.holmes/config.yaml. Create the file if it doesn't exist:

toolsets:
  notion:
    enabled: true
    config:
      additional_headers:
        Authorization: Bearer {{ env.NOTION_AUTH }}

After making changes to your configuration, run:

holmes toolset refresh

Create a Kubernetes secret in the namespace Holmes runs in:

kubectl create secret generic holmes-notion \
  --from-literal=NOTION_AUTH="<your Notion integration secret>" \
  -n <namespace>

When using the standalone Holmes Helm Chart, update your values.yaml:

extraEnvVarsSecrets:
  - holmes-notion

toolsets:
  notion:
    enabled: true
    config:
      additional_headers:
        Authorization: Bearer {{ env.NOTION_AUTH }}

Apply the configuration:

helm upgrade holmes robusta/holmes -f values.yaml

Create a Kubernetes secret in the namespace Holmes runs in:

kubectl create secret generic holmes-notion \
  --from-literal=NOTION_AUTH="<your Notion integration secret>" \
  -n <namespace>

When using the Robusta Helm Chart (which includes HolmesGPT), update your generated_values.yaml:

holmes:
  extraEnvVarsSecrets:
    - holmes-notion

  toolsets:
    notion:
      enabled: true
      config:
        additional_headers:
          Authorization: Bearer {{ env.NOTION_AUTH }}

Apply the configuration:

helm upgrade robusta robusta/robusta -f generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>

Timeout Configuration

By default, the Notion toolset uses a 5-second timeout for webpage requests. If you need to increase the timeout for slower Notion API responses, you can set the INTERNET_TOOLSET_TIMEOUT_SECONDS environment variable:

export INTERNET_TOOLSET_TIMEOUT_SECONDS=30

When using the standalone Holmes Helm Chart, update your values.yaml:

additionalEnvVars:
  - name: INTERNET_TOOLSET_TIMEOUT_SECONDS
    value: "30"

Apply the configuration:

helm upgrade holmes robusta/holmes -f values.yaml

When using the Robusta Helm Chart (which includes HolmesGPT), update your generated_values.yaml:

holmes:
  additionalEnvVars:
    - name: INTERNET_TOOLSET_TIMEOUT_SECONDS
      value: "30"

Apply the configuration:

helm upgrade robusta robusta/robusta -f generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>

Capabilities

The table below describes the specific capabilities provided by this toolset. HolmesGPT can decide to invoke any of these capabilities when answering questions or investigating issues.

Tool Name Description
fetch_notion_webpage Fetch a Notion webpage. Use this to fetch Notion runbooks if they are present before starting your investigation