#OpenClaw can't use my notion skill

1 messages · Page 1 of 1 (latest)

still lion
#

i installed notion as a skill and the config holds an api key and when i execute openclaw skills info notion I get :package: notion ✓ Ready. Yet openclaw still says: I still can’t directly read your Notion from this session yet — no active Notion connection is available to me right now.

wheat oceanBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

main roseBOT
#

That “✓ Ready” from openclaw skills info notion only means the skill folder is installed + eligible to load. It does not guarantee your current chat session has refreshed its skills snapshot, nor that the Notion key made it into the runtime env (especially if you’re sandboxed / remote).

Here are the 3 common gotchas + fixes:

1) You need a fresh session (skills are snapshotted at session start)

Install/update a skill → then in the chat where it says “no active Notion connection”, send:

  • /new

Then try again. (Skills are loaded once per session for performance; docs: https://docs.openclaw.ai/tools/skills)

2) Your API key might be in the wrong place (env injection)

Most community Notion skills expect an env var (often NOTION_API_KEY or NOTION_TOKEN) to exist at runtime.

Check what the skill expects by opening skills/notion/SKILL.md and searching for the env var name.

Then set it like this in ~/.openclaw/openclaw.json:

#
{
  skills: {
    entries: {
      notion: {
        env: {
          NOTION_API_KEY: "…"
        }
      }
    }
  }
}

Important nuance: skills.entries.notion.apiKey: "…" only works if the skill declares metadata.openclaw.primaryEnv. If it doesn’t, use env: as above. (Docs: https://docs.openclaw.ai/tools/skills-config)

3) If you’re sandboxed, the sandbox does NOT inherit host env

#

If your agent/session runs in Docker sandbox mode, the skill may be “ready” on the host but the command runs inside the container without the key.

In that case, put the env var here instead (or as well):

{
  agents: {
    defaults: {
      sandbox: {
        docker: {
          env: {
            NOTION_API_KEY: "…"
          }
        }
      }
    }