Zapnode
Zapnode é uma aplicação baseada em Node.js para integração entre WhatsApp (sem API) com Chatwoot
Install / Use
/learn @gabrielfroes/ZapnodeREADME
ZapNode - Integração WhatsApp + Chatwoot
🎯 Objetivo do Projeto
O ZapNode é uma integração que conecta o WhatsApp Web ao Chatwoot, permitindo centralizar o atendimento ao cliente em uma plataforma unificada. O projeto utiliza Node.js para criar uma ponte entre essas duas plataformas, possibilitando:
- Receber mensagens do WhatsApp e encaminhá-las para o Chatwoot
- Enviar respostas do Chatwoot de volta para o WhatsApp
- Gerenciar contatos e conversas de forma automática
- Manter um histórico de conversas no banco de dados SQLite
⚠️ Aviso Importante
Este é um protótipo em desenvolvimento e NÃO está pronto para produção. Antes de usar em ambiente de produção, são necessários os seguintes aprimoramentos:
- [ ] Implementar tratamento robusto de erros
- [ ] Adicionar logs estruturados
- [ ] Configurar rate limiting para webhooks
- [ ] Implementar autenticação e autorização
- [ ] Adicionar testes unitários e de integração
- [ ] Configurar monitoramento e observabilidade
- [ ] Implementar reconexão automática em caso de falhas
- [ ] Adicionar validação de dados de entrada
- [ ] Configurar backup e recuperação do banco de dados
- [ ] Implementar segurança adicional (HTTPS, tokens seguros)
🛠️ Requisitos
Pré-requisitos
- Node.js (versão 16 ou superior)
- npm ou yarn
- Chrome/Chromium (para o Puppeteer)
- Conta no Chatwoot com API habilitada
📥 Instalação
1. Clone o repositório
git clone <url-do-repositorio>
cd zapnode
2. Instale as dependências
npm install
3. Configure as variáveis de ambiente
Crie um arquivo .env na raiz do projeto:
# Configurações do Chatwoot
CHATWOOT_URL=https://app.chatwoot.com
CHATWOOT_ACCOUNT_ID=id_da_sua_conta
CHATWOOT_API_TOKEN=seu_token_aqui
CHATWOOT_INBOX_ID=id_da_caixa_de_entrada_criada
# Configurações do servidor
PORT=3000
4. Crie a pasta do banco de dados
mkdir db
🚀 Como Usar
Desenvolvimento
npm run dev
Produção
npm start
Primeira execução
- Execute o projeto
- Escaneie o QR Code que aparecerá no terminal com o WhatsApp Web
- Configure o webhook no Chatwoot apontando para:
http://seu-servidor:3000/webhook
🏗️ Estrutura do Projeto
zapnode.codigofonte.tv/
├── app/
│ ├── server.js # Servidor principal
│ ├── whatsapp.js # Integração com WhatsApp Web
│ └── webhook.js # Endpoint para receber webhooks do Chatwoot
├── db/ # Banco de dados SQLite (criado automaticamente)
├── package.json # Dependências e scripts
├── .env # Variáveis de ambiente (criar)
└── README.md # Este arquivo
🔧 Configuração do Chatwoot
- Acesse as configurações da sua conta no Chatwoot
- Vá para "Caixas de Entrada" > "Adicionar Caixa de Entrada"
- Escolha "API"
- Nome do canal:
WhatsApp - URL do webhook:
http://seu-servidor:3000/webhook
📝 Funcionalidades Atuais
- ✅ Conecta ao WhatsApp Web via puppeteer
- ✅ Recebe mensagens do WhatsApp e envia para o Chatwoot
- ✅ Recebe respostas do Chatwoot e envia para o WhatsApp
- ✅ Armazena contatos em banco SQLite
- ✅ Gera QR Code para autenticação
🐛 Problemas Conhecidos
- Autenticação do WhatsApp pode expirar e precisar ser refeita
- Sem tratamento de reconexão automática
- Logs limitados para debugging
- Falta validação de dados de entrada
👨💻 Autor
Gabriel Froes (para o Código Fonte TV)
⚠️ Lembrete: Este é um protótipo experimental. Use apenas para testes e desenvolvimento. Não recomendado para produção sem os devidos aprimoramentos de segurança e estabilidade.
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
