OpenClaw Integrations: Connect Notion, Slack, GitHub & 10+ Tools
Your AI agents become dramatically more useful when they can read your Notion docs, respond in Slack, review GitHub PRs, and sync with your calendar. This guide covers every OpenClaw integration with exact configuration commands, SOUL.md skill definitions, and practical examples.
Why Integrations Matter for AI Agents
An AI agent in isolation can answer questions and generate text. But an AI agent connected to your tools can actually do work. It can check your Notion project board, draft a status update, post it to Slack, and create a GitHub issue for the blocked task it found — all without you opening four browser tabs.
OpenClaw separates integrations into two categories: channels and tools. Channels are where your agent communicates — Telegram, Slack, Discord, email. Tools are what your agent uses to get work done — Notion, GitHub, Google Calendar, webhooks. A well-configured agent uses both: it listens on Slack (channel) and pulls project data from Notion (tool) to answer your questions.
Every integration in OpenClaw follows the same pattern: set a configuration value with openclaw config set, define how your agent should use it in SOUL.md, and restart the gateway. No code changes. No separate deployments. No plugin marketplaces.
How OpenClaw Integrations Work
Under the hood, OpenClaw's integration system has three layers:
1. Configuration Layer
API keys, tokens, and connection details are stored locally using openclaw config set. These values never leave your machine. The configuration file lives at ~/.openclaw/config.json and supports channels, integrations, and agent-level overrides.
2. Gateway Layer
The OpenClaw gateway (port 18789) manages all channel connections, routes incoming messages to the right agent, and handles authentication with external services. When you run openclaw gateway restart, it re-reads the configuration and establishes all connections.
3. SOUL.md Skills Layer
Your agent's SOUL.md file defines how integrations are used. A configured Notion API key is just a credential. The SOUL.md skill tells the agent when and why to use Notion: "Use Notion to look up project requirements before starting any writing task."
# Full integration setup pattern:
# 1. Set the credential
openclaw config set integrations.notion.apikey ntn_YOUR_KEY
# 2. Define the skill in SOUL.md
# ## Tools — USE THEM
# - Use Notion to read project docs and task boards
# 3. Restart the gateway
openclaw gateway restartTelegram Integration
Telegram is the most popular channel for OpenClaw agents. It gives you mobile access to any agent, supports group chats for team interaction, and requires no server infrastructure — OpenClaw uses Telegram's long polling, so it works behind firewalls without a public URL.
Step-by-Step Setup
Step 1: Create Your Bot with BotFather
Open Telegram and search for @BotFather. Send /newbot and follow the prompts to name your bot. BotFather will return a token like 123456789:ABCDefGHIJKlmnopQRSTuvwxyz. Copy this token.
Step 2: Configure OpenClaw
# Set the bot token
openclaw config set channels.telegram.bottoken YOUR_TOKEN
# Optionally restrict to a specific chat
openclaw config set channels.telegram.chatid YOUR_CHAT_ID
# Restart to activate
openclaw gateway restartStep 3: Verify the Connection
# Check that Telegram is connected
openclaw channels status
# Expected output:
# telegram: connected (bot: @YourBotName)
# web: running (localhost:18789)Send a message to your bot in Telegram. You should see the agent's response within a few seconds. If you added a chat ID restriction, the bot will only respond in that specific chat.
Telegram Group Chats
Add your bot to any Telegram group to give the whole team access. By default, the agent responds to every message. To make it respond only when mentioned, configure privacy mode through BotFather with /setprivacy and set it to Enabled.
Slack Integration
Slack is the strongest channel integration for teams. Your agent appears as a Slack app that responds to mentions, handles direct messages, and replies in threads to keep conversations organized.
Creating the Slack App
Step 1: Create App and Set Permissions
Go to api.slack.com/apps and create a new app from scratch. Under OAuth & Permissions, add these bot token scopes:
chat:write # Send messages
app_mentions:read # Respond to @mentions
channels:history # Read public channel messages
im:history # Read direct messages
im:write # Send direct messages
groups:history # Read private channel messagesStep 2: Enable Event Subscriptions
Navigate to Event Subscriptions and toggle it on. Set the Request URL to your gateway endpoint. If running locally, use a tunnel:
# Expose your local gateway
ngrok http 18789
# Use the ngrok URL as your Request URL:
# https://abc123.ngrok.io/channels/slack/events
# Subscribe to bot events:
# app_mention
# message.imStep 3: Install and Configure
Install the app to your workspace and copy the Bot User OAuth Token (starts with xoxb-):
# Set the Slack bot token
openclaw config set channels.slack.bottoken xoxb-YOUR-SLACK-TOKEN
# Optionally set a default channel
openclaw config set channels.slack.channel general
# Restart the gateway
openclaw gateway restartSlash Commands
You can register custom slash commands in your Slack app settings to trigger specific agent actions. Point each slash command URL to https://your-domain/channels/slack/commands. The agent receives the command text as a message and responds in the channel. Common setups include /ask for questions, /report for status updates, and /draft for content generation.
Notion Integration
Notion is one of the most powerful tool integrations in OpenClaw. Your agent can read pages, query databases, create new entries, and use your Notion workspace as a living knowledge base. This turns your agent from a generic chatbot into a context-aware assistant that knows your projects.
Setting Up the Notion API
Step 1: Create a Notion Integration
Go to notion.so/my-integrations and create a new internal integration. Give it a name like "OpenClaw Agent" and select your workspace. Copy the Internal Integration Secret that starts with ntn_.
Step 2: Share Pages with the Integration
In Notion, open any page or database you want your agent to access. Click the three-dot menu, select "Connections," and add your "OpenClaw Agent" integration. The agent can only access pages that are explicitly shared with the integration.
Step 3: Configure OpenClaw
# Set the Notion API key
openclaw config set integrations.notion.apikey ntn_YOUR_SECRET
# Optionally set a default database ID
openclaw config set integrations.notion.database YOUR_DATABASE_ID
# Restart the gateway
openclaw gateway restartSOUL.md Skills for Notion
The configuration gives your agent access to Notion. The SOUL.md tells it how to use that access:
## Tools — USE THEM
- Use Notion to look up project requirements before
starting any task
- Use Notion to check the content calendar for deadlines
- When you finish a draft, create a new Notion page in
the "Content Drafts" database with the full text
- Use Notion database queries to find tasks assigned to
the current user
## Knowledge Base
- Project wiki: Notion page ID 30408b1c-xxxx-xxxx
- Content calendar: Notion database ID abc123-xxxx
- Style guide: Notion page ID def456-xxxxAgents with Notion access are particularly effective as project managers (reading task boards), content writers (checking editorial calendars), and research assistants (pulling from documentation wikis).
GitHub Integration
Connect your OpenClaw agent to GitHub to automate code reviews, manage issues, monitor pull requests, and get CI/CD status updates — all through natural language.
Personal Access Token Setup
Step 1: Generate a GitHub Token
Go to github.com/settings/tokens and generate a fine-grained personal access token. Select the repositories you want the agent to access and grant these permissions: Contents (read), Pull requests (read/write), Issues (read/write), and Actions (read).
Step 2: Configure OpenClaw
# Set the GitHub personal access token
openclaw config set integrations.github.token ghp_YOUR_TOKEN
# Set the repositories the agent can access
openclaw config set integrations.github.repos "owner/repo-name"
# For multiple repos, use comma-separated values
openclaw config set integrations.github.repos "owner/repo1,owner/repo2"
# Restart the gateway
openclaw gateway restartAutomated PR Reviews
One of the most valuable GitHub integrations is automated pull request reviews. Set up a webhook in your GitHub repository pointing to your gateway, and the agent reviews every new PR automatically:
# In your GitHub repo Settings > Webhooks:
# Payload URL: https://your-domain/webhooks/github
# Content type: application/json
# Secret: your-webhook-secret
# Events: Pull requests
# Configure the webhook secret in OpenClaw
openclaw config set integrations.github.webhook_secret YOUR_SECRET
# SOUL.md skill for code reviews:
## Tools — USE THEM
- When a new PR is opened, review the diff for:
1. Security vulnerabilities
2. Performance issues
3. Code style violations
4. Missing tests
- Post your review as a GitHub PR comment
- Flag critical issues as "Request Changes"
- Approve clean PRs with a summary of what was checkedIssue Management
Your agent can also create, update, and close GitHub issues. This is powerful for project management agents that track work across Notion and GitHub simultaneously:
# Ask your agent to create issues via Slack or Telegram
> "Create a GitHub issue for the login page bug
> that John reported yesterday"
# The agent creates an issue with:
# - Title extracted from context
# - Description with reproduction steps
# - Labels assigned based on keywords
# - Assignee set if mentionedDiscord Integration
Discord is ideal for community-facing agents, gaming teams, and developer communities. Your agent joins as a bot user and can respond to messages, react to mentions, and handle slash commands.
Bot Setup and Configuration
Step 1: Create a Discord Application
Go to the Discord Developer Portal, create a new application, navigate to the Bot section, and click "Add Bot." Enable the "Message Content Intent" toggle so your bot can read messages. Copy the bot token.
Step 2: Invite and Configure
Generate an OAuth2 invite URL with the bot scope and Send Messages, Read Message History permissions. Add the bot to your server, then configure OpenClaw:
# Set the Discord bot token
openclaw config set channels.discord.bottoken YOUR_DISCORD_TOKEN
# Optionally restrict to specific server
openclaw config set channels.discord.guildid YOUR_GUILD_ID
# Optionally restrict to specific channels
openclaw config set channels.discord.channels "general,support"
# Restart the gateway
openclaw gateway restartYour agent now responds to messages in the configured channels. For a more polished experience, register slash commands through the Discord Developer Portal (e.g., /ask, /status) that route to your gateway.
Email Integration
Email integration allows your agent to receive emails and send responses, making it useful for customer support, lead qualification, and automated follow-ups. OpenClaw supports both SMTP for sending and webhook-based receiving.
SMTP Configuration
# Configure SMTP for sending emails
openclaw config set integrations.email.smtp.host smtp.gmail.com
openclaw config set integrations.email.smtp.port 587
openclaw config set integrations.email.smtp.user your-agent@gmail.com
openclaw config set integrations.email.smtp.pass YOUR_APP_PASSWORD
# Configure the sender name
openclaw config set integrations.email.from.name "Project Manager Agent"
openclaw config set integrations.email.from.address your-agent@gmail.com
# For receiving, set up a forwarding webhook
openclaw config set integrations.email.webhook.path /webhooks/email
# Restart the gateway
openclaw gateway restartFor receiving emails, use a service like Mailgun, SendGrid, or Postmark that supports inbound email parsing. Configure their webhook to point at your gateway's email endpoint: https://your-domain/webhooks/email. The agent receives the email content as a message and can reply through SMTP.
Webhook Integration
Webhooks are OpenClaw's most flexible integration point. Any service that can send or receive HTTP requests can integrate with your agent. This is how you connect tools that do not have native OpenClaw support.
Incoming Webhooks
Incoming webhooks let external services send events to your agent. The agent receives the webhook payload as context and can take action based on it:
# Configure the webhook secret for verification
openclaw config set integrations.webhook.secret YOUR_WEBHOOK_SECRET
# Set which agent handles incoming webhooks
openclaw config set integrations.webhook.agent pm
# Restart the gateway
openclaw gateway restart
# Your webhook endpoint is now available at:
# POST http://localhost:18789/webhooks/incoming
#
# Headers:
# Content-Type: application/json
# X-Webhook-Secret: YOUR_WEBHOOK_SECRET
#
# Body: any JSON payloadOutgoing Webhooks via SOUL.md
Your agent can also call external APIs as a tool. Define webhook targets in your SOUL.md:
## Tools — USE THEM
- Use HTTP requests to send alerts to
https://hooks.slack.com/services/T00/B00/xxxx
when a critical issue is detected
- POST to https://api.example.com/events
with a summary when a weekly report is complete
- Call the internal API at http://localhost:3000/api/notify
to trigger downstream workflowsREST API Access
OpenClaw also exposes a REST API on the gateway that lets you interact with agents programmatically:
# Send a message to an agent via REST API
curl -X POST http://localhost:18789/api/agent/pm/message \
-H "Content-Type: application/json" \
-d '{"message": "What is the status of the Q1 roadmap?"}'
# List all agents
curl http://localhost:18789/api/agents
# Get agent status
curl http://localhost:18789/api/agent/pm/statusGoogle Calendar and Google Sheets
Google Workspace integrations give your agent access to scheduling and spreadsheet data. These require a Google service account or OAuth credentials.
Google Calendar
# Set Google service account credentials
openclaw config set integrations.google.credentials /path/to/service-account.json
# Set the calendar ID
openclaw config set integrations.google.calendar.id your-calendar@gmail.com
# Restart the gateway
openclaw gateway restart
# SOUL.md skill:
## Tools — USE THEM
- Check Google Calendar before scheduling meetings
- Create calendar events for content deadlines
- Send a daily summary of upcoming meetings at 8amGoogle Sheets
# Uses the same service account as Calendar
openclaw config set integrations.google.credentials /path/to/service-account.json
# Set default spreadsheet
openclaw config set integrations.google.sheets.id YOUR_SPREADSHEET_ID
# Restart the gateway
openclaw gateway restart
# SOUL.md skill:
## Tools — USE THEM
- Read the "Content Tracker" Google Sheet to check
which blog posts are in progress
- Update the "Status" column when a draft is complete
- Pull weekly metrics from the "Analytics" sheet
for the Monday reportShare the Google Calendar and Google Sheets with your service account email (found in the service account JSON file) to grant the agent access.
Building Custom Integrations
OpenClaw's integration system is extensible. If the built-in integrations do not cover your use case, you can build custom channel handlers and tool integrations.
Custom Channel Handler
A custom channel handler listens for messages on a custom transport and routes them to your agent. Place your handler in the channels/ directory of your OpenClaw workspace:
# channels/custom-sms/handler.js
module.exports = {
name: "custom-sms",
// Called when the gateway starts
async start(config, sendToAgent) {
// Set up your listener (e.g., Twilio webhook)
// When a message arrives, call:
// sendToAgent(userId, messageText)
},
// Called when the agent responds
async send(userId, response) {
// Send the response back through your channel
// e.g., Twilio API to send SMS
}
};
# Register the custom channel
openclaw config set channels.custom-sms.enabled true
openclaw config set channels.custom-sms.handler channels/custom-sms/handler.js
openclaw gateway restartCustom Tool Integration
For tools, the simplest approach is using webhooks combined with SOUL.md skills. For deeper integration, create a custom tool definition:
# tools/jira-integration/tool.json
{
"name": "jira",
"description": "Interact with Jira project management",
"config": {
"base_url": "https://your-company.atlassian.net",
"auth_type": "api_token"
},
"actions": [
"search_issues",
"create_issue",
"update_status",
"get_sprint"
]
}
# Configure the tool
openclaw config set integrations.jira.url https://your-company.atlassian.net
openclaw config set integrations.jira.email your-email@company.com
openclaw config set integrations.jira.token YOUR_JIRA_API_TOKEN
openclaw gateway restartIntegration Comparison Table
Here is a side-by-side comparison of every OpenClaw integration to help you decide which ones to set up for your agents:
| Integration | Type | Setup Time | Public URL | Best Use Case |
|---|---|---|---|---|
| Telegram | Channel | 2 min | No | Mobile access, personal agents |
| Slack | Channel | 10 min | Yes | Team collaboration, workspace agents |
| Discord | Channel | 10 min | No | Community bots, public servers |
| Channel | 15 min | Yes | Customer support, async workflows | |
| Notion | Tool | 5 min | No | Knowledge base, project tracking |
| GitHub | Tool | 5 min | For webhooks | Code review, issue management |
| Google Calendar | Tool | 10 min | No | Scheduling, daily briefings |
| Google Sheets | Tool | 10 min | No | Data tracking, reporting |
| Webhooks | Tool | 3 min | For incoming | Custom integrations, any REST API |
| Web UI | Channel | 0 min | No | Dashboard, browser-based chat |
| Custom | Either | 30+ min | Depends | SMS, WhatsApp, Jira, any service |
Start with one or two integrations and add more as your workflow demands. Telegram plus Notion is the most common pairing for solo users. Teams typically start with Slack plus GitHub.
Frequently Asked Questions
How many integrations can I connect to one OpenClaw agent?
There is no hard limit. A single OpenClaw agent can be connected to Telegram, Slack, Discord, and the web UI as communication channels simultaneously, while also using Notion, GitHub, Google Calendar, and other tool integrations through SOUL.md skills. Each integration is configured independently, and the gateway handles all of them in parallel. The practical limit depends on your API rate limits and server resources, but most teams run 3-6 integrations per agent without issues.
Can I use Notion as a knowledge base for my agent?
Yes. Once you configure the Notion integration with 'openclaw config set integrations.notion.apikey' and connect your databases, your agent can read Notion pages, query databases, and use that content as context when responding. Define a skill in your SOUL.md like 'Use Notion to look up project documentation before answering questions.' The agent will pull relevant pages from your Notion workspace and include them in its reasoning. This is especially useful for support agents, project managers, and research assistants.
How do I connect OpenClaw to Slack?
Create a Slack app at api.slack.com/apps, add bot scopes (chat:write, app_mentions:read, channels:history, im:history), and install it to your workspace. Copy the Bot User OAuth Token that starts with xoxb-. Then run 'openclaw config set channels.slack.bottoken xoxb-YOUR-TOKEN' and 'openclaw gateway restart'. Your agent will respond when mentioned in channels or messaged directly. You also need to enable Event Subscriptions and point the Request URL to your gateway endpoint.
Does OpenClaw support webhooks?
Yes. OpenClaw has built-in webhook support for both incoming and outgoing events. Configure incoming webhooks with 'openclaw config set integrations.webhook.secret YOUR_SECRET' to receive events from external services. Your agent gets a unique endpoint at localhost:18789/webhooks/incoming that accepts POST requests. For outgoing webhooks, define them in your SOUL.md skills section so your agent can send HTTP requests to any REST API. This makes it possible to integrate with virtually any service that supports webhooks.
Can one agent respond on multiple channels?
Yes. This is one of OpenClaw's core features. A single agent can simultaneously respond on Telegram, Slack, Discord, email, and the built-in web UI. Each channel is configured with its own 'openclaw config set channels.<name>' command, and one 'openclaw gateway restart' activates all of them. The agent maintains separate conversation contexts per channel, but its SOUL.md personality, rules, and tool access remain consistent everywhere. There is no extra cost or performance penalty for adding more channels.
How do I set up GitHub integration for code reviews?
Generate a GitHub Personal Access Token at github.com/settings/tokens with repo, pull_requests, and issues scopes. Run 'openclaw config set integrations.github.token ghp_YOUR_TOKEN' and 'openclaw config set integrations.github.repos owner/repo-name'. Then add a skill in your SOUL.md: 'Use GitHub to review pull requests, check CI status, and comment on issues.' For automated PR reviews, set up a GitHub webhook pointing to your gateway at localhost:18789/webhooks/github with the pull_request event. The agent will automatically review new PRs and post comments.
Pre-configured Integrations, No Setup
CrewClaw generates agents with Telegram, Slack, and Notion integrations already configured. Download and deploy in one command.
Build Your Agent