Uma aplicação Kanban integrada ao Chatwoot como Dashboard App, permitindo gerenciar tarefas baseadas em conversas e contatos do Chatwoot de forma visual e intuitiva.
- Integração Nativa com Chatwoot: Recebe dados em tempo real das conversas e contatos
- Interface Kanban Intuitiva: Visualização em colunas (Pendente, Em Andamento, Concluído)
- Geração Automática de Tarefas: Cria tarefas baseadas no status das conversas
- Segurança Robusta: Validação de origem, sanitização de dados e rate limiting
- Responsivo: Funciona em desktop e mobile
- Múltiplas Visualizações: Kanban Board, Lista de Tarefas e Informações do Cliente
- Node.js 18+
- pnpm (recomendado) ou npm
- Instância do Chatwoot (Cloud ou Self-hosted)
- Acesso de administrador ao Chatwoot para configurar Dashboard Apps
git clone <url-do-repositorio>
cd chatwoot-kanban-dashboardpnpm install
# ou
npm installcp .env.example .envEdite o arquivo .env com suas configurações:
VITE_CHATWOOT_BASE_URL=https://app.chatwoot.com
VITE_APP_NAME=Kanban Dashboard
VITE_ALLOWED_ORIGINS=https://app.chatwoot.com,https://your-chatwoot-instance.compnpm run dev --host
# ou
npm run dev -- --hostA aplicação estará disponível em http://localhost:5173
- Vá para Settings → Integrations → Dashboard apps
- Clique em Configure no Dashboard Apps
- Nome do App:
Kanban Dashboard - URL:
https://seu-dominio.com(URL onde a aplicação está hospedada)
- Abra uma conversa no Chatwoot
- Você verá uma nova aba "Kanban Dashboard" na interface da conversa
- Clique na aba para carregar o dashboard
pnpm run build
pnpm run deploy# Build da aplicação
pnpm run build
# O conteúdo estará na pasta dist/
# Faça upload para seu servidor web (Nginx, Apache, etc.)server {
listen 80;
server_name seu-dominio.com;
location / {
root /path/to/chatwoot-kanban-dashboard/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# Headers de segurança
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
}<VirtualHost *:80>
ServerName seu-dominio.com
DocumentRoot /path/to/chatwoot-kanban-dashboard/dist
<Directory /path/to/chatwoot-kanban-dashboard/dist>
AllowOverride All
Require all granted
</Directory>
# Headers de segurança
Header always set X-Frame-Options SAMEORIGIN
Header always set X-Content-Type-Options nosniff
Header always set X-XSS-Protection "1; mode=block"
</VirtualHost>- Validação de Origem: Apenas origens autorizadas podem enviar dados
- Sanitização de Dados: Todos os dados recebidos são sanitizados para prevenir XSS
- Rate Limiting: Limita o número de requisições por minuto
- Validação de Estrutura: Verifica se os dados recebidos têm a estrutura esperada
- Logging Seguro: Logs não expõem informações sensíveis
Edite o arquivo src/utils/security.js para adicionar suas origens:
const defaultAllowedOrigins = [
'https://app.chatwoot.com',
'https://your-chatwoot-instance.com',
'http://localhost:3000', // Para desenvolvimento
];- Chatwoot envia dados: Quando uma conversa é aberta, o Chatwoot envia dados via
postMessage - Validação: A aplicação valida origem, estrutura e sanitiza os dados
- Geração de Tarefas: Tarefas são criadas automaticamente baseadas no status da conversa
- Visualização: As tarefas são exibidas no board Kanban
- Conversa Ativa: Para conversas com status "open"
- Mensagens Não Lidas: Para conversas com mensagens pendentes
- Follow-up: Para conversas resolvidas que precisam de acompanhamento
- Tarefas Customizadas: Criadas manualmente pelo usuário
Edite o arquivo src/App.css para personalizar cores e estilos:
:root {
--primary-color: #3b82f6;
--secondary-color: #64748b;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
}- Edite a função
generateTasksFromChatwootDataemsrc/App.jsx - Adicione sua lógica de geração de tarefas
- Defina cores e ícones apropriados
- Verifique se a URL está correta nas configurações
- Confirme que o servidor está acessível publicamente
- Verifique os headers CORS
- Verifique se a origem está na lista de origens permitidas
- Confirme que o Chatwoot está enviando dados corretamente
- Verifique o console do navegador para erros
- Verifique se a origem da mensagem está autorizada
- Confirme que os dados têm a estrutura esperada
- Verifique se não está excedendo o rate limit
Para habilitar logs detalhados, abra o console do navegador. A aplicação usa o SecureLogger que registra:
- Dados recebidos do Chatwoot
- Validações de segurança
- Erros de processamento
- Avisos de origem não autorizada
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Para suporte e dúvidas:
- Verifique a documentação acima
- Consulte a seção de troubleshooting
- Abra uma issue no GitHub
- Entre em contato com a equipe de desenvolvimento
Para manter a aplicação atualizada:
git pull origin main
pnpm install
pnpm run build- Drag & Drop entre colunas
- Notificações em tempo real
- Integração com API do Chatwoot para ações
- Relatórios e métricas
- Temas personalizáveis
- Suporte a múltiplos idiomas
Desenvolvido com ❤️ para a comunidade Chatwoot