Canal WhatsApp OpenClaw
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.
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
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.
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/.
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
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567"]
}
}
}WhatsApp Documentation Détaillée
Aperçu de l'architecture
Configuration du numéro de téléphone
{
"channels": {
"whatsapp": {
"accounts": {
"default": {
"phone": "+15551234567"
}
}
}
}
}Connexion et identifiants
openclaw channels login whatsappPolitiques de DM
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["+15551234567", "+15559876543"]
}
}
}Gestion des discussions de groupe
{
"channels": {
"whatsapp": {
"groupPolicy": "allowlist",
"groupActivation": "mention",
"groupAllowList": ["group-jid-1", "group-jid-2"]
}
}
}Accusés de lecture
{
"channels": {
"whatsapp": {
"sendReadReceipts": true
}
}
}Réactions de confirmation
{
"channels": {
"whatsapp": {
"ackReaction": {
"emoji": "👀",
"direct": true,
"group": true
}
}
}
}Messages sortants et médias
Limites de débit et d'envoi
{
"channels": {
"whatsapp": {
"textChunkLimit": 5,
"mediaMaxMb": 50
}
}
}Pourquoi pas Twilio / WhatsApp Business API ?
WhatsApp Référence de Configuration
| Key | Type | Default | Description |
|---|---|---|---|
| dmPolicy | string | "pairing" | Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled |
| selfChatMode | string | "disabled" | Comment traiter les messages que vous vous envoyez. Options : disabled, ai, note |
| allowFrom | string[] | [] | Numéros de téléphone autorisés à envoyer des messages au bot (quand dmPolicy est allowlist) |
| sendReadReceipts | boolean | true | Envoyer ou non les accusés de lecture (coches bleues) lors du traitement des messages |
| ackReaction.emoji | string | "👀" | Emoji utilisé pour confirmer la réception des messages |
| ackReaction.direct | boolean | true | Envoyer la réaction de confirmation dans les messages directs |
| ackReaction.group | boolean | true | Envoyer la réaction de confirmation dans les messages de groupe |
| textChunkLimit | number | 5 | Nombre maximum de fragments de texte par réponse IA |
| mediaMaxMb | number | 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 | string | "disabled" | Politique de discussion de groupe. Options : disabled, allowlist, open |
| groupActivation | string | "mention" | Comment le bot est déclenché dans les groupes. Options : mention, always |
| historyLimit | number | 50 | Nombre de messages récents à inclure comme contexte IA |
| chunkMode | string | "split" | Comment traiter les longues réponses. Options : split, newline, truncate |
| messagePrefix | string | "" | Préfixe optionnel ajouté à tous les messages sortants |
| accounts.<id>.* | object | {} | Paramètres par compte (numéro de téléphone, chemin des identifiants, remplacements) |
Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled
Comment traiter les messages que vous vous envoyez. Options : disabled, ai, note
Numéros de téléphone autorisés à envoyer des messages au bot (quand dmPolicy est allowlist)
Envoyer ou non les accusés de lecture (coches bleues) lors du traitement des messages
Emoji utilisé pour confirmer la réception des messages
Envoyer la réaction de confirmation dans les messages directs
Envoyer la réaction de confirmation dans les messages de groupe
Nombre maximum de fragments de texte par réponse IA
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)
Politique de discussion de groupe. Options : disabled, allowlist, open
Comment le bot est déclenché dans les groupes. Options : mention, always
Nombre de messages récents à inclure comme contexte IA
Comment traiter les longues réponses. Options : split, newline, truncate
Préfixe optionnel ajouté à tous les messages sortants
Paramètres par compte (numéro de téléphone, chemin des identifiants, remplacements)
WhatsApp Questions Fréquentes
WhatsApp Dépannage
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.
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.
Limitation de débit, problèmes réseau, ou le destinataire a bloqué votre numéro.