OpenClaw Slack 연동 완벽 가이드 - Socket Mode 설정부터 실전까지
OpenClaw를 Slack에 연동하면 Slack DM이나 채널에서 AI 에이전트와 대화할 수 있다. 이메일 요약, 일정 확인, 파일 검색 등을 Slack에서 바로 할 수 있어서 업무 효율이 올라간다.
이 가이드에서는 Slack App 생성부터 OpenClaw 설정까지 전 과정을 단계별로 정리했다.
전제 조건
- OpenClaw 설치 완료 (OpenClaw 완벽 가이드 참고)
- Slack 워크스페이스 관리자 권한 (앱 설치 권한 필요)
전체 과정 요약
- Slack App 생성
- Socket Mode 활성화
- App-Level Token 생성
- Bot Token Scopes 설정
- Event Subscriptions 설정
- App Home 활성화
- OpenClaw 설정
- 테스트
소요 시간: 약 10~15분
1. Slack App 생성
1-1. Slack API 페이지 접속
Slack API에 접속한다.
1-2. 앱 생성
Create New App 클릭 → From scratch 선택
1-3. 정보 입력
- App Name:
OpenClaw(원하는 이름) - Pick a workspace: 설치할 워크스페이스 선택
Create App 클릭
2. Socket Mode 활성화
Socket Mode를 사용하면 별도 서버 없이 WebSocket으로 이벤트를 수신 할 수 있다. 공개 URL이나 ngrok 같은 터널링 서비스가 필요 없다.
2-1. Socket Mode 설정
좌측 메뉴에서 Settings → Socket Mode 클릭
2-2. 토글 켜기
Enable Socket Mode 토글을 On 으로 변경
3. App-Level Token 생성
Socket Mode를 사용하려면 App-Level Token이 필요하다.
3-1. Token 생성 시작
Basic Information → App-Level Tokens → Generate Token and Scopes 클릭
3-2. 토큰 정보 입력
- Token Name:
openclaw-socket(원하는 이름) - Add Scope:
connections:write선택
Generate 클릭
3-3. 토큰 복사
생성된 App Token (xapp-로 시작)을 복사해서 안전한 곳에 저장한다.
⚠️ 주의: 이 토큰은 다시 볼 수 없으니 반드시 지금 복사해야 한다.
4. Bot Token Scopes 설정
봇이 메시지를 읽고 쓰려면 적절한 권한이 필요하다.
4-1. OAuth & Permissions 이동
좌측 메뉴에서 Features → OAuth & Permissions 클릭
4-2. Bot Token Scopes 추가
Scopes → Bot Token Scopes 섹션에서 Add an OAuth Scope 클릭
다음 권한들을 추가한다:
| Scope | 설명 |
|---|---|
chat:write | 메시지 보내기 |
channels:history | 공개 채널 메시지 읽기 |
groups:history | 비공개 채널 메시지 읽기 |
im:history | DM 메시지 읽기 |
mpim:history | 그룹 DM 메시지 읽기 |
app_mentions:read | 멘션 읽기 (선택사항) |
files:read | 파일 읽기 (선택사항) |
4-3. 앱 설치
Install to Workspace 클릭
권한 확인 화면이 나오면 Allow 클릭
4-4. Bot Token 복사
설치 후 나타나는 Bot User OAuth Token (xoxb-로 시작)을 복사해서 저장한다.
5. Event Subscriptions 설정
봇이 메시지를 수신하려면 이벤트 구독을 설정해야 한다.
5-1. Event Subscriptions 이동
좌측 메뉴에서 Features → Event Subscriptions 클릭
5-2. 토글 켜기
Enable Events 토글을 On 으로 변경
5-3. Subscribe to bot events
Subscribe to bot events 섹션에서 Add Bot User Event 클릭
다음 이벤트들을 추가한다:
| Event | 설명 |
|---|---|
message.im | DM 메시지 수신 (필수) |
message.channels | 공개 채널 메시지 (채널 사용 시) |
message.groups | 비공개 채널 메시지 (비공개 채널 사용 시) |
message.mpim | 그룹 DM 메시지 (그룹 DM 사용 시) |
app_mention | 봇 멘션 (선택사항) |
Save Changes 클릭
⚠️ 중요: Socket Mode를 사용하므로 Request URL은 입력하지 않아도 된다.
6. App Home 설정
사용자가 봇에게 DM을 보낼 수 있게 하려면 App Home을 활성화해야 한다.
6-1. App Home 이동
좌측 메뉴에서 Features → App Home 클릭
6-2. Messages Tab 활성화
Show Tabs 섹션에서:
- Messages Tab 체크
- Allow users to send Slash commands and messages from the messages tab 체크
Save 클릭
7. OpenClaw 설정
이제 OpenClaw에 Slack 토큰을 설정한다.
방법 1: 설정 파일 수정 (권장)
~/.openclaw/config.json 파일을 열어서 다음과 같이 추가한다:
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-..."
}
}
}
방법 2: 환경 변수 사용
환경 변수로도 설정할 수 있다:
export SLACK_APP_TOKEN=xapp-1-...
export SLACK_BOT_TOKEN=xoxb-...
환경 변수는 설정 파일보다 우선순위가 낮다. 설정 파일에 값이 있으면 환경 변수는 무시된다.
Gateway 재시작
설정 후 Gateway를 재시작한다:
openclaw gateway restart
8. 테스트
8-1. 봇 찾기
Slack에서 Apps 섹션에 OpenClaw (또는 설정한 이름)가 나타나는지 확인한다.
8-2. DM 보내기
봇을 클릭해서 DM 창을 열고 메시지를 보낸다:
안녕?
봇이 응답하면 성공이다! 🎉
8-3. 채널에서 사용 (선택사항)
채널에서 사용하려면:
- 채널에 봇 초대:
/invite @OpenClaw - 봇 멘션해서 대화:
@OpenClaw 오늘 일정 알려줘
User Token (선택사항)
User Token(xoxp-)을 추가하면 채널 히스토리, 핀, 리액션 등 더 많은 정보를 읽을 수 있다.
User Token 발급
OAuth & Permissions → User Token Scopes 에서 다음 스코프 추가:
channels:historygroups:historyim:historympim:historysearch:read(메시지 검색, 선택사항)
Reinstall to Workspace 클릭
발급된 User OAuth Token (xoxp-로 시작)을 복사한다.
OpenClaw 설정 업데이트
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-...",
"userToken": "xoxp-..."
}
}
}
기본적으로 User Token은 읽기 전용으로만 사용된다.
고급 설정
DM만 허용하고 채널은 차단
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-...",
"dm": { "enabled": true },
"groupPolicy": "disabled"
}
}
}
특정 채널만 허용
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-...",
"groupPolicy": "allowlist",
"channels": {
"C01234567": { "allow": true } // 채널 ID
}
}
}
}
채널 ID는 채널에서 우클릭 → View channel details → 하단에 표시됨
특정 사용자만 허용
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-...",
"dm": {
"enabled": true,
"policy": "allowlist",
"allowFrom": ["U01234567", "U98765432"] // 사용자 ID
}
}
}
}
사용자 ID는 프로필 클릭 → More → Copy member ID
트러블슈팅
봇이 응답하지 않음
증상: DM을 보내도 아무 반응이 없다.
해결 방법:
-
Gateway 상태 확인
openclaw gateway statusslack: connected가 보여야 함 -
토큰 확인
- App Token이
xapp-로 시작하는지 - Bot Token이
xoxb-로 시작하는지 - 오타가 없는지
- App Token이
-
Event Subscriptions 확인
message.im이벤트가 추가되어 있는지- Enable Events 토글이 켜져 있는지
-
Gateway 로그 확인
openclaw gateway logs
"This app is not installed on this workspace"
증상: 설정 화면에서 이 에러가 나타남
해결 방법:
OAuth & Permissions → Install to Workspace 클릭
권한을 추가했으면 반드시 Reinstall 해야 한다.
Socket Mode 연결 실패
증상: Gateway 로그에 WebSocket 연결 에러
해결 방법:
-
Socket Mode 확인
- Settings → Socket Mode
- 토글이 On 인지 확인
-
App-Level Token 확인
connections:write스코프가 있는지- 토큰이 만료되지 않았는지
-
방화벽/프록시 확인
- WebSocket 연결(
wss://)이 차단되지 않았는지
- WebSocket 연결(
채널에서 멘션해도 반응 없음
증상: @OpenClaw 멘션을 해도 응답 없음
해결 방법:
-
봇이 채널에 있는지 확인
/invite @OpenClaw -
Event Subscriptions 확인
message.channels(공개 채널) 또는message.groups(비공개 채널) 추가되어 있는지
-
groupPolicy 확인
disabled로 설정되어 있으면 채널 메시지 무시됨allowlist로 설정했으면 해당 채널 ID가 allowlist에 있는지 확인
메시지는 받지만 응답이 느림
증상: 메시지를 보내고 응답까지 10초 이상 걸림
해결 방법:
-
API 응답 속도 확인
- Claude API가 느릴 수 있음
- 모델을
claude-3-haiku로 바꿔보기 (더 빠름)
-
네트워크 확인
- VPS 사용 시 지역 확인 (미국/유럽이 빠름)
- 핑 테스트
-
로그 확인
openclaw gateway logs --tail 50
보안 권장사항
1. 토큰 관리
-
설정 파일 권한 설정
chmod 600 ~/.openclaw/config.json -
토큰을 GitHub에 올리지 말 것
.gitignore에config.json추가
2. DM 정책
기본 정책이 pairing이므로, 처음 연락하는 사람은 승인이 필요하다. 안전하게 유지하려면:
{
"channels": {
"slack": {
"dm": {
"policy": "allowlist",
"allowFrom": ["U01234567"] // 본인만
}
}
}
}
3. 채널 접근 제한
업무용 Slack이라면 특정 채널만 허용:
{
"channels": {
"slack": {
"groupPolicy": "allowlist",
"channels": {
"C_HELP": { "allow": true },
"C_BOT_TEST": { "allow": true }
}
}
}
}
4. 샌드박스 모드
그룹 채널에서는 샌드박스 모드 사용:
{
"agents": {
"defaults": {
"sandbox": {
"mode": "non-main"
}
}
}
}
DM은 풀 액세스, 채널은 샌드박스에서만 실행된다.
실전 사용 팁
1. 아침 이메일 요약
Slack DM으로 "매일 아침 8시에 중요한 이메일 요약해줘"라고 하면 cron job 생성해준다.
2. PR 알림
GitHub webhook을 설정하면 PR이 생성/머지될 때 Slack 채널로 알림을 보낼 수 있다.
3. 서버 모니터링
"CPU 사용률 90% 넘으면 #alerts 채널에 알려줘" 같은 조건 설정 가능
4. 파일 검색
"작년 12월에 올라온 계약서 파일 찾아줘" 같은 요청도 가능 (User Token + search:read 필요)
관련 가이드
- OpenClaw 완벽 가이드 - 기본 개념과 설치
- OpenClaw Discord 연동 가이드 - Discord 연동
- OpenClaw GitHub 봇 계정 설정 - GitHub 연동