返回

14. OpenClaw Otomasyon ve Zamanlanmış Görevler: Cron, Webhook ve Gmail Entegrasyonu

Bu makale OpenClaw'un otomasyon yeteneklerini tanıtır: Cron zamanlanmış görevler, Webhook tetikleyicileri, Gmail Pub/Sub entegrasyonu ve daha fazlası. AI asistanınızın sadece pasif yanıt vermek yerine proaktif çalışmasını sağlayın.

OpenClaw v2026.2 için geçerlidir | Bu makale, AI asistanının pasif yanıt yerine proaktif çalışmasını isteyen kullanıcılar için uygundur.

TL;DR: Cron zamanlanmış görevler: "cron": [{"id": "daily", "schedule": "0 9 * * *", "message": "..."}]. Webhook tetikleme: POST /webhook/your-path. Gmail Pub/Sub ile otomatik e-posta işleme. Heartbeat proaktif kontrol. Yapılandırma örnekleri: günlük sabah bülteni 0 8 * * 1-5, CI bildirimi webhook, e-posta filtresi gmail pub/sub.

Otomasyona Genel Bakış

Otomasyon Türleri

Tür Tetikleme Yöntemi Kullanım Alanı
Cron Zamanlanmış tetikleme Günlük rapor, periyodik kontrol
Webhook HTTP isteği Harici sistem entegrasyonu
Gmail Pub/Sub Yeni e-posta E-posta otomasyonu
Heartbeat Periyodik kontrol Proaktif hatırlatma, öneriler

Mimari Şema

flowchart TB
    subgraph Triggers["Tetikleme Kaynakları"]
        CRON[Cron Zamanlayıcı]
        WH[Webhook HTTP]
        GM[Gmail Pub/Sub]
        HB[Heartbeat]
    end
    
    subgraph Gateway["Gateway"]
        SCHED[Zamanlayıcı]
        ROUTE[Yönlendirici]
        AGENT[Agent]
    end
    
    subgraph Actions["Eylemler"]
        MSG[Mesaj Gönder]
        EXEC[Görev Yürüt]
        NOTIF[Bildirim Gönder]
    end
    
    CRON --> SCHED
    WH --> ROUTE
    GM --> ROUTE
    HB --> SCHED
    
    SCHED --> AGENT
    ROUTE --> AGENT
    AGENT --> MSG
    AGENT --> EXEC
    AGENT --> NOTIF

Cron Zamanlanmış Görevler

Cron İfadesi

┌───────────── Dakika (0 - 59)
│ ┌───────────── Saat (0 - 23)
│ │ ┌───────────── Gün (1 - 31)
│ │ │ ┌───────────── Ay (1 - 12)
│ │ │ │ ┌───────────── Haftanın Günü (0 - 6, 0 = Pazar)
│ │ │ │ │
* * * * *

Yaygın İfadeler

İfade Açıklama
0 9 * * * Her gün 9:00
0 18 * * 1-5 Hafta içi 18:00
*/30 * * * * Her 30 dakika
0 0 1 * * Her ayın 1’i 0:00
0 9,18 * * * Her gün 9:00 ve 18:00
0 9 * * 1 Her Pazartesi 9:00

Cron Görevi Yapılandırması

{
  "cron": [
    {
      "id": "daily-briefing",
      "schedule": "0 9 * * *",
      "session": "main",
      "message": "Lütfen bugünkü takvimimi ve yapılacak işlerimi ver",
      "enabled": true
    },
    {
      "id": "weekly-summary",
      "schedule": "0 18 * * 5",
      "session": "main",
      "message": "Haftalık çalışma özetini oluştur",
      "enabled": true
    },
    {
      "id": "health-check",
      "schedule": "*/15 * * * *",
      "session": "main",
      "message": "Sistem durumunu kontrol et, anormallikleri raporla",
      "enabled": true
    }
  ]
}

Cron Yapılandırma Alanları

Alan Tür Açıklama
id string Görev benzersiz tanımlayıcısı
schedule string Cron ifadesi
session string Hedef oturum
message string Gönderilecek mesaj
enabled boolean Etkin mi
timezone string Zaman dilimi (varsayılan: sistem zaman dilimi)

Cron Görev Yönetimi

# Tüm görevleri listele
openclaw cron list

# Çıktı örneği:
# ID               Schedule       Status    Last Run
# daily-briefing   0 9 * * *     enabled   2026-02-26 09:00
# weekly-summary   0 18 * * 5    enabled   2026-02-23 18:00
# health-check    */15 * * * *   enabled   2026-02-26 10:30

# Görevi manuel tetikle
openclaw cron run daily-briefing

# Görevi etkinleştir/devre dışı bırak
openclaw cron enable daily-briefing
openclaw cron disable daily-briefing

# Görev günlüklerini görüntüle
openclaw cron logs daily-briefing

Webhook Tetikleyicileri

Webhook Yapılandırması

{
  "webhooks": [
    {
      "id": "github-push",
      "path": "/webhook/github",
      "secret": "your-webhook-secret",
      "session": "main",
      "handler": "github-push"
    },
    {
      "id": "custom-alert",
      "path": "/webhook/alert",
      "secret": "your-webhook-secret",
      "session": "main",
      "message": "Uyarı alındı: {{data.message}}"
    }
  ]
}

Webhook Uç Noktaları

POST http://your-gateway:18789/webhook/github-push
POST http://your-gateway:18789/webhook/alert

GitHub Webhook Örneği

{
  "webhooks": [
    {
      "id": "github-push",
      "path": "/webhook/github",
      "secret": "${GITHUB_WEBHOOK_SECRET}",
      "session": "work",
      "handler": "github-push"
    }
  ]
}

Handler betiği:

// ~/.openclaw/handlers/github-push.js
module.exports = async (payload, session) => {
  if (payload.ref === 'refs/heads/main') {
    const commits = payload.commits.map(c => c.message).join('\n- ');
    return `Yeni push tespit edildi:\n\nDal: main\nCommitler:\n- ${commits}\n\nBir şey yapmamı ister misiniz?`;
  }
  return null;
};

Özel Webhook İşleme

{
  "webhooks": [
    {
      "id": "monitoring-alert",
      "path": "/webhook/alert",
      "methods": ["POST"],
      "session": "main",
      "message": "🚨 Uyarı Bildirimi\n\nSeviye: {{data.level}}\nServis: {{data.service}}\nBilgi: {{data.message}}\nZaman: {{data.timestamp}}"
    }
  ]
}

Webhook gönderme:

curl -X POST http://localhost:18789/webhook/alert \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Secret: your-secret" \
  -d '{
    "level": "critical",
    "service": "api-server",
    "message": "CPU kullanımı %90 üzerine çıktı",
    "timestamp": "2026-02-26T10:30:00Z"
  }'

Webhook Güvenliği

{
  "webhooks": [
    {
      "id": "secure-webhook",
      "path": "/webhook/secure",
      "secret": "your-secret-key",
      "signatureHeader": "X-Signature",
      "signatureAlgorithm": "sha256",
      "ipWhitelist": ["192.168.1.0/24"]
    }
  ]
}

Gmail Pub/Sub Entegrasyonu

Gmail Pub/Sub Yapılandırması

{
  "gmail": {
    "pubsub": {
      "enabled": true,
      "projectId": "your-project-id",
      "subscription": "gmail-subscription",
      "credentials": {
        "type": "service_account",
        "project_id": "your-project-id",
        "private_key_id": "...",
        "private_key": "...",
        "client_email": "..."
      },
      "filters": [
        {
          "from": "[email protected]",
          "session": "main",
          "message": "Önemli e-posta alındı:\nGönderen: {{sender}}\nKonu: {{subject}}"
        }
      ]
    }
  }
}

Gmail Pub/Sub Kurulumu

  1. Google Cloud projesi oluşturun
  2. Gmail API’yi etkinleştirin
  3. Pub/Sub konusu oluşturun
  4. Servis hesabı oluşturun
  5. Gmail watch yapılandırın
# Gmail watch yapılandır
openclaw gmail watch --email [email protected]

Gmail Filtreleri

Filtre Koşulu Açıklama
from Gönderen e-posta
to Alıcı e-posta
subject Konu anahtar kelimeleri
hasAttachment Ek var mı
label Gmail etiketi
{
  "filters": [
    {
      "from": "[email protected]",
      "session": "work",
      "message": "GitHub bildirimi alındı: {{subject}}"
    },
    {
      "from": "[email protected]",
      "hasAttachment": true,
      "session": "main",
      "message": "Stripe belgesi alındı, lütfen işleyin"
    }
  ]
}

Heartbeat Proaktif Kontrol

Heartbeat Yapılandırması

{
  "heartbeat": {
    "enabled": true,
    "interval": 3600000,
    "session": "main",
    "message": "Heartbeat: Dikkatimi çekmem gereken bir konu var mı kontrol et"
  }
}

Heartbeat Kullanım Alanları

Kullanım Açıklama
Proaktif Hatırlatma Kullanıcıya düzenli hatırlatma
Durum Kontrolü Sistem veya servis durumunu kontrol etme
Görev Önerileri Bağlama dayalı öneriler sunma
Bağlam Bakımı Oturumu aktif tutma

Heartbeat Örneği

{
  "heartbeat": {
    "enabled": true,
    "interval": 1800000,
    "conditions": [
      {
        "type": "time",
        "start": "09:00",
        "end": "18:00"
      },
      {
        "type": "active",
        "session": "main"
      }
    ],
    "message": "Mevcut zamana göre aşağıdaki konuları kontrol etmenizi öneririm:\n1. Bugünkü yapılacaklar\n2. E-posta hatırlatmaları\n3. Takvim planı"
  }
}

Otomasyon Uygulama Örnekleri

Örnek 1: Günlük Sabah Bülteni

{
  "cron": [
    {
      "id": "morning-briefing",
      "schedule": "0 8 * * 1-5",
      "session": "main",
      "message": "Günaydın! Lütfen bugünkü bülteni hazırlayın:\n1. Hava durumu\n2. Bugünkü takvim\n3. Yapılacak işler\n4. Önemli e-posta özeti"
    }
  ]
}

Örnek 2: CI/CD Bildirimi

{
  "webhooks": [
    {
      "id": "ci-failure",
      "path": "/webhook/ci",
      "session": "dev",
      "message": "⚠️ CI Başarısız\n\nProje: {{data.repository}}\nDal: {{data.branch}}\nCommit: {{data.commit}}\nHata: {{data.error}}\n\nAnaliz etmemi ister misiniz?"
    }
  ]
}

Örnek 3: Otomatik E-posta İşleme

{
  "gmail": {
    "pubsub": {
      "filters": [
        {
          "from": "[email protected]",
          "hasAttachment": true,
          "session": "main",
          "message": "Fatura e-postası alındı, işleniyor...\nLütfen eki finans klasörüne kaydedin"
        }
      ]
    }
  }
}

Örnek 4: Sistem İzleme

{
  "cron": [
    {
      "id": "system-monitor",
      "schedule": "*/5 * * * *",
      "session": "main",
      "message": "Sistem durumunu kontrol et",
      "skills": ["system-monitor"]
    }
  ]
}

Sorun Giderme

Cron Görevi Çalışmıyor

# Görev durumunu kontrol et
openclaw cron list

# Günlükleri kontrol et
openclaw logs --filter cron

# Manuel tetikleme ile test et
openclaw cron run task-id

Webhook Yanıt Vermiyor

# Webhook uç noktasını kontrol et
curl -X POST http://localhost:18789/webhook/test \
  -H "Content-Type: application/json" \
  -d '{"test": true}'

# Günlükleri görüntüle
openclaw logs --filter webhook

Gmail Pub/Sub Çalışmıyor

# Abonelik durumunu kontrol et
openclaw gmail status

# Yeniden yapılandır
openclaw gmail setup

# İzinleri kontrol et
openclaw gmail check-permissions

Özet

Otomasyon, OpenClaw’u pasif yanıttan proaktif çalışmaya dönüştürür:

  • Cron: Zamanlanmış görev yürütme
  • Webhook: Harici olay tetikleme
  • Gmail Pub/Sub: E-posta otomasyonu
  • Heartbeat: Proaktif hatırlatma ve öneriler

Güncelleme Geçmişi:

  • 2026-02-26: İlk sürüm yayınlandı

Seri Navigasyonu: