OpenClaw
사용 사례중급15 min

OpenClaw로 Slack 일일 다이제스트 봇 구축하기

OpenClaw를 사용하여 Slack 일일 다이제스트 워크플로우를 구축하는 방법을 안내합니다. 채널 메시지 자동 수집, AI 요약, 정기 배포로 팀의 중요 정보를 놓치지 마세요.

최종 업데이트: 2026-03-31

필요한 Skills

Slack
추천

Slack 메시지 전송/읽기, 채널 관리.

가이드 보기
Summarize
추천

URL, PDF, 비디오, 문서 요약.

Cron Creator
추천

자연어를 cron 스케줄 표현식으로 변환.

무엇을 구축하나요

자동화된 일일 다이제스트 시스템을 만듭니다:

  1. 메시지 수집 — 하루 종일 Slack 채널의 대화를 자동으로 수집합니다
  2. AI 스마트 요약 — 핵심 요점, 의사결정, 액션 아이템을 추출합니다
  3. 정기 다이제스트 발송 — 설정한 시간에 정확하게 전달됩니다
  4. 완전 자동 실행 — Cron 스케줄링으로 설정 후 신경 쓸 필요가 없습니다

팀 리더, 원격 근무자, 또는 전체 상황을 파악하되 메시지를 일일이 확인하고 싶지 않은 분에게 적합합니다.

일일 다이제스트가 필요한 이유

Slack의 실시간 알림은 양날의 검입니다. 메시지 알림이 올 때마다 집중 상태가 깨지며, 연구에 따르면 중단 후 평균 23분이 지나야 완전히 집중력을 회복합니다. 하루 동안 누적되면 상당한 시간 손실이 됩니다.

일일 다이제스트의 본질은 커뮤니케이션의 일괄 처리입니다. 메시지가 올 때마다 즉시 반응하는 대신, 원하는 시간에 한 번에 구조화된 요약을 받습니다. "메시지 불안" — 사이드바에 읽지 않은 채널이 쌓일 때의 압박감 — 을 해소하고, 차분하고 예측 가능한 정보 흐름으로 대체합니다.

10개 채널의 150개 개별 메시지를 확인하려면 지속적인 정신적 노력이 필요합니다: 잡음 필터링, 논의 추적, 맥락 기억. 구조적으로 잘 정리된 다이제스트는 이를 중요도 순으로 정리된 2분 분량의 읽을거리로 압축합니다. 의사결정, 차단 사항, 액션 아이템을 완전히 파악하면서도 넘쳐나는 사이드바에 대한 불안감을 느끼지 않습니다.

이 방식은 여러 채널에 대한 인지를 유지해야 하지만 모든 대화에 실시간으로 참여할 필요는 없는 관리자, 임원, 크로스펑셔널 담당자에게 특히 적합합니다.

사전 준비

  • OpenClaw 설치 및 설정 완료
  • Slack 워크스페이스, 관리자 또는 앱 설치 권한 필요
  • Slack Bot Token, channels:history, channels:read, chat:write 스코프 포함
  • Node.js 18+

1단계: 필요한 Skills 설치

bash
# 1. Slack 연동
npx clawhub@latest install slack

# 2. AI 요약 생성
npx clawhub@latest install summarize

# 3. 정기 스케줄링
npx clawhub@latest install cron

2단계: Slack 연동 설정

Slack 앱 생성

  1. api.slack.com/apps에서 새 앱을 생성합니다
  2. OAuth & Permissions에서 다음 Bot Token Scopes를 추가합니다:
    • channels:history — 채널 메시지 읽기
    • channels:read — 채널 목록 조회
    • chat:write — 다이제스트 메시지 전송
  3. 앱을 워크스페이스에 설치합니다
  4. Bot User OAuth Token을 복사합니다 (xoxb-로 시작)

Skill 설정

OpenClaw에서 Slack Token을 설정합니다:

bash
# Skill 첫 사용 시 설정 입력 프롬프트가 표시됩니다
clawhub inspect slack

3단계: 요약 생성기 설정

Summarize Skill은 모든 텍스트 입력을 처리할 수 있습니다. 일일 다이제스트 시나리오에서는 다음과 같이 설정하는 것을 권장합니다:

  • 출력 형식: 섹션별로 구분된 구조화된 요점
  • 관심 영역: 의사결정, 액션 아이템, 공지, 질문
  • 분량: 간결하게 (채널당 200-400자)

4단계: Cron 스케줄 설정

일일 Cron 작업을 생성하여 다이제스트 워크플로우를 실행합니다:

bash
# 매 평일 오후 6시에 발송
# Cron Creator는 자연어 입력을 지원합니다

Cron 작업이 순차적으로 실행됩니다:

  1. 설정된 채널에서 메시지를 가져옵니다 (지난 24시간)
  2. Summarize Skill에 전달합니다
  3. 구조화된 다이제스트로 포맷합니다
  4. 지정된 다이제스트 채널에 게시합니다

5단계: 다이제스트 테스트

Cron 스케줄에 의존하기 전에 먼저 수동으로 실행하여 검증합니다:

  1. Slack 연결이 정상인지 확인합니다
  2. 메시지 수집이 예상대로 동작하는지 확인합니다
  3. 요약 생성 품질을 검증합니다
  4. 다이제스트가 올바른 채널에 게시되는지 확인합니다

커스터마이즈 옵션

다중 채널 다이제스트

여러 채널을 모니터링하고 채널별로 그룹화합니다:

  • #engineering — 기술 논의와 의사결정
  • #product — 기능 요청과 로드맵 업데이트
  • #incidents — 장애 이슈와 해결 사항
  • #general — 전사 공지

우선순위 필터링

요약기가 다음을 강조하도록 설정합니다:

  • 이모지 리액션이 있는 메시지 (👀, ✅, 🚨)
  • 특정 키워드가 언급된 메시지
  • 답장이 많은 스레드
  • 특정 사용자의 메시지 (리더십, 온콜 담당자)

다중 시간대 다이제스트

필요에 따라 다른 발송 시간을 설정합니다:

  • 아침 브리핑 (오전 8:00) — 밤새 활동 요약
  • 퇴근 전 다이제스트 (오후 6:00) — 하루 전체 요약
  • 주간 리뷰 (금요일 오후 4:00) — 한 주 돌아보기

고급: 조건부 다이제스트

매일 다이제스트가 필요한 것은 아닙니다. 의미가 있을 때만 보내도록 스마트 트리거를 설정할 수 있습니다.

주말 및 공휴일 건너뛰기

Cron을 평일 전용으로 설정하고 공휴일 목록을 관리합니다. Cron Skill은 0 18 * * 1-5와 같은 표현식을 지원하여 평일에만 실행됩니다. 공휴일의 경우 워크플로우 시작 시 날짜를 확인하여 공휴일이면 조기에 종료합니다.

긴급 감지

키워드 기반 알림을 설정하여 일일 스케줄을 우회합니다. 메시지에 "장애", "P0", "보안 사고", "롤백" 등의 키워드가 포함되면 정기 시간을 기다리지 않고 즉시 간략한 다이제스트를 발송합니다. 일상적인 업데이트는 일괄 처리하고 중요 이벤트는 실시간으로 알리는 양쪽의 장점을 모두 가집니다.

활동 임계값

최소 메시지 수 임계값을 설정합니다. 채널이 24시간 동안 메시지가 3건 미만이면 요약할 가치가 적습니다. 워크플로우가 먼저 메시지 양을 확인하고 활동이 임계값 미만이면 해당 채널 또는 전체 다이제스트를 건너뜁니다.

키워드 기반 분류

키워드 그룹을 정의하여 특정 주제를 표시합니다. 예를 들어 "배포", "릴리스", "출시"가 언급된 메시지는 '릴리스' 섹션에, "버그", "크래시", "오류"가 언급된 메시지는 '이슈' 섹션에 분류합니다. AI 요약 위에 지능적인 분류 레이어를 추가합니다.

역할별 다이제스트 템플릿

역할마다 같은 채널에서 다른 정보가 필요합니다. 다양한 대상을 위한 다이제스트 설정을 여러 개 만들 수 있습니다.

엔지니어링 리드

🔧 기술 다이제스트 — 2026년 3월 31일

차단 이슈 (2)
• 인증 서비스 staging 환경에서 속도 제한 발동 — @chen 조사 중, DevOps 지원 필요
• CI 파이프라인 통합 테스트 실패 — 결제 모듈의 불안정한 테스트

Pull Request (5건 머지, 3건 진행 중)
• 머지 완료: 모바일 API GraphQL 마이그레이션 (#1842), 캐시 무효화 수정 (#1839)
• 리뷰 필요: 데이터베이스 인덱스 최적화 (#1845) — 2일째 오픈 상태

배포
• 프로덕션 배포 v2.3.12 오후 2:30 — 성공, 롤백 없음
• Staging 배포 v2.4.0-beta.3 오후 4:00 — 스모크 테스트 2건 실패

기술 의사결정
• 승인: PostgreSQL 커넥션 풀링 전환 (RFC-0047)
• 논의 중: OpenTelemetry 분산 추적 도입

프로덕트 매니저

📦 프로덕트 다이제스트 — 2026년 3월 31일

기능 논의
• 모바일 온보딩 리디자인 — 3가지 디자인 안 공유, 팀은 B안 선호
• 엔터프라이즈 SSO — Acme 고객 피드백을 요구사항에 반영
• API 속도 제한 — 개발자 커뮤니티에서 무료 티어 한도 상향 요청

고객 피드백 (#support 및 #feedback 채널)
• 리포팅 대시보드 CSV 내보내기 요청 4건
• 엔터프라이즈 고객 2곳에서 새 검색 필터에 긍정 피드백
• 버그 제보: Safari에서 날짜 선택기 작동 안 됨 (티켓 생성 완료)

결정 사항
• v2.4 기능 동결 4월 3일 확정
• Q2 OKR 초안 4월 7일까지 — 모든 PM 제출 요청

예정 사항
• 디자인 리뷰 4월 2일 오전 10:00 예정

임원

📊 임원 브리핑 — 2026년 3월 31일

핵심 지표
• 활성 사용자: 12,847명 (주간 대비 3.2% 증가)
• API 가용성: 99.97% (SLA 목표: 99.9%)
• 미처리 지원 티켓: 23건 (어제 31건 대비 감소)

장애
• 해결된 장애 1건: 데이터베이스 커넥션 풀 고갈 (다운타임 45분)
• 근본 원인 확인, 수정 배포 완료 — 고객 데이터 영향 없음

전략적 결정
• 엔지니어링팀 PostgreSQL 커넥션 풀링 마이그레이션 승인
• v2.4 기능 동결 4월 3일 — 4월 15일 릴리스 예정대로 진행

주의 필요 사항
• 엔터프라이즈 가격 모델 재무팀 의견 필요 — 영업 대화 2건 차단 중
• Q2 채용 계획: 엔지니어링 3개 포지션 승인, 직무기술서 작성 대기 중

다이제스트 출력 예시

일반적인 일일 다이제스트의 모습입니다:

📋 일일 다이제스트 — 2026년 3월 31일

🔧 #engineering (12건)
• 결정: 모바일 API REST에서 GraphQL로 마이그레이션 (@sarah 승인)
• 액션 아이템: @mike 목요일까지 API 문서 업데이트
• 논의: 새 캐시 레이어 성능 벤치마크 — 결과 대기 중

📦 #product (8건)
• 공지: v2.4 기능 동결 4월 3일 시작
• 요청: Q2 기획에 새 기능 요청 3건 태그됨
• 질문: 엔터프라이즈 티어 가격 모델 — @finance 의견 필요

🚨 #incidents (2건)
• 해결: 데이터베이스 커넥션 풀 고갈 (10:30 - 11:15)
• 현재 활성 장애 없음

주간 리뷰 형식

주말 회고에 적합한 거시적 관점:

📋 주간 리뷰 — 2026년 3월 25일-31일

금주 하이라이트
• GraphQL 마이그레이션 승인 및 구현 착수
• v2.3.12 출시, 캐시 레이어 개선으로 API 응답 40% 향상
• 신규 엔터프라이즈 고객 2곳 온보딩 완료

주간 수치
• 4개 채널에서 총 87건의 메시지
• 6건의 의사결정, 12건의 액션 아이템 생성
• 3건의 장애 (모두 해결, 평균 처리 시간 38분)

다음 주 이월 사항
• 엔터프라이즈 가격 모델 — 재무팀 검토 대기
• OpenTelemetry RFC — 추가 승인 2건 필요
• 모바일 온보딩 리디자인 — 화요일 최종 디자인 리뷰

프로젝트 중심 다이제스트

특정 프로젝트 중심으로 진행 상황을 파악할 때:

📋 프로젝트 다이제스트: 모바일 앱 v3.0 — 2026년 3월 31일

진행 상황
• 인증 플로우 개발 완료 (PR #1842 머지)
• 푸시 알림 서비스 — 80% 완료, 통합 테스트 통과
• 오프라인 모드 — 설계 스펙 승인, 4월 2일 개발 시작

차단 사항
• 서드파티 SDK iOS 18 호환성 문제 — 벤더에 연락 완료
• 온보딩 화면 디자인 에셋 4월 3일로 연기

팀 업데이트
• @alex 4월 1-3일 휴가 — @jordan이 푸시 알림 담당
• 스프린트 리뷰 4월 4일 오후 2:00으로 변경

장애 전용 다이제스트

온콜 팀과 안정성에 관심 있는 이해관계자용:

🚨 장애 다이제스트 — 2026년 3월 31일

활성 장애: 0

금일 해결: 1
• INC-2847: 데이터베이스 커넥션 풀 고갈
  - 지속 시간: 10:30 – 11:15 (45분)
  - 영향: API 요청의 12%가 503 에러 반환
  - 근본 원인: 신규 배치 처리 작업의 커넥션 누수
  - 수정: 커넥션 풀 한도 증가, 누수는 PR #1840에서 패치
  - 후속 조치: 커넥션 풀 모니터링 알림 추가 (4월 2일까지)

7일 트렌드
• 장애 총 건수: 3건 (전주 5건 대비 감소)
• 평균 해결 시간: 38분
• SLA 달성률: 99.97%

문제 해결

메시지가 가져와지지 않음

  • Bot Token에 channels:history 스코프가 있는지 확인합니다
  • Bot이 모니터링하려는 채널에 멤버로 추가되어 있는지 확인합니다
  • 채널 ID가 올바른지 확인합니다 (channels:read로 목록 조회 가능)

요약 품질이 좋지 않음

  • 메시지 가져오기의 컨텍스트 윈도우를 늘립니다
  • 요약기 설정에 관심 지시를 추가합니다
  • 요약 전에 봇 메시지와 자동화 알림을 필터링합니다

Cron 작업이 실행되지 않음

  • OpenClaw 인스턴스가 실행 중인지 확인합니다
  • Cron 작업 상태를 확인합니다: clawhub list
  • 시스템 시간대가 예상과 일치하는지 확인합니다

자주 묻는 질문

가능합니다. 워크플로우의 핵심 로직은 플랫폼에 독립적입니다. Slack Skill을 Discord Skill로 교체하면 됩니다 (`clawhub install discord` 실행). Summarize와 Cron Creator Skill의 사용 방법은 완전히 동일합니다. Discord Bot Token (`Read Message History`, `Send Messages` 권한 필요)을 제공하고 Discord 서버의 채널 ID를 설정하면 됩니다.

무료 Slack 플랜은 메시지 이력을 90일로 제한하고, 유료 플랜은 무제한입니다. 일일 다이제스트는 24시간만 조회하므로 무료 플랜으로도 충분합니다. 주간 또는 월간 리뷰를 만들 경우 90일 제한에 유의하세요. 무료 플랜 팀에서 장기 요약이 필요한 경우 다이제스트를 별도로 아카이브하는 것이 대안입니다.

Cron 작업은 OpenClaw이 설치된 머신에서 로컬로 실행됩니다. 해당 머신이 예정 시간에 꺼져 있거나 잠자기 상태이면 작업이 실행되지 않으며 내장 재시도 메커니즘도 없습니다. 안정적인 24시간 운영을 위해서는 서버, VPS 또는 클라우드 인스턴스에 OpenClaw를 배포하세요. 월 몇 달러짜리 VPS나 여유 Raspberry Pi로도 충분합니다.

기본적으로 다이제스트는 Slack 채널에 게시됩니다. 여러 가지 대안이 있습니다. Slack의 내장 이메일 알림 기능을 사용하여 다이제스트 채널의 메시지를 받은편지함으로 전달할 수 있습니다. 또는 워크플로우에 Email Skill을 추가하여 (`clawhub install email`) SMTP를 통해 직접 전송할 수 있습니다. 후자는 Slack 워크스페이스에 없는 외부 관계자나 이메일을 선호하는 임원에게도 전달할 수 있습니다.

요약기에서 정규 표현식을 설정하여 API 키, 비밀번호, Token, 개인 식별 정보를 자동으로 마스킹합니다. 마스킹 외에도 다이제스트에 포함되는 채널을 관리합니다 — `#hr-confidential`이나 `#legal` 같은 채널은 완전히 제외합니다. 보안을 강화하려면 다이제스트를 공개 채널 대신 권한이 제한된 비공개 채널에 게시합니다.

시간대별로 여러 Cron 스케줄을 설정하여 각 지역이 편리한 현지 시간에 다이제스트를 받도록 합니다. 예를 들어 한국 시간 오후 6시에 하나, CET 오후 6시에 하나를 설정합니다. 각 스케줄은 같은 채널을 커버하되 지역별 다이제스트 채널로 전송합니다. 또는 모든 사람의 업무 시간이 겹치는 시간(예: UTC 오전 10시)에 통합 다이제스트를 보내고 팀원이 출근 후 확인하도록 할 수도 있습니다.

물론입니다. 가장 간단한 방법은 `0 18 * * 1-5`처럼 평일 전용 Cron 표현식을 사용하는 것입니다. 회사 공휴일의 경우 워크플로우 설정에 날짜 목록을 유지하고, 실행 전에 현재 날짜를 확인하여 공휴일이면 조기 종료합니다. 팀이 여러 국가에 분산되어 있다면 공공 공휴일 API와 연동할 수도 있습니다.

가능합니다. 다이제스트가 Slack 채널에 게시되면 Slack 내장 검색으로 자동으로 찾을 수 있습니다. 더 구조적인 아카이브가 필요하면 워크플로우에 단계를 추가하여 각 다이제스트를 Markdown 또는 JSON 파일로 지정된 디렉터리나 클라우드 스토리지에 저장합니다. 시간이 지나면 검색 가능한 팀 활동 아카이브가 됩니다. 일부 팀은 다이제스트를 Notion, Confluence, Google Drive로 동기화하여 장기 참조 및 감사 자료로 활용합니다.

가능합니다. 워크플로우에서 캘린더 API(Google Calendar, Outlook)와 연결하여 실행 전 특정 일정을 확인합니다. 예를 들어 전사 회의가 있는 날에는 다이제스트를 건너뛰고(이미 모두가 동기화되었으므로), 팀 오프사이트 날에도 건너뜁니다. 워크플로우 시작 시 "no-digest" 같은 키워드가 태그된 일정을 확인하는 캘린더 체크 단계를 추가합니다. Cron 표현식을 변경하지 않고도 유연하게 다이제스트를 제어할 수 있습니다.

다이제스트는 Slack 채널에 게시되므로 채널 멤버십이 수신자를 결정합니다. `#daily-digest`와 같은 전용 채널을 만들고 받아야 할 사람만 초대합니다. 더 세밀한 제어가 필요하면 대상별로 여러 다이제스트 채널을 설정합니다 — 엔지니어링 리드용, 프로덕트 매니저용, 임원용 — 각각 고유한 템플릿과 데이터 소스를 가집니다. 멤버는 Slack의 채널별 알림 설정을 사용하여 필요 없는 날에 다이제스트 채널을 음소거할 수 있습니다.

관련 사용 사례