OpenClaw를 위한 Slack 연동 가이드

OpenClaw를 Slack에 연동하면 팀원들과 함께 AI 비서를 활용할 수 있습니다. 이 가이드에서는 Slack 앱을 생성하고, 필요한 권한을 설정한 뒤 OpenClaw에 연결하는 전체 과정을 다룹니다.

요약하자면 “Slack 앱 만들기 → 토큰 2개 발급(App, Bot) → openclaw.json 설정 → 재시작” 의 과정으로 진행됩니다.

참고: OpenClaw는 방화벽 내부에서도 쉽게 사용할 수 있도록 주로 Socket Mode 를 사용하여 연결합니다.


1. Slack 앱 만들기

먼저 Slack API 페이지에서 새로운 앱을 생성해야 합니다.

1-1. 앱 생성

  1. Create New App 버튼을 클릭합니다.
  2. From scratch 를 선택합니다.
  3. 앱 이름(예: OpenClaw Bot)을 입력하고, 설치할 워크스페이스 를 선택합니다.

1-2. Socket Mode 활성화

Socket Mode를 사용하면 별도의 공인 IP나 포트 포워딩 없이도 슬랙 이벤트를 받을 수 있습니다.

  1. 왼쪽 메뉴의 Socket Mode 로 이동합니다.
  2. Enable Socket Mode 스위치를 켭니다.
  3. 이때 토큰 이름을 묻는 팝업이 뜨면 적당한 이름(예: Socket Token)을 입력하고 생성합니다.
  4. 생성된 xapp-... 으로 시작하는 App-Level Token 을 복사해 둡니다.

App Token 스코프: 보통 connections:write 권한이 기본으로 부여됩니다.


2. 권한(Scopes) 및 봇 토큰 발급

2-1. Scopes 설정

봇이 채널의 메시지를 읽고 쓸 수 있도록 권한을 부여해야 합니다. 왼쪽 메뉴의 OAuth & Permissions 로 이동하여 Scopes > Bot Token Scopes 섹션에 다음 권한들을 추가합니다.

권한 (Scope)설명
channels:history공개 채널의 대화 내용을 읽을 수 있습니다.
channels:read공개 채널의 목록과 정보를 조회합니다.
chat:write채널, DM, 그룹 메시지 등에 메시지를 보낼 수 있습니다.
groups:history비공개 채널의 대화 내용을 읽을 수 있습니다.
groups:read비공개 채널의 목록과 정보를 조회합니다.
im:history봇과의 1:1 DM 내역을 읽습니다.
im:read1:1 DM 정보를 조회합니다.
im:write1:1 DM을 시작할 수 있습니다. (선택: DM 시작이 안 될 때 필요)
mpim:history다자간 DM(Group DM) 내역을 읽습니다.
mpim:read다자간 DM(Group DM) 정보를 조회합니다.
users:read멤버 목록(User ID)을 조회합니다. (먼저 말을 걸 대상을 찾을 때 필요)

2-2. App Home 설정 (중요: 메시지 보내기 허용)

이 설정을 하지 않으면 봇에게 DM을 보낼 때 “이 앱으로 메시지를 보내는 기능이 꺼져 있습니다” 라는 오류가 뜹니다.

  1. 왼쪽 메뉴의 App Home 으로 이동합니다.
  2. 스크롤을 내려 Show Tabs 섹션을 찾습니다.
  3. Messages Tab 을 활성화하고, “Allow users to send Slash commands and messages from the messages tab” 체크박스를 웁니다.

2-3. Event Subscriptions 설정

Socket Mode를 쓰더라도 어떤 이벤트를 받을지는 설정해야 합니다.

  1. 왼쪽 메뉴의 Event Subscriptions 로 이동하여 기능을 켭니다(On).
  2. Subscribe to bot events 섹션을 펼치고 message.channels, message.groups, message.im 등을 추가합니다.

[!WARNING] 다자간 대화(Group DM)와 봇 초대 주의사항

봇을 포함하여 다자간 대화(Group DM)를 하려면, 기존 대화방에 봇을 초대하는 개념이 아니라 봇을 포함한 멤버 구성으로 새로운 대화방(MPIM) 을 열게 됩니다. Slack의 MPIM은 참여자가 한 명이라도 달라지면(봇 포함) 완전히 다른 대화방(새로운 채널 ID) 으로 취급됩니다. 따라서 봇이 참여하기 전의 과거 대화 내역은 봇이 있는 방에서 보이지 않습니다. 자세한 내용은 Slack 공식 문서: conversations.open을 참고하세요.

2-4. 워크스페이스에 설치 및 Bot Token 발급

  1. OAuth & Permissions 페이지 상단의 Install to Workspace 버튼을 누릅니다.
  2. 권한 요청 화면에서 허용(Allow) 을 클릭합니다.
  3. 생성된 Bot User OAuth Token (xoxb-... 로 시작)을 복사해 둡니다.

[!TIP] 앱 재설치 (Reinstall App)

만약 이미 앱을 설치한 상태에서 ScopesApp Home 설정을 변경했다면, 반드시 Reinstall to Workspace 버튼을 눌러 앱을 재설치해야 변경 사항이 적용됩니다. (토큰 값은 바뀌지 않습니다.)


3. OpenClaw 설정 (openclaw.json)

이제 발급받은 두 개의 토큰을 설정 파일에 입력합니다. ~/.openclaw/openclaw.json 파일을 열고 channels 섹션에 아래와 같이 추가합니다.

{
  "channels": {
    "slack": {
      "enabled": true,
      "botToken": "xoxb-YOUR-BOT-TOKEN",
      "appToken": "xapp-YOUR-APP-TOKEN",
      "dm": {
        "policy": "pairing"
      },
      "groupPolicy": "allowlist",
      "channels": {
        "C0123456789": { "allow": true, "requireMention": true }
      }
    }
  }
}

주요 설정 옵션

  • botToken : xoxb-... (Bot User OAuth Token)
  • appToken : xapp-... (App-Level Token)
  • groupPolicy :
    • "allowlist": channels 목록에 명시된 채널에서만 동작합니다(보안상 권장).
    • "all": 봇이 초대된 모든 채널에서 동작합니다.
  • dm.policy :
    • "pairing": 처음 DM을 보낼 때 인증 코드를 통해 사용자를 등록하는 방식입니다.
    • "open": 누구나 봇에게 DM을 보낼 수 있습니다.

4. 실행 및 확인

게이트웨이 재시작

설정 파일을 저장한 후, OpenClaw 게이트웨이를 재시작하여 설정을 적용합니다.

openclaw gateway restart

DM 페어링 (Pairing 모드일 경우)

만약 dm.policypairing으로 설정했다면, 슬랙에서 봇에게 처음 말을 걸었을 때 인증 코드 가 나타납니다. 터미널에서 아래 명령어로 승인해주면 해당 사용자와의 대화가 시작됩니다.

openclaw pairing approve slack <인증코>

이제 슬랙에서 OpenClaw 봇과 자유롭게 대화할 수 있습니다!


5. 문제가 해결되지 않나요?

설정을 완료했는데도 연결이 잘 안 된다면, OpenClaw의 자동 진단 도구를 실행해 보세요. 대부분의 설정 오류를 자동으로 감지하고 수정 제안을 해줍니다.

openclaw doctor --fix