chatwoot-aivence

N8N community node for Chatwoot with Meta Platform APIs support - Manage conversations, messages, typing indicators, read receipts, and send media across WhatsApp, Messenger, and Instagram

Package Information

Released: 11/10/2025
Downloads: 20 weeklyย /ย 87 monthly
Latest Version: 2.0.17
Author: Federico Aivence

Documentation

@fedcairo/n8n-nodes-chatwoot

Community node for N8N that provides deep integration with Chatwoot customer support platform.

Features

๐ŸŽฏ Two Powerful Nodes

1. Chatwoot - Action Node

Control conversations and messages across WhatsApp, Instagram, and Facebook Messenger:

Message Operations:

  • โœ‰๏ธ Send text messages
  • ๐Ÿ“Ž Send media (images, videos, audio, documents)
  • ๐Ÿ”’ Send private notes (internal team communication)

Conversation Operations:

  • โœ… Mark as read
  • โŒจ๏ธ Toggle typing indicator (realistic UX)
  • ๐Ÿ“Š Change conversation status (open/resolved/pending/snoozed)

2. Chatwoot Trigger - Webhook Node

Clean, parsed webhooks that eliminate Chatwoot's verbose payload:

Features:

  • ๐Ÿงน Clean Data: Only essential information (90% smaller payload)
  • ๐Ÿ” Smart Filtering: By event type and channel
  • ๐ŸŽฏ Channel Detection: Auto-identifies WhatsApp, Instagram, Facebook, Email, Website
  • ๐Ÿ“ฆ Simplified Attachments: Direct URLs and types

Clean Output Example:

{
  "event": "message_created",
  "accountId": 1,
  "conversationId": 123,
  "messageId": 456,
  "channel": {
    "type": "Channel::Whatsapp",
    "name": "WhatsApp Support",
    "inboxId": 789
  },
  "message": {
    "content": "Hello!",
    "contentType": "text",
    "messageType": "incoming",
    "attachments": [
      {
        "type": "image",
        "url": "https://...",
        "extension": "jpg"
      }
    ]
  },
  "contact": {
    "id": 999,
    "name": "John Doe",
    "phone": "+1234567890"
  }
}

Installation

In N8N Cloud or Self-Hosted:

# From N8N UI: Settings โ†’ Community Nodes โ†’ Install
@fedcairo/n8n-nodes-chatwoot

In Docker N8N:

docker exec -it <n8n-container> sh
cd ~/.n8n/nodes
npm install @fedcairo/n8n-nodes-chatwoot
exit
docker restart <n8n-container>

Manual Installation:

cd ~/.n8n/nodes
npm install @fedcairo/n8n-nodes-chatwoot
# Restart N8N

Configuration

1. Create Chatwoot API Credentials

  1. Go to User Settings โ†’ Profile Settings
  2. Generate Access Token
  3. Copy the token

2. Configure in N8N

  1. Add Chatwoot API credential
  2. Enter your Chatwoot URL (e.g., https://app.chatwoot.com or self-hosted)
  3. Paste your API Access Token
  4. Test connection

3. Configure Webhook (for Trigger Node)

  1. In Chatwoot: Settings โ†’ Integrations โ†’ Webhooks
  2. Add webhook URL from N8N Chatwoot Trigger node
  3. Select events: message_created, conversation_status_changed, etc.

Usage Examples

Example 1: AI Customer Support Bot

Chatwoot Trigger (incoming message)
   โ†“
AI Agent (Groq/OpenAI) - Generate response
   โ†“
Chatwoot (Toggle Typing: ON)
   โ†“
Wait (realistic delay based on message length)
   โ†“
Chatwoot (Send Text) - Send AI response
   โ†“
Chatwoot (Mark as Read)
   โ†“
Chatwoot (Toggle Typing: OFF)

Example 2: Send Property Images (Real Estate)

Webhook Trigger (property inquiry)
   โ†“
Search Properties API
   โ†“
Chatwoot (Toggle Typing: ON)
   โ†“
Chatwoot (Send Media) - Property image
   โ†“
Chatwoot (Send Text) - Property details
   โ†“
Chatwoot (Mark as Read)

Example 3: Auto-Close Resolved Conversations

Chatwoot Trigger (filter: conversation_status_changed)
   โ†“
IF (status = "resolved")
   โ†“
Wait 24 hours
   โ†“
Chatwoot (Change Status: snoozed)

API Reference

Chatwoot Node

Required Fields:

  • Account ID: Your Chatwoot account ID (found in URL)
  • Conversation ID: The conversation ID to act upon

Operations:

Resource Operation Description
Message Send Text Send text message to conversation
Message Send Media Send image/video/audio/document
Conversation Mark as Read Mark conversation as read
Conversation Toggle Typing Show/hide typing indicator
Conversation Change Status Update conversation status

Chatwoot Trigger Node

Configuration:

Field Type Description
Event Type Dropdown Filter by specific events or "All Events"
Filter Channels Multi-select Only trigger for WhatsApp, Facebook, Instagram, etc.
Include Message Data Boolean Include detailed message content
Include Contact Data Boolean Include contact information

Supported Events:

  • message_created
  • message_updated
  • conversation_created
  • conversation_status_changed

Supported Channels:

  • WhatsApp (Channel::Whatsapp)
  • Facebook Messenger (Channel::FacebookPage)
  • Instagram Direct Messages (auto-detected)
  • Email (Channel::Email)
  • Website (Channel::WebWidget)
  • API (Channel::Api)

Benefits Over HTTP Request Nodes

โœ… Simpler: No need to construct URLs or headers manually
โœ… Validated: Built-in parameter validation
โœ… Typed: Autocomplete for all operations
โœ… Clean Data: Trigger node eliminates 90% of unnecessary payload
โœ… Error Handling: Better error messages and debugging
โœ… Future-Proof: Auto-updates when Chatwoot API changes

Compatibility

  • N8N Version: 1.0.0+
  • Chatwoot Version: v4.1.0+ (tested up to v4.7.0)
  • Channels: WhatsApp, Instagram, Facebook Messenger, Email, Website, API

Support

License

MIT License - see LICENSE file for details

Credits

Created by Federico Aivence for the N8N and Chatwoot communities.

Special thanks to:

  • N8N team for the amazing automation platform
  • Chatwoot team for the open-source customer support platform

Made with โค๏ธ for the automation community

Discussion