Zurück

14. OpenClaw Automatisierung und geplante Aufgaben: Cron, Webhook und Gmail-Integration

Dieser Artikel stellt die Automatisierungsfähigkeiten von OpenClaw vor, darunter Cron-Zeitplanaufgaben, Webhook-Trigger, Gmail Pub/Sub-Integration und mehr, damit dein KI-Assistent proaktiv arbeitet statt nur reaktiv zu antworten.

Gilt für OpenClaw v2026.2 | Dieser Artikel richtet sich an Nutzer, die ihren KI-Assistenten proaktiv statt nur reaktiv arbeiten lassen möchten.

TL;DR: Cron-Zeitplanaufgaben: "cron": [{"id": "daily", "schedule": "0 9 * * *", "message": "..."}]. Webhook-Trigger: POST /webhook/your-path. Gmail Pub/Sub für automatische E-Mail-Verarbeitung. Heartbeat für proaktive Überprüfungen. Konfigurationsbeispiele: Täglicher Morgenbericht 0 8 * * 1-5, CI-Benachrichtigung per Webhook, E-Mail-Filter per Gmail Pub/Sub.

Übersicht Automatisierung

Automatisierungstypen

Typ Auslöser Anwendungsfall
Cron Zeitgesteuert Tägliche Berichte, regelmäßige Überprüfungen
Webhook HTTP-Anfrage Integration externer Systeme
Gmail Pub/Sub Neue E-Mail E-Mail-Automatisierung
Heartbeat Periodische Prüfung Proaktive Erinnerungen, Vorschläge

Architekturdiagramm

flowchart TB
    subgraph Triggers["Trigger-Quellen"]
        CRON[Cron Zeitplan]
        WH[Webhook HTTP]
        GM[Gmail Pub/Sub]
        HB[Heartbeat]
    end
    
    subgraph Gateway["Gateway"]
        SCHED[Scheduler]
        ROUTE[Router]
        AGENT[Agent]
    end
    
    subgraph Actions["Aktionen"]
        MSG[Nachricht senden]
        EXEC[Aufgabe ausführen]
        NOTIF[Benachrichtigung senden]
    end
    
    CRON --> SCHED
    WH --> ROUTE
    GM --> ROUTE
    HB --> SCHED
    
    SCHED --> AGENT
    ROUTE --> AGENT
    AGENT --> MSG
    AGENT --> EXEC
    AGENT --> NOTIF

Cron-Zeitplanaufgaben

Cron-Ausdruck

┌───────────── Minute (0 - 59)
│ ┌───────────── Stunde (0 - 23)
│ │ ┌───────────── Tag (1 - 31)
│ │ │ ┌───────────── Monat (1 - 12)
│ │ │ │ ┌───────────── Wochentag (0 - 6, 0 = Sonntag)
│ │ │ │ │
* * * * *

Häufig verwendete Ausdrücke

Ausdruck Beschreibung
0 9 * * * Täglich um 9:00
0 18 * * 1-5 Werktags um 18:00
*/30 * * * * Alle 30 Minuten
0 0 1 * * Am 1. jedes Monats um 0:00
0 9,18 * * * Täglich um 9:00 und 18:00
0 9 * * 1 Jeden Montag um 9:00

Cron-Aufgaben konfigurieren

{
  "cron": [
    {
      "id": "daily-briefing",
      "schedule": "0 9 * * *",
      "session": "main",
      "message": "Bitte gib mir den heutigen Terminplan und die offenen Aufgaben",
      "enabled": true
    },
    {
      "id": "weekly-summary",
      "schedule": "0 18 * * 5",
      "session": "main",
      "message": "Erstelle die Wochenzusammenfassung",
      "enabled": true
    },
    {
      "id": "health-check",
      "schedule": "*/15 * * * *",
      "session": "main",
      "message": "Prüfe den Systemstatus und melde Auffälligkeiten",
      "enabled": true
    }
  ]
}

Cron-Konfigurationsfelder

Feld Typ Beschreibung
id string Eindeutiger Bezeichner der Aufgabe
schedule string Cron-Ausdruck
session string Zielsitzung
message string Zu sendende Nachricht
enabled boolean Ob aktiviert
timezone string Zeitzone (Standard: System-Zeitzone)

Cron-Aufgaben verwalten

# Alle Aufgaben auflisten
openclaw cron list

# Beispielausgabe:
# 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

# Aufgabe manuell auslösen
openclaw cron run daily-briefing

# Aufgabe aktivieren/deaktivieren
openclaw cron enable daily-briefing
openclaw cron disable daily-briefing

# Aufgaben-Log anzeigen
openclaw cron logs daily-briefing

Webhook-Trigger

Webhook konfigurieren

{
  "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": "Alarm empfangen: {{data.message}}"
    }
  ]
}

Webhook-Endpunkte

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

GitHub Webhook-Beispiel

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

Handler-Skript:

// ~/.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 `Neuer Push erkannt:\n\nBranch: main\nCommits:\n- ${commits}\n\nSoll ich etwas damit machen?`;
  }
  return null;
};

Benutzerdefinierte Webhook-Verarbeitung

{
  "webhooks": [
    {
      "id": "monitoring-alert",
      "path": "/webhook/alert",
      "methods": ["POST"],
      "session": "main",
      "message": "🚨 Alarmbenachrichtigung\n\nStufe: {{data.level}}\nDienst: {{data.service}}\nNachricht: {{data.message}}\nZeitpunkt: {{data.timestamp}}"
    }
  ]
}

Webhook senden:

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-Auslastung über 90%",
    "timestamp": "2026-02-26T10:30:00Z"
  }'

Webhook-Sicherheit

{
  "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-Integration

Gmail Pub/Sub konfigurieren

{
  "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": "Wichtige E-Mail empfangen:\nAbsender: {{sender}}\nBetreff: {{subject}}"
        }
      ]
    }
  }
}

Gmail Pub/Sub einrichten

  1. Google Cloud-Projekt erstellen
  2. Gmail API aktivieren
  3. Pub/Sub-Thema erstellen
  4. Dienstkonto erstellen
  5. Gmail Watch konfigurieren
# Gmail Watch konfigurieren
openclaw gmail watch --email [email protected]

Gmail-Filter

Filterbedingung Beschreibung
from Absender-E-Mail
to Empfänger-E-Mail
subject Betreff-Stichwörter
hasAttachment Hat Anhang
label Gmail-Label
{
  "filters": [
    {
      "from": "[email protected]",
      "session": "work",
      "message": "GitHub-Benachrichtigung erhalten: {{subject}}"
    },
    {
      "from": "[email protected]",
      "hasAttachment": true,
      "session": "main",
      "message": "Stripe-Dokument erhalten, bitte bearbeiten"
    }
  ]
}

Heartbeat – Proaktive Überprüfung

Heartbeat konfigurieren

{
  "heartbeat": {
    "enabled": true,
    "interval": 3600000,
    "session": "main",
    "message": "Heartbeat: Bitte prüfe, ob es Dinge gibt, die meine Aufmerksamkeit erfordern"
  }
}

Heartbeat-Verwendungszwecke

Verwendung Beschreibung
Proaktive Erinnerungen Benutzer regelmäßig erinnern
Statusprüfung System- oder Dienststatus prüfen
Aufgabenvorschläge Kontextbasierte Vorschläge
Kontextpflege Sitzung aktiv halten

Heartbeat-Beispiel

{
  "heartbeat": {
    "enabled": true,
    "interval": 1800000,
    "conditions": [
      {
        "type": "time",
        "start": "09:00",
        "end": "18:00"
      },
      {
        "type": "active",
        "session": "main"
      }
    ],
    "message": "Basierend auf der aktuellen Uhrzeit empfehle ich folgende Prüfungen:\n1. Heutige Aufgaben\n2. E-Mail-Erinnerungen\n3. Terminplan"
  }
}

Praxisbeispiele für Automatisierung

Beispiel 1: Täglicher Morgenbericht

{
  "cron": [
    {
      "id": "morning-briefing",
      "schedule": "0 8 * * 1-5",
      "session": "main",
      "message": "Guten Morgen! Bitte erstelle meinen täglichen Morgenbericht:\n1. Wettervorhersage\n2. Heutige Termine\n3. Offene Aufgaben\n4. Zusammenfassung wichtiger E-Mails"
    }
  ]
}

Beispiel 2: CI/CD-Benachrichtigung

{
  "webhooks": [
    {
      "id": "ci-failure",
      "path": "/webhook/ci",
      "session": "dev",
      "message": "⚠️ CI fehlgeschlagen\n\nProjekt: {{data.repository}}\nBranch: {{data.branch}}\nCommit: {{data.commit}}\nFehler: {{data.error}}\n\nSoll ich die Analyse übernehmen?"
    }
  ]
}

Beispiel 3: Automatische E-Mail-Verarbeitung

{
  "gmail": {
    "pubsub": {
      "filters": [
        {
          "from": "[email protected]",
          "hasAttachment": true,
          "session": "main",
          "message": "Rechnungs-E-Mail empfangen, wird verarbeitet...\nBitte Anhang im Finanzordner speichern"
        }
      ]
    }
  }
}

Beispiel 4: Systemüberwachung

{
  "cron": [
    {
      "id": "system-monitor",
      "schedule": "*/5 * * * *",
      "session": "main",
      "message": "Systemstatus prüfen",
      "skills": ["system-monitor"]
    }
  ]
}

Fehlerbehebung

Cron-Aufgabe wird nicht ausgeführt

# Aufgabenstatus prüfen
openclaw cron list

# Logs prüfen
openclaw logs --filter cron

# Manuell auslösen zum Testen
openclaw cron run task-id

Webhook antwortet nicht

# Webhook-Endpunkt prüfen
curl -X POST http://localhost:18789/webhook/test \
  -H "Content-Type: application/json" \
  -d '{"test": true}'

# Logs anzeigen
openclaw logs --filter webhook

Gmail Pub/Sub funktioniert nicht

# Abo-Status prüfen
openclaw gmail status

# Neu konfigurieren
openclaw gmail setup

# Berechtigungen prüfen
openclaw gmail check-permissions

Zusammenfassung

Automatisierung verwandelt OpenClaw von einem reaktiven in einen proaktiven Assistenten:

  • Cron: Zeitgesteuerte Aufgabenausführung
  • Webhook: Auslösung durch externe Ereignisse
  • Gmail Pub/Sub: E-Mail-Automatisierung
  • Heartbeat: Proaktive Erinnerungen und Vorschläge

Änderungsprotokoll:

  • 2026-02-26: Erstveröffentlichung

Seriennavigation: