Pour OpenClaw v2026.2 | Cet article s’adresse aux utilisateurs souhaitant que leur assistant IA travaille de manière proactive plutôt que réactive.
TL;DR: Tâches planifiées Cron : "cron": [{"id": "daily", "schedule": "0 9 * * *", "message": "..."}]. Déclenchement Webhook : POST /webhook/your-path. Gmail Pub/Sub pour le traitement automatique des e-mails. Heartbeat pour les vérifications proactives. Exemples de configuration : briefing matinal 0 8 * * 1-5, notifications CI via webhook, filtres e-mail via Gmail Pub/Sub.
Vue d’ensemble de l’automatisation
Types d’automatisation
| Type | Mode de déclenchement | Cas d’usage |
|---|---|---|
| Cron | Déclenchement planifié | Rapports quotidiens, vérifications régulières |
| Webhook | Requête HTTP | Intégration de systèmes externes |
| Gmail Pub/Sub | Nouvel e-mail | Automatisation des e-mails |
| Heartbeat | Vérification périodique | Rappels proactifs, suggestions |
Schéma d’architecture
flowchart TB
subgraph Triggers["Sources de déclenchement"]
CRON[Cron planifié]
WH[Webhook HTTP]
GM[Gmail Pub/Sub]
HB[Heartbeat]
end
subgraph Gateway["Gateway"]
SCHED[Planificateur]
ROUTE[Routeur]
AGENT[Agent]
end
subgraph Actions["Actions"]
MSG[Envoyer un message]
EXEC[Exécuter une tâche]
NOTIF[Envoyer une notification]
end
CRON --> SCHED
WH --> ROUTE
GM --> ROUTE
HB --> SCHED
SCHED --> AGENT
ROUTE --> AGENT
AGENT --> MSG
AGENT --> EXEC
AGENT --> NOTIF
Tâches planifiées Cron
Expressions Cron
┌───────────── minute (0 - 59)
│ ┌───────────── heure (0 - 23)
│ │ ┌───────────── jour du mois (1 - 31)
│ │ │ ┌───────────── mois (1 - 12)
│ │ │ │ ┌───────────── jour de la semaine (0 - 6, 0 = dimanche)
│ │ │ │ │
* * * * *
Expressions courantes
| Expression | Description |
|---|---|
0 9 * * * |
Tous les jours à 9h00 |
0 18 * * 1-5 |
Jours ouvrables à 18h00 |
*/30 * * * * |
Toutes les 30 minutes |
0 0 1 * * |
Le 1er de chaque mois à 0h00 |
0 9,18 * * * |
Tous les jours à 9h00 et 18h00 |
0 9 * * 1 |
Tous les lundis à 9h00 |
Configurer les tâches Cron
{
"cron": [
{
"id": "daily-briefing",
"schedule": "0 9 * * *",
"session": "main",
"message": "Donnez-moi le programme du jour et les tâches à faire",
"enabled": true
},
{
"id": "weekly-summary",
"schedule": "0 18 * * 5",
"session": "main",
"message": "Générer le résumé hebdomadaire",
"enabled": true
},
{
"id": "health-check",
"schedule": "*/15 * * * *",
"session": "main",
"message": "Vérifier l'état du système et signaler toute anomalie",
"enabled": true
}
]
}
Options de configuration Cron
| Champ | Type | Description |
|---|---|---|
id |
string | Identifiant unique de la tâche |
schedule |
string | Expression Cron |
session |
string | Session cible |
message |
string | Message envoyé |
enabled |
boolean | Activé ou non |
timezone |
string | Fuseau horaire (par défaut : fuseau système) |
Gérer les tâches Cron
# Lister toutes les tâches
openclaw cron list
# Exemple de sortie :
# 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
# Déclencher manuellement une tâche
openclaw cron run daily-briefing
# Activer/désactiver une tâche
openclaw cron enable daily-briefing
openclaw cron disable daily-briefing
# Voir les logs de la tâche
openclaw cron logs daily-briefing
Déclencheurs Webhook
Configurer les Webhooks
{
"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": "Alerte reçue : {{data.message}}"
}
]
}
Points d’accès Webhook
POST http://your-gateway:18789/webhook/github-push
POST http://your-gateway:18789/webhook/alert
Exemple de Webhook GitHub
{
"webhooks": [
{
"id": "github-push",
"path": "/webhook/github",
"secret": "${GITHUB_WEBHOOK_SECRET}",
"session": "work",
"handler": "github-push"
}
]
}
Script du handler :
// ~/.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 `Nouveau push détecté :\n\nBranche : main\nCommits :\n- ${commits}\n\nVoulez-vous que je fasse quelque chose ?`;
}
return null;
};
Traitement Webhook personnalisé
{
"webhooks": [
{
"id": "monitoring-alert",
"path": "/webhook/alert",
"methods": ["POST"],
"session": "main",
"message": "🚨 Notification d'alerte\n\nNiveau : {{data.level}}\nService : {{data.service}}\nMessage : {{data.message}}\nHeure : {{data.timestamp}}"
}
]
}
Envoyer un Webhook :
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": "Utilisation CPU supérieure à 90%",
"timestamp": "2026-02-26T10:30:00Z"
}'
Sécurité des Webhooks
{
"webhooks": [
{
"id": "secure-webhook",
"path": "/webhook/secure",
"secret": "your-secret-key",
"signatureHeader": "X-Signature",
"signatureAlgorithm": "sha256",
"ipWhitelist": ["192.168.1.0/24"]
}
]
}
Intégration Gmail Pub/Sub
Configurer Gmail Pub/Sub
{
"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": "E-mail important reçu :\nExpéditeur : {{sender}}\nObjet : {{subject}}"
}
]
}
}
}
Mettre en place Gmail Pub/Sub
- Créer un projet Google Cloud
- Activer l’API Gmail
- Créer un sujet Pub/Sub
- Créer un compte de service
- Configurer le watch Gmail
# Configurer le watch Gmail
openclaw gmail watch --email [email protected]
Filtres Gmail
| Condition de filtre | Description |
|---|---|
from |
Adresse de l’expéditeur |
to |
Adresse du destinataire |
subject |
Mots-clés de l’objet |
hasAttachment |
Présence de pièce jointe |
label |
Libellé Gmail |
{
"filters": [
{
"from": "[email protected]",
"session": "work",
"message": "Notification GitHub reçue : {{subject}}"
},
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "Document Stripe reçu, veuillez traiter"
}
]
}
Vérifications proactives Heartbeat
Configurer le Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 3600000,
"session": "main",
"message": "Heartbeat : veuillez vérifier s'il y a des éléments nécessitant mon attention"
}
}
Usages du Heartbeat
| Usage | Description |
|---|---|
| Rappels proactifs | Rappeler régulièrement l’utilisateur |
| Vérification d’état | Vérifier l’état du système ou des services |
| Suggestions de tâches | Fournir des suggestions basées sur le contexte |
| Maintien du contexte | Garder la session active |
Exemple de Heartbeat
{
"heartbeat": {
"enabled": true,
"interval": 1800000,
"conditions": [
{
"type": "time",
"start": "09:00",
"end": "18:00"
},
{
"type": "active",
"session": "main"
}
],
"message": "Selon l'heure actuelle, voici les éléments à vérifier :\n1. Tâches du jour\n2. Rappels e-mail\n3. Planning de la journée"
}
}
Exemples pratiques d’automatisation
Exemple 1 : Briefing matinal
{
"cron": [
{
"id": "morning-briefing",
"schedule": "0 8 * * 1-5",
"session": "main",
"message": "Bonjour ! Voici votre briefing matinal :\n1. Prévisions météo\n2. Programme du jour\n3. Tâches à faire\n4. Résumé des e-mails importants"
}
]
}
Exemple 2 : Notifications CI/CD
{
"webhooks": [
{
"id": "ci-failure",
"path": "/webhook/ci",
"session": "dev",
"message": "⚠️ Échec CI\n\nProjet : {{data.repository}}\nBranche : {{data.branch}}\nCommit : {{data.commit}}\nErreur : {{data.error}}\n\nVoulez-vous que j'analyse le problème ?"
}
]
}
Exemple 3 : Traitement automatique des e-mails
{
"gmail": {
"pubsub": {
"filters": [
{
"from": "[email protected]",
"hasAttachment": true,
"session": "main",
"message": "E-mail de facture reçu, traitement en cours...\nVeuillez enregistrer la pièce jointe dans le dossier comptabilité"
}
]
}
}
}
Exemple 4 : Surveillance système
{
"cron": [
{
"id": "system-monitor",
"schedule": "*/5 * * * *",
"session": "main",
"message": "Vérifier l'état du système",
"skills": ["system-monitor"]
}
]
}
Dépannage
La tâche Cron ne s’exécute pas
# Vérifier l'état de la tâche
openclaw cron list
# Vérifier les logs
openclaw logs --filter cron
# Déclencher manuellement pour tester
openclaw cron run task-id
Le Webhook ne répond pas
# Tester le point d'accès Webhook
curl -X POST http://localhost:18789/webhook/test \
-H "Content-Type: application/json" \
-d '{"test": true}'
# Voir les logs
openclaw logs --filter webhook
Gmail Pub/Sub ne fonctionne pas
# Vérifier l'état de l'abonnement
openclaw gmail status
# Reconfigurer
openclaw gmail setup
# Vérifier les permissions
openclaw gmail check-permissions
Résumé
L’automatisation transforme OpenClaw d’un assistant réactif en un assistant proactif :
- Cron : exécution planifiée de tâches
- Webhook : déclenchement par événements externes
- Gmail Pub/Sub : automatisation des e-mails
- Heartbeat : rappels et suggestions proactifs
Historique des mises à jour :
- 2026-02-26 : Publication initiale
Navigation de la série :
- ← Précédent : Accès mobile
- → Suivant : Pratique : Construire un assistant de gestion des connaissances