Guide de déploiement

Chatwoot Cloud : migrer vers le self-hosted après le paywall API

Déployer sur un VPS Cloud →

Chatwoot Cloud : migrer vers le self-hosted après le paywall API

Comparatif9 min de lecture17 étapes

En juillet 2026, Chatwoot a retiré l'accès à l'API REST et aux webhooks du plan Cloud gratuit. Si vos intégrations n8n, Activepieces ou votre CRM appellent l'API Chatwoot, vous êtes désormais bloqué — ou vous payez. Ce guide compare le plan gratuit Cloud avec le self-hosted, documente la procédure d'export et vous conduit vers une instance que vous contrôlez entièrement, avec l'API complète et sans restriction.

Sommaire· Ce qui a changé chez Chatwoot Cloud en juillet 20261/13
  1. 01Ce qui a changé chez Chatwoot Cloud en juillet 2026
  2. 02Ce qui est bloqué sur le plan gratuit Chatwoot Cloud
  3. 03Plan Cloud gratuit vs self-hosted : tableau comparatif
  4. 04Exporter vos données depuis Chatwoot Cloud
  5. 05Procédure d'export depuis Chatwoot Cloud
  6. 06Déployer Chatwoot self-hosted sur un VPS ServOrbit
  7. 07Déploiement depuis la Marketplace ServOrbit
  8. 08Rétablir une intégration n8n ou Activepieces
  9. 09Exemple — workflow n8n avec l'API Chatwoot self-hosted
  10. 10Monitorer votre instance après la migration
  11. 11Dépannage — erreurs courantes après migration
  12. 12Erreurs fréquentes et solutions
  13. 13Récupérer le contrôle de votre support client

Ce qui a changé chez Chatwoot Cloud en juillet 2026

En juillet 2026, l'équipe Chatwoot a publié une mise à jour de la politique du plan Cloud gratuit. Selon les publications sur le blog éditeur, les fonctionnalités suivantes ont été déplacées derrière un plan payant :

- Accès à l'API REST : toutes les routes /api/v1/profile, /api/v1/accounts/{id}/conversations, contacts, labels, et l'intégralité des endpoints de gestion sont désormais refusés avec un HTTP 401 sur les comptes en plan gratuit.
- Webhooks sortants : les événements conversation_created, message_created, conversation_status_changed et les autres ne sont plus déclenchés vers les URL configurées.
- Intégrations tiers : tout workflow n8n, Activepieces, Zapier ou Make qui s'appuie sur un token d'API Chatwoot Cloud cesse de fonctionner sans avertissement préalable visible dans le tableau de bord.

La portée exacte est documentée dans l'analyse publiée sur dev.to par Pavel Hostim. L'annonce a pris effet immédiatement pour les nouveaux comptes et progressivement pour les comptes existants.

Ce qui est bloqué sur le plan gratuit Chatwoot Cloud

  • Appels API REST : toutes les routes /api/v1/… renvoient HTTP 401 sur les tokens émis par un compte en plan Free
  • Webhooks sortants : les événements de conversation et de message ne sont plus transmis aux URL configurées
  • Intégrations n8n : les nodes Chatwoot et les appels HTTP directs vers l'API Cloud échouent silencieusement ou retournent une erreur d'authentification
  • Intégrations Activepieces : tout trigger ou action qui consomme un token API Chatwoot Cloud est inopérant
  • Synchronisation CRM : les connecteurs qui remontent les conversations Chatwoot vers un CRM via l'API sont coupés
  • Rapports automatisés : les scripts qui agrègent les statistiques de support via l'API ne peuvent plus s'authentifier

Plan Cloud gratuit vs self-hosted : tableau comparatif

Faites défiler le tableau

CritèreCloud gratuitSelf-hosted
Accès API RESTBloqué depuis juillet 2026Complet, sans restriction
Webhooks sortantsDésactivésConfigurables librement
Nombre d'agentsLimité (2 sur le plan Free)Sans limite (selon vos ressources)
Coût mensuelGratuit mais API absenteCoût du VPS uniquement — aucun surcoût logiciel
Données et RGPDDonnées hébergées chez Chatwoot Inc.Données sous votre contrôle, sur vos serveurs
Mise à jourGérée par ChatwootSous votre responsabilité (Docker pull)
Intégrations n8n / ActivepiecesImpossibles sur le plan gratuitFonctionnelles dès le déploiement

Exporter vos données depuis Chatwoot Cloud

Avant de démonter votre compte Cloud, exportez toutes les données utiles. Chatwoot propose deux chemins d'export depuis le tableau de bord.

Procédure d'export depuis Chatwoot Cloud

  1. Exporter les contacts

    Dans le tableau de bord Chatwoot Cloud, allez dans Contacts → icône téléchargement (en haut à droite). Chatwoot génère un fichier CSV avec le prénom, le nom, l'e-mail, le téléphone et les labels de chaque contact. Conservez ce fichier — il servira à l'import sur votre instance self-hosted.

  2. Exporter les conversations via l'API (si votre plan le permet encore)

    Si vous avez encore accès à l'API ou si vous êtes sur un plan payant en cours de résiliation, exportez les conversations avec :

    curl -H "api_access_token: <VOTRE_TOKEN>" \
      "https://app.chatwoot.com/api/v1/accounts/<ACCOUNT_ID>/conversations" \
      -o conversations-export.json

    Remplacez <VOTRE_TOKEN> et <ACCOUNT_ID> par vos valeurs. Répétez avec ?page=2, ?page=3… jusqu'à obtenir un tableau vide.

  3. Télécharger les pièces jointes

    Les fichiers attachés aux conversations sont servis depuis le CDN Chatwoot Cloud. Notez les URL de type https://app.chatwoot.com/rails/active_storage/… présentes dans le JSON exporté. Un script wget ou curl peut les télécharger en lot si votre quota d'accès le permet encore.

  4. Exporter les profils d'agents

    Dans Paramètres → Agents, notez les adresses e-mail de chaque agent. Vous en aurez besoin pour recréer les comptes sur votre instance self-hosted. L'export CSV est disponible depuis la même page.

  5. Exporter les boîtes de réception (Inbox) et leurs paramètres

    Dans Paramètres → Boîtes de réception, documentez chaque configuration : type de canal (e-mail, widget web, WhatsApp Business, etc.), paramètres SMTP, clés d'API de canal. Ces données ne sont pas exportables automatiquement — une capture ou un copier-coller suffit.

  6. Exporter les labels et les réponses prédéfinies

    Dans Paramètres → Labels et Réponses prédéfinies, exportez ou copiez les entrées. Les réponses prédéfinies ne sont pas exportables nativement en CSV — recopiez-les à la main ou via l'API si vous avez encore accès : GET /api/v1/accounts/<ID>/canned_responses.

  7. Archiver votre compte Cloud

    Une fois les données récupérées, vous pouvez désactiver votre compte Chatwoot Cloud depuis Paramètres du compte → Danger zone → Supprimer le compte. Cette action est irréversible.

Déployer Chatwoot self-hosted sur un VPS ServOrbit

Chatwoot se déploie via Docker Compose. L'objection habituelle — « héberger moi-même, c'est trop complexe à maintenir » — est levée par la Marketplace ServOrbit : le template Chatwoot configure Docker, nginx et TLS en une opération. Vous gardez l'accès root et l'API complète.

Déploiement depuis la Marketplace ServOrbit

  1. Choisir le bon VPS

    Chatwoot nécessite au minimum 2 vCPU et 4 Go de RAM pour une utilisation courante (quelques agents, quelques centaines de conversations actives). Pour une équipe de 10 agents ou plus, prévoyez 4 vCPU / 8 Go. La base de données PostgreSQL est le composant le plus gourmand en mémoire.

    Dans votre espace client ServOrbit, sélectionnez un VPS avec ces caractéristiques et choisissez Ubuntu 22.04 ou Debian 12 comme image de base.

  2. Activer le template Chatwoot depuis la Marketplace

    Dans l'espace client ServOrbit, allez dans Marketplace → Collaboration → Chatwoot (ou utilisez le lien direct vers /marketplace/collaboration/chatwoot). Sélectionnez votre VPS cible et lancez le déploiement. Le template installe Docker, Docker Compose, nginx et Certbot, puis configure Chatwoot via docker-compose.yml.

  3. Configurer les variables d'environnement

    Après le déploiement, SSH sur votre VPS et éditez le fichier .env généré dans /opt/chatwoot/ :

    SECRET_KEY_BASE=<générez avec openssl rand -hex 64>
    FRONTEND_URL=https://chat.votre-domaine.com
    DEFAULT_LOCALE=fr
    [email protected]
    SMTP_ADDRESS=<votre-smtp>
    SMTP_USERNAME=<login>
    SMTP_PASSWORD=<mot-de-passe>

    Redémarrez ensuite les conteneurs : docker compose down && docker compose up -d.

  4. Pointer votre domaine et activer TLS

    Dans Cloudflare (ou votre gestionnaire DNS), ajoutez un enregistrement A pour chat.votre-domaine.com pointant vers l'IP de votre VPS. Le template nginx inclut une configuration Certbot : exécutez certbot --nginx -d chat.votre-domaine.com pour obtenir et renouveler automatiquement votre certificat Let's Encrypt.

  5. Créer le premier compte administrateur

    Accédez à https://chat.votre-domaine.com et suivez l'assistant de configuration initiale. Créez votre compte administrateur, puis importez les agents via Paramètres → Agents → Inviter des agents. Utilisez les adresses e-mail exportées à l'étape précédente.

  6. Importer les contacts

    Dans Contacts → Importer, chargez le fichier CSV exporté depuis Chatwoot Cloud. Chatwoot reconnaît les colonnes name, email, phone_number et identifier. Les doublons sont détectés à l'import.

Rétablir une intégration n8n ou Activepieces

Une fois votre instance self-hosted opérationnelle, les tokens d'API sont disponibles sans restriction. Voici comment reconfigurer un workflow n8n qui interroge Chatwoot.

Exemple — workflow n8n avec l'API Chatwoot self-hosted

  1. Générer un token d'API sur votre instance

    Dans Chatwoot self-hosted, allez dans Paramètres du profil → Accès à l'API. Copiez le token généré. Ce token n'expire pas et donne accès à l'intégralité des routes REST de votre instance.

  2. Configurer les credentials Chatwoot dans n8n

    Dans n8n, ajoutez des credentials de type Chatwoot API. Renseignez :
    - URL de base : https://chat.votre-domaine.com
    - Token d'accès : le token copié à l'étape précédente

    Validez la connexion — n8n doit répondre avec un HTTP 200 et le profil de votre compte.

  3. Reconfigurer les triggers webhook

    Dans Chatwoot self-hosted, allez dans Paramètres → Intégrations → Webhooks et ajoutez l'URL du webhook n8n (de la forme https://n8n.votre-domaine.com/webhook/<uuid>). Cochez les événements à écouter : conversation_created, message_created, conversation_status_changed.

    Déclenchez une conversation de test et vérifiez dans n8n que l'exécution est bien reçue.

  4. Adapter les workflows Activepieces

    Activepieces propose un connecteur Chatwoot natif. Dans le tableau de bord Activepieces, éditez chaque flow qui utilisait Chatwoot Cloud et mettez à jour la connexion : remplacez app.chatwoot.com par chat.votre-domaine.com et régénérez les credentials avec le nouveau token. Les triggers webhook suivent la même procédure que pour n8n.

Monitorer votre instance après la migration

Après migration, configurez une sonde HTTP simple sur votre instance : Chatwoot expose un endpoint de santé à https://chat.votre-domaine.com/auth/sign_in (HTTP 200 attendu). Un outil comme Uptime Kuma ou Gatus, déployable lui aussi depuis la Marketplace ServOrbit, peut surveiller cette URL et vous alerter en cas de panne.

Surveillez aussi l'espace disque : les pièces jointes et les avatars sont stockés dans docker volume chatwoot_storage. Pour une équipe active, prévoyez de vider ou d'archiver régulièrement les anciennes conversations.

Dépannage — erreurs courantes après migration

Voici les cinq erreurs les plus fréquentes lors de la migration de Chatwoot Cloud vers le self-hosted, et leur résolution.

Erreurs fréquentes et solutions

  • HTTP 401 sur l'API : le token a été généré sur l'ancienne instance Cloud. Régénérez un token depuis Profil → Accès à l'API sur votre instance self-hosted et mettez à jour tous vos credentials n8n / Activepieces.
  • HTTP 422 Unprocessable Entity sur la création d'une conversation : l'inbox (boîte de réception) cible n'existe pas encore sur l'instance self-hosted. Recréez les boîtes de réception dans Paramètres → Boîtes de réception avant d'importer des conversations.
  • Webhook non reçu : vérifiez que l'URL webhook n8n ou Activepieces est joignable depuis votre VPS (curl -I <webhook-url>). Si votre n8n est derrière un reverse proxy, assurez-vous que le port 443 est ouvert et que le certificat TLS est valide.
  • Erreur SMTP au démarrage : si Chatwoot ne peut pas envoyer d'e-mail de confirmation, vérifiez les variables SMTP_ADDRESS, SMTP_PORT (587 pour STARTTLS, 465 pour SSL) et SMTP_AUTHENTICATION dans votre .env. Redémarrez les conteneurs après toute modification.
  • Interface en anglais malgré DEFAULT_LOCALE=fr : la variable d'environnement s'applique à la locale par défaut des nouveaux comptes. Chaque agent peut changer sa propre langue dans Profil → Langue. Pour forcer le français sur tous les comptes existants, mettez à jour la colonne locale directement dans PostgreSQL via docker compose exec postgres psql -U chatwoot -c "UPDATE users SET locale='fr';" — sauvegardez la base avant toute modification directe.

Récupérer le contrôle de votre support client

La suppression de l'API et des webhooks du plan gratuit Chatwoot Cloud en juillet 2026 a rompu des dizaines d'intégrations n8n, Activepieces et CRM sans préavis visible dans les tableaux de bord. Le self-hosted n'est pas une alternative dégradée : c'est la version sans restriction, avec accès root, API complète, webhooks libres et données sous votre contrôle.

L'objection principale — la maintenance — est traitée par le template Chatwoot de la Marketplace ServOrbit : Docker, nginx et TLS sont configurés dès le déploiement. Les mises à jour se résument à un docker compose pull && docker compose up -d. Sur un VPS dimensionné à 2 vCPU / 4 Go, une instance Chatwoot self-hosted supporte plusieurs dizaines d'agents simultanés avec une latence indiscernable du Cloud.

Si vos intégrations n8n ou Activepieces appellent l'API Chatwoot, la migration est la seule issue pérenne : le plan Cloud gratuit ne retrouvera pas l'accès API dans sa forme actuelle.

Déployez Chatwoot avec l'API complète

Activer cette solution — déployez Chatwoot avec API complète sur un VPS ServOrbit, nginx et TLS inclus.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet