OpenClaw

Canal WhatsApp OpenClaw

Messagerie
Moyen

Connectez OpenClaw à WhatsApp via le protocole Baileys. Cette intégration permet à votre assistant IA d'envoyer et recevoir des messages sur WhatsApp sans avoir besoin d'une API Business — il suffit de scanner un QR code avec votre téléphone et vous êtes prêt. Un numéro de téléphone dédié est recommandé pour un routage propre.

Info rapide
DifficultéMoyen
CatégorieMessagerie
Fonctionnalités prises en charge5 / 6

WhatsApp Fonctionnalités prises en charge

Messages texte

Pris en charge

Médias et fichiers

Pris en charge

Réactions

Pris en charge

Fils de discussion

Non pris en charge

Messages vocaux

Pris en charge

Discussion de groupe

Pris en charge

WhatsApp Prérequis

  • Un numéro de téléphone dédié pour WhatsApp (recommandé, séparé du personnel)
  • Node.js 18+ installé sur votre serveur (Bun n'est pas recommandé)
  • OpenClaw Gateway en fonctionnement et configuré

WhatsApp Configuration rapide

1

Ajouter la configuration du canal WhatsApp

Ajoutez la configuration du canal WhatsApp dans ~/.openclaw/openclaw.json. Définissez la dmPolicy (allowlist, pairing ou open) et la liste allowFrom pour contrôler qui peut envoyer des messages à votre assistant.

2

Exécuter la commande de connexion et scanner le QR code

Exécutez 'openclaw channels login' dans votre terminal. Un QR code apparaîtra. Scannez-le avec WhatsApp sur votre téléphone (Paramètres > Appareils associés > Associer un appareil). Les identifiants sont sauvegardés dans ~/.openclaw/credentials/whatsapp/.

3

Envoyer un message test

Envoyez un message direct à votre numéro WhatsApp depuis un autre téléphone. Si vous utilisez la politique allowlist, assurez-vous que le numéro de l'expéditeur est dans la liste allowFrom. Si vous utilisez la politique pairing par défaut, approuvez l'expéditeur via 'openclaw pairing approve whatsapp <code>'.

WhatsApp Exemple de configuration

config.json
{
  "channels": {
    "whatsapp": {
      "dmPolicy": "allowlist",
      "allowFrom": ["+15551234567"]
    }
  }
}

WhatsApp Documentation Détaillée

Aperçu de l'architecture

OpenClaw se connecte à WhatsApp via la bibliothèque Baileys — une implémentation open-source par ingénierie inverse du protocole multi-appareils de WhatsApp Web. Contrairement à l'API WhatsApp Business officielle (qui nécessite l'approbation de Meta et facture par conversation), Baileys se connecte directement en émulant un appareil associé. L'architecture est simple : votre téléphone reste l'appareil principal, et le Gateway agit comme un appareil compagnon associé. Les messages transitent par les serveurs de WhatsApp comme d'habitude — OpenClaw intercepte simplement les messages entrants, les traite avec votre IA, et renvoie les réponses.
Comme la connexion est basée sur le téléphone, votre téléphone doit rester en ligne. Si votre téléphone est hors ligne pendant plus de ~14 jours, WhatsApp dissociera la session.
Baileys prend en charge le multi-appareils nativement — vous pouvez avoir jusqu'à 4 appareils associés par numéro de téléphone, et le Gateway compte comme l'un d'entre eux.

Configuration du numéro de téléphone

Un numéro de téléphone dédié est fortement recommandé. Bien que vous puissiez utiliser votre numéro personnel, mélanger conversations personnelles et bot crée de la confusion de routage et peut déranger vos contacts. Vous avez besoin d'un vrai numéro de téléphone capable de recevoir des SMS ou appels vocaux pour l'enregistrement initial WhatsApp. Une fois enregistré, le numéro doit simplement rester actif sur un téléphone avec WhatsApp installé.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "accounts": {
        "default": {
          "phone": "+15551234567"
        }
      }
    }
  }
}
Évitez les numéros VoIP (ex : TextNow, Google Voice, services SMS gratuits) — WhatsApp bloque fréquemment les comptes enregistrés via VoIP. Utilisez une vraie carte SIM, une SIM prépayée ou une eSIM dédiée pour une fiabilité optimale.

Connexion et identifiants

Après avoir configuré votre canal, vous devez associer votre téléphone au Gateway. Exécutez la commande de connexion et un QR code apparaîtra dans votre terminal. Scannez-le avec WhatsApp sur votre téléphone (Paramètres → Appareils associés → Associer un appareil). Les identifiants sont automatiquement sauvegardés dans ~/.openclaw/credentials/whatsapp/<accountId>/creds.json et persistent après les redémarrages. Une sauvegarde (creds.json.bak) est automatiquement créée pour la récupération en cas de corruption. Vous n'avez besoin de scanner le QR code qu'une seule fois, sauf si la session expire ou est révoquée manuellement.
terminal
openclaw channels login whatsapp
Si vous fonctionnez sans écran (headless), utilisez le flag --qr-terminal pour afficher le QR code en art ASCII directement dans votre terminal.

Politiques de DM

Les politiques de DM (Messages Directs) contrôlent qui peut interagir avec votre assistant IA. OpenClaw prend en charge quatre politiques : • pairing (par défaut) — Les nouveaux contacts doivent passer par un processus d'association. Ils envoient un message, reçoivent un code d'association, et vous approuvez ou refusez via la CLI. Une fois approuvés, ils peuvent discuter librement. • allowlist — Seuls les numéros de téléphone explicitement listés dans allowFrom peuvent envoyer des messages au bot. Tous les autres sont silencieusement ignorés. • open — Toute personne qui envoie un message au numéro reçoit une réponse. À utiliser avec prudence en production. • disabled — Le traitement des DM est complètement désactivé. Le bot ne répondra à aucun message direct.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "dmPolicy": "pairing",
      "allowFrom": ["+15551234567", "+15559876543"]
    }
  }
}

Gestion des discussions de groupe

OpenClaw peut participer aux discussions de groupe WhatsApp. Par défaut, le support des groupes est désactivé pour éviter les réponses IA indésirables dans les conversations partagées. Une fois activé, le bot ne répond que lorsqu'il est mentionné par son nom ou déclenché par un mot-clé configuré. Vous pouvez contrôler quels groupes sont actifs et comment le bot est activé.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "groupPolicy": "allowlist",
      "groupActivation": "mention",
      "groupAllowList": ["group-jid-1", "group-jid-2"]
    }
  }
}
Les JID de groupe se trouvent dans les logs du Gateway lorsqu'un message de groupe est reçu. Cherchez le champ 'from' dans le payload du message.

Accusés de lecture

Vous pouvez configurer si OpenClaw envoie des accusés de lecture (coches bleues) lors du traitement d'un message. Par défaut, les accusés de lecture sont envoyés pour maintenir une conversation naturelle. Désactiver les accusés de lecture peut être utile si vous voulez que le bot paraisse moins « actif » ou si vous traitez les messages de manière asynchrone.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "sendReadReceipts": true
    }
  }
}

Réactions de confirmation

OpenClaw peut réagir aux messages entrants avec un emoji pour confirmer la réception avant que la réponse IA ne soit prête. C'est utile car les réponses IA peuvent prendre plusieurs secondes, et la réaction informe l'expéditeur que son message a été reçu. Vous pouvez configurer différentes réactions pour les messages directs et les discussions de groupe, ou désactiver entièrement cette fonctionnalité.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "ackReaction": {
        "emoji": "👀",
        "direct": true,
        "group": true
      }
    }
  }
}

Messages sortants et médias

OpenClaw prend en charge l'envoi de texte, images, documents, audio et vidéo via WhatsApp. Les fichiers médias sont automatiquement gérés — le Gateway les télécharge sur les serveurs de WhatsApp et envoie le type de message approprié. Pour les longues réponses IA, le texte est automatiquement découpé pour respecter les limites de taille des messages WhatsApp. Vous pouvez configurer la taille des fragments et le comportement.
La limite par défaut pour les médias entrants est de 50 Mo (mediaMaxMb). La limite pour les médias sortants est de 5 Mo (agents.defaults.mediaMaxMb), avec optimisation JPEG automatique et redimensionnement pour les images trop grandes.

Limites de débit et d'envoi

WhatsApp impose des limites de débit sur les appareils associés. Bien qu'il n'y ait pas de limites officiellement publiées pour les comptes personnels, envoyer trop de messages trop rapidement peut déclencher des blocages temporaires ou des restrictions de compte. OpenClaw inclut une limitation de débit intégrée pour protéger votre compte. Les paramètres par défaut sont conservateurs et adaptés à la plupart des cas d'utilisation.
openclaw.json
{
  "channels": {
    "whatsapp": {
      "textChunkLimit": 5,
      "mediaMaxMb": 50
    }
  }
}

Pourquoi pas Twilio / WhatsApp Business API ?

Vous vous demandez peut-être pourquoi OpenClaw utilise Baileys au lieu de l'API WhatsApp Business officielle (via Twilio, MessageBird, etc.). Voici les raisons : • Coût — L'API Business facture par conversation (environ 0,005 à 0,08 $ par message selon la région). Pour un usage personnel ou en petite équipe, cela s'accumule rapidement. Baileys est gratuit. • Approbation — L'API Business nécessite la vérification Meta, une entreprise enregistrée et l'approbation des modèles de messages. Baileys fonctionne avec n'importe quel compte WhatsApp personnel. • Flexibilité — L'API Business a des exigences strictes de modèles pour les messages sortants et une fenêtre de conversation de 24 heures. Baileys n'a pas de telles restrictions. • Auto-hébergé — Avec Baileys, tout fonctionne sur votre serveur. Aucun fournisseur d'API tiers ne voit vos messages. Le compromis est la fiabilité : l'API Business est officiellement supportée, tandis que Baileys repose sur l'ingénierie inverse et pourrait cesser de fonctionner si WhatsApp modifie son protocole. Pour la plupart des cas d'utilisation auto-hébergés, ce compromis en vaut la peine.

WhatsApp Référence de Configuration

dmPolicy
Type: stringDefault: "pairing"

Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled

selfChatMode
Type: stringDefault: "disabled"

Comment traiter les messages que vous vous envoyez. Options : disabled, ai, note

allowFrom
Type: string[]Default: []

Numéros de téléphone autorisés à envoyer des messages au bot (quand dmPolicy est allowlist)

sendReadReceipts
Type: booleanDefault: true

Envoyer ou non les accusés de lecture (coches bleues) lors du traitement des messages

ackReaction.emoji
Type: stringDefault: "👀"

Emoji utilisé pour confirmer la réception des messages

ackReaction.direct
Type: booleanDefault: true

Envoyer la réaction de confirmation dans les messages directs

ackReaction.group
Type: booleanDefault: true

Envoyer la réaction de confirmation dans les messages de groupe

textChunkLimit
Type: numberDefault: 5

Nombre maximum de fragments de texte par réponse IA

mediaMaxMb
Type: numberDefault: 50

Taille maximale des fichiers médias entrants en mégaoctets. La limite sortante est contrôlée par agents.defaults.mediaMaxMb (5 Mo par défaut)

groupPolicy
Type: stringDefault: "disabled"

Politique de discussion de groupe. Options : disabled, allowlist, open

groupActivation
Type: stringDefault: "mention"

Comment le bot est déclenché dans les groupes. Options : mention, always

historyLimit
Type: numberDefault: 50

Nombre de messages récents à inclure comme contexte IA

chunkMode
Type: stringDefault: "split"

Comment traiter les longues réponses. Options : split, newline, truncate

messagePrefix
Type: stringDefault: ""

Préfixe optionnel ajouté à tous les messages sortants

accounts.<id>.*
Type: objectDefault: {}

Paramètres par compte (numéro de téléphone, chemin des identifiants, remplacements)

WhatsApp Questions Fréquentes

WhatsApp Dépannage

WhatsApp affiche « Non associé » ou le QR code ne se scanne pas

Les identifiants de session ont peut-être expiré, ou l'application WhatsApp du téléphone a été mise à jour et a invalidé la session associée.

Supprimez le dossier d'identifiants sous ~/.openclaw/credentials/whatsapp/ et relancez 'openclaw channels login whatsapp' pour vous réassocier. Assurez-vous que votre téléphone a une connexion internet stable pendant le scan du QR code.
Le bot se connecte mais se déconnecte à répétition

Cela arrive généralement lorsque le téléphone est hors ligne pendant de longues périodes, ou lorsqu'un autre appareil associé entre en conflit avec la session du Gateway.

Assurez-vous que votre téléphone reste connecté à internet. Vérifiez que vous n'avez pas dépassé la limite de 4 appareils associés. Supprimez les appareils associés inutilisés depuis Paramètres WhatsApp → Appareils associés, puis reconnectez-vous.
Les messages ne s'envoient pas (délai d'attente ou échec de livraison)

Limitation de débit, problèmes réseau, ou le destinataire a bloqué votre numéro.

Consultez les logs du Gateway pour les codes d'erreur spécifiques. Si vous voyez des erreurs de limite de débit, réduisez votre fréquence d'envoi. Pour les problèmes réseau, vérifiez que votre serveur a une connexion internet stable. Essayez d'envoyer un message manuellement depuis votre téléphone pour confirmer que le numéro n'est pas restreint.