はじめに
OpenClaw は単なるチャットボットではなく、自動化ワークフローの中核にもなり得ます。定時タスク、イベントトリガー、サードパーティ連携を通じて、日報のまとめ、コンテンツ監視、メッセージ転送などの作業を自動化できます。本記事では、さまざまな実用的な自動化ソリューションをご紹介します。
一、定時タスク(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. To-Doの振り返り 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.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
三、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 ハンドラー
外部 Webhook 通知を受信した場合、以下を行ってください:
1. Webhook の内容を解析する
2. 重要な情報を抽出する
3. 簡潔な日本語でまとめる
4. 緊急イベントの場合は「緊急」とマークする
## 対応する Webhook タイプ
- GitHub(PR、Issue、Push)
- 監視アラート(サーバーステータス)
- カスタムビジネスイベント
四、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 が問題の種類を判断し、担当者に割り当て |
五、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.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.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 を追加 |
| レスポンスタイムアウト | タスクの処理時間が長すぎる | タイムアウト設定を延長 |
八、セキュリティに関する注意事項
- Webhook 署名検証:Webhook Secret を有効にし、偽造リクエストを防止
- API 認証:OpenClaw API に認証 Token を設定
- 入力フィルタリング:外部入力をサニタイズし、プロンプトインジェクションを防止
- 頻度制限:自動化タスクに適切な実行頻度を設定
- ログ監査:すべての自動化操作を記録し、事後レビューに備える
以上のソリューションにより、OpenClaw を強力な自動化ワークフローセンターに変え、業務効率を大幅に向上させることができます。