튜토리얼 카테고리 Skills 소개
ZH EN JA KO
고급 활용

OpenClaw 자동화 워크플로우 구축 완벽 튜토리얼

· 23 분 소요

서문

OpenClaw는 단순한 챗봇이 아니라 자동화 워크플로우의 핵심이 될 수 있습니다. 예약 작업, 이벤트 트리거, 서드파티 통합을 통해 OpenClaw가 일일 보고서 요약, 콘텐츠 모니터링, 메시지 전달 등의 작업을 자동으로 수행하게 할 수 있습니다. 본 글에서는 다양한 실용적인 자동화 방안을 소개합니다.

1. 예약 작업 (Cron 통합)

1.1 기본 원리

cron으로 OpenClaw의 API를 정기적으로 호출하여 AI 작업을 예약 실행합니다:

# OpenClaw Gateway API 메시지 전송
curl -X POST http://localhost:18789/api/v1/send \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "YOUR_CHAT_ID",
    "message": "오늘의 업무 요약을 생성해 주세요"
  }'

1.2 매일 아침 뉴스 브리핑 발송

매일 아침 8시에 뉴스 요약을 발송하는 예약 작업을 만듭니다:

#!/bin/bash
# /usr/local/bin/openclaw-morning-brief.sh

API_URL="http://localhost:18789/api/v1/chat"
CHAT_ID="YOUR_TELEGRAM_CHAT_ID"

# OpenClaw에 아침 뉴스 브리핑 생성 요청
RESPONSE=$(curl -sf -X POST "$API_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "'"$CHAT_ID"'",
    "message": "오늘 날짜를 기준으로 다음 내용을 포함하는 아침 브리핑을 생성해 주세요: 1. 오늘은 어떤 날인지 2. 날씨 알림 3. 할 일 목록 리뷰 4. 명언 한마디",
    "systemPrompt": "당신은 전문적인 일일 브리핑 어시스턴트입니다. 응답은 간결하고 체계적으로 하며, 이모지를 사용하여 가독성을 높여 주세요."
  }')

echo "[$(date)] 아침 브리핑 발송 완료: $RESPONSE" >> /var/log/openclaw-cron.log
# cron 예약 작업 설정
chmod +x /usr/local/bin/openclaw-morning-brief.sh
crontab -e
# 다음 줄 추가 (매일 아침 8:00 실행)
# 0 8 * * * /usr/local/bin/openclaw-morning-brief.sh

1.3 정기 시스템 점검 보고서

#!/bin/bash
# /usr/local/bin/openclaw-system-report.sh

# 시스템 정보 수집
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}')
MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2}')
CPU_LOAD=$(uptime | awk -F'load average: ' '{print $2}')
OPENCLAW_STATUS=$(curl -sf http://localhost:18789/health | jq -r '.status')
UPTIME=$(uptime -p)

# 보고서 내용 구성
REPORT="서버 점검 보고서:
- 실행 시간: $UPTIME
- CPU 부하: $CPU_LOAD
- 메모리 사용률: $MEMORY_USAGE
- 디스크 사용률: $DISK_USAGE
- OpenClaw 상태: $OPENCLAW_STATUS

위 데이터를 분석하여 이상 지표가 있으면 최적화 방안을 제안해 주세요."

# 관리자에게 전송
curl -sf -X POST http://localhost:18789/api/v1/send \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "ADMIN_CHAT_ID",
    "message": "'"$(echo "$REPORT" | sed 's/"/\\"/g')"'"
  }'
# 매일 밤 22:00에 점검 보고서 생성
# 0 22 * * * /usr/local/bin/openclaw-system-report.sh

2. 이벤트 트리거 방식의 워크플로우

2.1 파일 변경 기반 트리거

특정 디렉토리를 모니터링하여 새 파일이 있으면 자동 처리합니다:

#!/bin/bash
# /usr/local/bin/openclaw-file-watcher.sh
# inotifywait으로 파일 변경 모니터링

WATCH_DIR="/home/user/incoming-docs"
API_URL="http://localhost:18789/api/v1/chat"

inotifywait -m -e create "$WATCH_DIR" --format '%f' | while read filename; do
    echo "[$(date)] 새 파일 감지: $filename"

    # 파일 내용 읽기 (크기 제한)
    CONTENT=$(head -c 5000 "$WATCH_DIR/$filename")

    # OpenClaw에 처리 요청
    curl -sf -X POST "$API_URL" \
      -H "Content-Type: application/json" \
      -d '{
        "channel": "telegram",
        "chatId": "ADMIN_CHAT_ID",
        "message": "새 파일 '"$filename"'을(를) 수신했습니다. 주요 내용을 요약해 주세요:\n\n'"$(echo "$CONTENT" | jq -Rs .)"'"
      }'
done

2.2 로그 키워드 기반 트리거

시스템 로그의 이상 항목을 모니터링하고 자동으로 알림 및 분석합니다:

#!/bin/bash
# /usr/local/bin/openclaw-log-monitor.sh

LOG_FILE="/var/log/syslog"
KEYWORDS="error|critical|failure|out of memory"

tail -F "$LOG_FILE" | grep --line-buffered -iE "$KEYWORDS" | while read logline; do
    # 알림 폭주 방지: 같은 분 내에 최대 1회 전송
    CURRENT_MINUTE=$(date +%Y%m%d%H%M)
    if [ "$CURRENT_MINUTE" != "$LAST_ALERT_MINUTE" ]; then
        curl -sf -X POST http://localhost:18789/api/v1/send \
          -H "Content-Type: application/json" \
          -d '{
            "channel": "telegram",
            "chatId": "ADMIN_CHAT_ID",
            "message": "⚠️ 시스템 로그 이상:\n'"$(echo "$logline" | head -c 500)"'\n\n가능한 원인과 권장 처리 방법을 분석해 주세요."
          }'
        LAST_ALERT_MINUTE="$CURRENT_MINUTE"
    fi
done

3. Webhook 수신기

3.1 OpenClaw 내장 Webhook 지원

OpenClaw Gateway는 외부 Webhook을 수신하여 해당하는 동작을 트리거할 수 있습니다:

// ~/.config/openclaw/openclaw.json5
{
  "webhooks": {
    "enabled": true,
    "port": 18789,
    "endpoints": {
      "/webhook/github": {
        "secret": "your-webhook-secret",
        "action": "notify",
        "channel": "telegram",
        "chatId": "GROUP_CHAT_ID",
        "template": "GitHub 이벤트: {{event}} - {{payload.action}}"
      },
      "/webhook/custom": {
        "action": "process",
        "handler": "custom-webhook-skill"
      }
    }
  }
}

3.2 GitHub Webhook 통합

GitHub 리포지토리에 Webhook을 설정하면 OpenClaw가 푸시 알림을 수신할 수 있습니다:

# Webhook 수신 테스트
curl -X POST http://localhost:18789/webhook/github \
  -H "Content-Type: application/json" \
  -H "X-Hub-Signature-256: sha256=..." \
  -d '{
    "action": "opened",
    "pull_request": {
      "title": "Fix login bug",
      "body": "Fixes the timeout issue on login page",
      "user": {"login": "developer1"}
    }
  }'

3.3 커스텀 Webhook 스킬

Webhook을 처리하는 스킬 파일을 생성합니다:

<!-- ~/.openclaw/skills/webhook-handler.SKILL.md -->
# Webhook Handler

외부 Webhook 알림을 수신하면 다음을 수행해야 합니다:

1. Webhook 내용을 파싱
2. 핵심 정보를 추출
3. 간결한 한국어로 요약
4. 긴급 이벤트인 경우 "긴급"으로 표시

## 지원하는 Webhook 유형
- GitHub (PR, Issue, Push)
- 모니터링 알림 (서버 상태)
- 커스텀 비즈니스 이벤트

4. n8n 통합

n8n은 강력한 오픈소스 워크플로우 자동화 도구로, OpenClaw와 깊이 있게 통합할 수 있습니다.

4.1 n8n 설치

# Docker로 n8n 설치
docker run -d \
  --name n8n \
  --restart=always \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

4.2 n8n에서 OpenClaw를 호출하는 워크플로우

n8n에서 HTTP Request 노드로 OpenClaw에 연결합니다:

{
  "nodes": [
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "rule": {
          "interval": [{"field": "hours", "hoursInterval": 1}]
        }
      }
    },
    {
      "name": "Call OpenClaw",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "http://localhost:18789/api/v1/chat",
        "method": "POST",
        "body": {
          "message": "최근 1시간의 시스템 상태를 점검하고 보고서를 생성해 주세요",
          "channel": "internal"
        }
      }
    },
    {
      "name": "Send to Slack",
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "#ops-alerts",
        "text": "="
      }
    }
  ]
}

4.3 일반적인 n8n + OpenClaw 워크플로우

워크플로우 트리거 방식 설명
이메일 요약 새 이메일 수신 AI로 이메일 핵심 내용을 요약하여 푸시
RSS 모니터링 정기 폴링 RSS를 모니터링하고 새 글이 있으면 요약 생성
폼 처리 Webhook 폼 제출 수신 후 AI 분석 및 응답
데이터 보고서 매일 정기 데이터베이스 조회 후 일일 보고서 생성
고객 서비스 분류 메시지 수신 AI가 문의 유형을 판별하고 담당자 배정

5. Make (Integromat) 통합

Make는 워크플로우를 구축하기 위한 더 직관적인 시각적 인터페이스를 제공합니다.

5.1 OpenClaw API 모듈 생성

Make에서 HTTP 모듈을 사용하여 OpenClaw에 연결합니다:

트리거 (Schedule/Webhook)
    ↓
HTTP 모듈 → POST http://your-server:18789/api/v1/chat
    ↓
응답 파싱 (JSON Parse)
    ↓
결과 전송 (Email/Slack/Telegram)

6. 실용적인 워크플로우 예시

6.1 자동화된 일일 보고서 요약

매일 오후 6시에 당일 모든 채널의 대화를 자동으로 요약하여 일일 보고서를 생성합니다:

#!/bin/bash
# /usr/local/bin/openclaw-daily-summary.sh

# 당일 대화 통계 가져오기
STATS=$(curl -sf http://localhost:18789/api/v1/stats/today)

# OpenClaw에 요약 생성 요청
curl -sf -X POST http://localhost:18789/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "chatId": "ADMIN_CHAT_ID",
    "message": "다음 오늘 통계 데이터를 기반으로 일일 보고서 요약을 생성해 주세요:\n\n'"$STATS"'\n\n형식 요구 사항: 1.전체 개요 2.인기 주제 3.주의 사항",
    "systemPrompt": "당신은 전문 데이터 분석가로, 채팅 데이터에서 유용한 인사이트를 추출하는 것을 잘합니다."
  }'

6.2 콘텐츠 모니터링 및 알림

특정 웹사이트의 콘텐츠 변경을 모니터링하고 업데이트가 발견되면 사용자에게 알립니다:

#!/bin/bash
# /usr/local/bin/openclaw-content-monitor.sh

URLS=(
    "https://example.com/api/announcements"
    "https://status.anthropic.com/api/v2/summary.json"
)
CACHE_DIR="/tmp/openclaw-monitor"
mkdir -p "$CACHE_DIR"

for url in "${URLS[@]}"; do
    HASH_FILE="$CACHE_DIR/$(echo "$url" | md5sum | cut -d' ' -f1)"
    CURRENT_CONTENT=$(curl -sf "$url")
    CURRENT_HASH=$(echo "$CURRENT_CONTENT" | md5sum | cut -d' ' -f1)

    if [ -f "$HASH_FILE" ]; then
        OLD_HASH=$(cat "$HASH_FILE")
        if [ "$CURRENT_HASH" != "$OLD_HASH" ]; then
            echo "[$(date)] 콘텐츠 변경 감지: $url"
            # OpenClaw에 변경 분석 알림
            curl -sf -X POST http://localhost:18789/api/v1/send \
              -H "Content-Type: application/json" \
              -d '{
                "channel": "telegram",
                "chatId": "ADMIN_CHAT_ID",
                "message": "콘텐츠 변경 감지:\nURL: '"$url"'\n\n새 콘텐츠 요약:\n'"$(echo "$CURRENT_CONTENT" | head -c 2000)"'"
              }'
        fi
    fi

    echo "$CURRENT_HASH" > "$HASH_FILE"
done
# 30분마다 확인
# */30 * * * * /usr/local/bin/openclaw-content-monitor.sh

6.3 다채널 메시지 동기화

한 채널의 중요 메시지를 다른 채널로 자동 전달합니다:

// ~/.config/openclaw/openclaw.json5
{
  "automation": {
    "messageForwarding": {
      "rules": [
        {
          "from": {"channel": "telegram", "chatId": "GROUP_A"},
          "to": [
            {"channel": "discord", "chatId": "CHANNEL_ID"},
            {"channel": "slack", "chatId": "#general"}
          ],
          "filter": {
            "keywords": ["공지", "중요", "긴급"],
            "fromUsers": ["admin"]
          }
        }
      ]
    }
  }
}

7. 워크플로우 디버깅 팁

7.1 로그 확인

# 자동화 관련 로그 확인
openclaw logs | grep -i "automation\|webhook\|cron\|schedule"

# API 호출 테스트
curl -v -X POST http://localhost:18789/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{"message":"test","channel":"internal"}'

7.2 일반적인 문제

문제 원인 해결 방안
Cron이 실행되지 않음 경로 또는 환경 변수 문제 절대 경로 사용, PATH 설정
Webhook을 수신하지 못함 방화벽 또는 포트 미개방 방화벽 규칙 확인
API가 401 반환 인증 미설정 API Key 추가
응답 타임아웃 작업 처리 시간 과다 타임아웃 설정 증가

8. 보안 주의사항

  1. Webhook 서명 검증: Webhook Secret을 활성화하여 위조 요청 방지
  2. API 인증: OpenClaw API에 인증 Token 설정
  3. 입력 필터링: 외부 입력을 정리하여 프롬프트 인젝션 방지
  4. 빈도 제한: 자동화 작업에 적절한 실행 빈도 설정
  5. 로그 감사: 모든 자동화 작업을 기록하여 사후 검토 용이

위의 방안을 통해 OpenClaw를 강력한 자동화 워크플로우 센터로 구축하여 업무 효율성을 크게 향상시킬 수 있습니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다