Principal Dicas & Tutoriais
🚀

Dicas & Tutoriais

Dicas sobre como usar o Kanban para Chatwoot na sua operação.
Magdiel Silva StackLab Digital
Por Magdiel Silva and 1 outro
6 artigos

Como usar os modelos de funil

Quando desenvolvi o Kanban para Chatwoot, por várias vezes me peguei pensando "é cansativo demais criar novos funis com modelos de mensagens e etapas certas, isso tinha que ser mais fácil!". Como os nossos clientes iriam acelerar o seu negócio com o Kanban se a primeira coisa que precisa ser criada é cansativa de fazer? Isso tava errado e eu precisava melhorar. Foi desse problema e de uma análise de quais os funis eram mais usados que sugiram os modelos de funil. O que antes demorava 5/10 minutos pra ser criado, agora é feito em 3 cliques. Eu vou te ensinar como criar um funil à partir de um modelo de forma rápida em 3 passos simples abaixo: 1. Na tela inicial do Kanban, clique no ícone de mais opções (três pontos verticais) e logo em seguida em "Gerenciar funis". 2. Após acessar a área de Gestão de Funis, você verá do lado esquerdo do botão "Novo Funil" um outro botão com o texto "Modelos", clique nele. 3. Isso fará abrir uma janela onde aparecerá diferentes tipos de modelos de funis, escolha o que fizer mais sentido pro seu negócio e clique em cima. Aqui vamos usar o "Funil de Recrutamento" como exemplo. 4. Isso irá abrir o editor de funis com as etapas já criadas com cores, ids e posicionamento já definidos. Você pode editar as etapas e personalizar o modelo como achar melhor. Uma dica aqui é definir pelo menos uma etapa como etapa de entrada definindo condições de auto criação. 5. Após personalizar o seu novo funil, role o editor de funil até o final e clique em "Criar Funil" para salvar. Pronto! Agora seu funil de recrutamento está criado com as etapas e modelos de mensagens definidas de acordo com o objetivo do funil. Essa funcionalidade está disponível nas versões mais atualizadas do Kanban para Chatwoot no plano Pro (não disponível no plano Go). Docker Hub com tags atualizadas: https://hub.docker.com/r/stacklabdigital/kanban/tags

Última atualização em Aug 08, 2025

Como Instalar e Atualizar o Kanban para Chatwoot pelo Portainer

Antes de tudo certifique-se de estar usando o S3 para armazenar os seus arquivos. Não é obrigatório ter o S3 para usar o Kanban mas adiciona uma camada a mais de resiliência aos dados. Dito isso, vamos lá: 1. Em primeiro lugar, pause a stack do seu Chatwoot atual. 2. Após pausar a stack, navegue até a página “Volumesˮ do Portainer (se estiver usando EasyPanel não é necessário excluir os volumes) e exclua todos os volumes (exceto chatwoot_data ou chatwoot_storage, dependendo da instalação) - dicas no final do tutorial. Uma vez a stack pausada e os volumes removidos, agora é a hora de fazer as alterações que vão colocar o Kanban para funcionar. Não excluir o volume chatwoot_storage (ou chatwoot_data) se não estiver usando o S3. Isso causa perda de arquivos das conversas. 3. No trecho “enviromentˮ da stack do seu Chatwoot, adicione uma nova variável chamada “STACKLAB_TOKENˮ e insira o token que você recebeu via Whatsapp e E-mail na hora da compra do Kanban. 4. Após adicionar o token, altere as imagens dos dois serviços, app e Sidekiq, para usar a imagem do kanban: stacklabdigital/kanban:latest 5. Clique em “Prune Servicesˮ e logo após em “Redeployˮ. Espere o serviço chatwoot_app estar com o status “runningˮ e quando estiver, siga os próximos passos para migrar o banco de dados para a nova versão. 6. No Portainer, na linha onde aparece o serviço chatwoot_app, clique em “Consoleˮ. 7. Na tela de conexão ao console selecione “shˮ e mantenha o usuário como “rootˮ mesmo. 8. Rode o comando para migrar o banco de dados e aplicar as alterações necessárias para o funcionamento do Kanban para Chatwoot: bundle exec rails db:migrate - veja alguns comandos para gerenciar o banco de dados no fim do post. Pronto, seu Kanban para Chatwoot está instalado! O processo de atualização é exatamente o mesmo. Dicas Bônus Porque é importante usar o S3 no Chatwoot? Quando armazenamos os nossos arquivos direto no armazenamento local do Chatwoot ficamos refém do servidor em que as imagens e arquivos estão hospedados ficar indisponível, sofrer gargalos que afetam a integridade dos demais serviços, corromper informações e uma série de outros fatores. O armazenamento S3 é um protocolo especializado para guardar arquivos com segurança e performance além de permitir que seu Chatwoot tenha um serviço robusto que servirá as imagens para sua aplicação. Saiba mais sobre o protocolo S3: https://aws.amazon.com/pt/s3/getting-started/ Alguns dos bugs mais comuns de ocorrer no processo de instalação e atualização: - “Mudei a imagem dos dois serviços mas não aparece a opção de Kanban no Chatwoot.ˮ Isso geralmente ocorre quando antes de fazer o redeploy, os volumes não são apagados. Limpe os volumes e faça o redeploy pra que as modificações sejam aplicadas. - “Atualizei o Kanban para Chatwoot e apareceu “rejectedˮ no containerˮ Esse erro é causado 90% das vezes pelo nome errado da imagem. Certifique-se se estar usando a versão mais atualizada com o nome correto da imagem: stacklabdigital/kanban:latest Docker Hub com tags atualizadas: https://hub.docker.com/r/stacklabdigital/kanban/tags Comandos uteis para gerenciar o banco de dados do Chatwoot - bundle exec rails db:migrate Aplica as migrations pendentes no seu banco de dados atual após uma atualização. - bundle exec rails db:rollback Desfaz a última migration (1 step). Útil em caso de erros. - bundle exec rails db:rollback STEP=3 Desfaz as últimas 3 migrations. - bundle exec rails db:migrate:status Mostra o status das migrations (aplicadas ou não). - bundle exec rails db:seed Executa o arquivo db/seeds.rb. - bundle exec rails db:reset Dropa, cria, migra e roda seeds no banco (cuidado: apaga os dados!).

Última atualização em Aug 08, 2025

Entenda os volumes na stack do seu Chatwoot

Muitas pessoas hospedam aplicações self-hosted seguindo tutoriais da internet mas em alguns casos esses videos (ou posts de blog) não explicam o que cada configuração da stack que você está fazendo deploy faz. Você coloca a aplicação em produção, funciona, recebe clientes e começa a faturar. Perfeito! O problema começa a aparecer quando você precisa atualizar a versão do seu aplicativo e no tutorial diz pra você apagar os volumes X e Y. Ué? Mas no primeiro tutorial o professor não disse pra criar os volumes? Agora tenho que apagar? Será que eu perco tudo? Enfim.. todo mundo já passou por isso, eu quebrei a cabeça várias vezes e optei em alguns momentos por nem atualizar o aplicativo pra não correr o risco. Com o Chatwoot não foi diferente. Deixa eu te explicar pra que serve os volumes na sua stack do Chatwoot: O que são volumes? Os volumes, de forma resumida, são pastas onde ficam armazenados arquivos. E no seu Chatwoot quais são os arquivos? Vou te explicar e mostrar a diferença de quais dados ficam no banco de dados e quais ficam nos volumes. Quais arquivos ficam nos volumes? Entre eles estão: - Fotos de conversas - Áudios enviados por contatos - Fotos de perfil dos agentes das accounts - Seu logotipo personalizado E outros.. o importante é entender que ficam os arquivos binários. Áudios, imagens, PDFs, tudo que for arquivo que você enviou ou recebeu no Chatwoot. E o que fica no banco de dados? Eu não vou aprofundar em como funciona um banco de dados nesse artigo mas entenda que se os arquivos binários ficam nos volumes, no banco de dados ficam os dados. Não me entenda errado, não é que imagens, áudios e etc não sejam dados, eles são, mas em TIPOS diferentes. No seu banco de dados fica o texto da última mensagem não lida, a ID da sua conta, o nome do contato, quando ele foi criado e etc.. Isso não fica nos volumes do Chatwoot (se você não estiver rodando o banco de dados na mesma stack e usando um nome tipo “chatwoot_db”, por exemplo). Fica no Postgres, dentro de outro serviço que tem outro volume e que funciona de forma parecida com essa que expliquei do Chatwoot. Se eu apagar os volumes eu perco tudo então? De forma resumida, sim! Mais especificamente se apagar o volume “chatwoot_data” (ou “chatwoot_storage”, dependendo da stack). Você só não vai perder se usar o S3 ao invés dos volumes e se estiver usando ele, não precisa do volume local. Então, quando for atualizar ou limpar arquivos antigos do seu Chatwoot, você já sabe onde encontrar eles. no próximo artigo eu te explico melhor sobre como funciona a integração com o S3. Te espero lá!

Última atualização em Aug 28, 2025

Como usar o SMTP do Google para enviar e-mails

O Simple Mail Transfer Protocol (SMTP) do Google permite que você envie e-mails de forma programática usando uma conta do Gmail. Este tutorial vai guiá-lo através dos passos necessários para configurar e usar o SMTP do Google para enviar e-mails. Antes de começar, você vai precisar de uma conta Gmail ou Google Workspace. Passo 1: Configurar a Conta do Gmail 1. Ativar o Acesso a Aplicativos Menos Seguros (Opcional): O Google tem medidas de segurança que podem bloquear aplicativos menos seguros. Para permitir que seu aplicativo envie e-mails, você pode precisar ativar o acesso a aplicativos menos seguros na sua conta do Gmail. - Acesse Minha Conta. - Role para baixo até a seção "Acesso a aplicativos menos seguros". - Clique em "Ativar acesso" e habilite a opção "Permitir aplicativos menos seguros". 2. Gerar uma Senha de Aplicativo (Recomendado): Por questões de segurança, é recomendado gerar uma senha específica para o aplicativo em vez de usar sua senha principal do Gmail. - Acesse Minha Conta. - Em "Segurança", encontre "Senhas de aplicativos". - Selecione "Outros (nome personalizado)" e insira um nome para a aplicação (por exemplo, "Envio de Email SMTP"). - Clique em "Gerar" e anote a senha fornecida. Passo 2: Configurar as Credenciais SMTP Para configurar o envio de e-mails via SMTP do Google, você precisará das seguintes informações: - Servidor SMTP: smtp.gmail.com - Porta SMTP: 587 (TLS) ou 465 (SSL) - Usuário: Seu endereço de e-mail completo do Gmail (ex: seuemail@gmail.com) - Senha: Sua senha do Gmail ou a senha do aplicativo gerada anteriormente. Passo 3: Limites de Envio do SMTP Google Grátis O Google limita a saída de 100 e-mails por dia. Se atingir o limite, você não será capaz de enviar e-mails pelas próximas 24 horas até que o limite seja resetado. Mais informações sobre os limites de envio de e-mails do Google podem ser encontradas aqui. Passo 4: Testar a Configuração SMTP Para verificar se a configuração SMTP do Google está funcionando corretamente, siga estes passos: Testar com Clientes de E-mail: 1. Uma maneira de testar a configuração SMTP é configurando-a em um cliente de e-mail, como Microsoft Outlook, Mozilla Thunderbird ou Apple Mail. - Abra o cliente de e-mail. - Acesse as configurações de conta e adicione uma nova conta de e-mail. - Insira as informações do servidor SMTP, porta, e credenciais. - Envie um e-mail de teste para verificar se a configuração está funcionando. Verificar o Log de Envio: 1. Depois de enviar um e-mail de teste, verifique a caixa de entrada do destinatário para confirmar que o e-mail foi recebido. Também, confira os logs de envio no cliente de e-mail ou ferramenta de teste utilizada para garantir que não houve erros durante o processo. Solucionar Problemas Comuns 1. Erro de Autenticação: - Verifique se o usuário e a senha estão corretos. - Certifique-se de que a opção "Permitir aplicativos menos seguros" está ativada ou que você está usando a senha do aplicativo. 2. Erro de Conexão: - Verifique se o servidor SMTP e a porta estão corretos. - Assegure-se de que sua conexão com a internet está estável. 3. Mensagens de Segurança do Google: - Se o Google bloquear sua tentativa de login, você poderá receber um e-mail ou notificação sobre uma tentativa de login suspeita. Confirme que foi você quem tentou fazer login. Considerações Finais Usar o SMTP do Google é uma maneira simples e eficaz de enviar e-mails programaticamente. No entanto, para aplicações de produção, considere usar uma solução de e-mail transacional como SendGrid, Mailgun ou Amazon SES, que oferecem mais recursos e melhor gerenciamento de envios em larga escala. Crêditos: https://chatwoot.app.br/

Última atualização em Sep 01, 2025

Como usar webhooks?

Webhooks são callbacks HTTP configurados para cada conta, disparados quando ações como criação de mensagens ocorrem no Chatwoot. É possível configurar múltiplos webhooks para uma única conta. Como adicionar um webhook? Passo 1: Vá para Configurações → Integrações → Webhooks e clique no botão "Configurar". Passo 2: Clique no botão "Adicionar novo webhook". Uma janela modal será aberta, onde você deve inserir a URL para a qual a requisição POST será enviada. Depois, selecione os eventos que deseja assinar, para que apenas eventos relevantes no Chatwoot sejam notificados. O Chatwoot enviará uma requisição POST com o seguinte payload para as URLs configuradas, quando ocorrerem atualizações em sua conta. Exemplo de payload de webhook: { "event": "message_created", // Nome do evento "id": "1", // ID da mensagem "content": "Oi", // Conteúdo da mensagem "created_at": "2020-03-03 13:05:57 UTC", // Data e hora em que a mensagem foi enviada "message_type": "incoming", // Pode ser incoming (entrada), outgoing (saída) ou template "content_type": "enum", // Pode ser input_select, cards, form ou texto. O valor padrão é texto "content_attributes": {}, // Atributos do conteúdo, podem variar "source_id": "", // ID externo se for uma integração com Twitter ou Facebook "sender": { // Detalhes do agente que enviou a mensagem "id": "1", "name": "Agente", "email": "agent@example.com" }, "contact": { // Detalhes do usuário que enviou a mensagem "id": "1", "name": "nome-do-contato" }, "conversation": { // Detalhes da conversa "display_id": "1", // ID da conversa visível no painel "additional_attributes": { "browser": { "device_name": "Macbook", "browser_name": "Chrome", "platform_name": "Macintosh", "browser_version": "80.0.3987.122", "platform_version": "10.15.2" }, "referer": "<http://www.chatwoot.com>", "initiated_at": "Tue Mar 03 2020 18:37:38 GMT-0700 (Mountain Standard Time)" } }, "account": { // Detalhes da conta "id": "1", "name": "Chatwoot" } } Eventos de webhook suportados no Chatwoot O Chatwoot publica vários eventos para os endpoints de webhooks configurados. Cada evento tem sua estrutura de payload baseada no tipo de modelo a que se refere. A seguir, estão descritos os principais objetos usados no Chatwoot e seus atributos. Objetos Um payload de evento pode incluir os seguintes objetos. Os vários tipos de objetos suportados pelo Chatwoot estão listados abaixo. - Conta (Account): { "id": "integer", "name": "string" } - Caixa de Entrada (Inbox): { "id": "integer", "name": "string" } - Contato (Contact): { "id": "integer", "name": "string", "avatar": "string", "type": "contact", "account": { // <...Account Object> } } - Usuário (User): { "id": "integer", "name": "string", "email": "string", "type": "user" } - Conversa (Conversation): { "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "iso-datetime" } }, "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "contact_inbox": { "id": "integer", "contact_id": "integer", "inbox_id": "integer", "source_id": "string", "created_at": "datetime", "updated_at": "datetime", "hmac_verified": "boolean" }, "messages": ["Array of message objects"], "meta": { "sender": { // Contact Object }, "assignee": { // User Object } }, "status": "string", "unread_count": "integer", "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", "account_id": "integer" } - Mensagem (Message): { "id": "integer", "content": "string", "message_type": "integer", "created_at": "unix-timestamp", "private": "boolean", "source_id": "string / null", "content_type": "string", "content_attributes": "object", "sender": { "type": "string - contact/user" // User or Contact Object }, "account": { // Account Object }, "conversation": { // Conversation Object }, "inbox": { // Inbox Object } } - Uma carga útil de webhook de amostra: { "event": "event_name" // Attributes related to the event } Eventos Webhook Chatwoot suporta os seguintes eventos webhook. Você pode assiná-los ao configurar um webhook no painel ou usando a API. conversation_criado: Disparado quando uma nova conversa é criada. Este evento será acionado quando uma nova conversa for criada na conta. A carga útil para o evento é a seguinte. { "event": "conversation_created" // <...Conversation Attributes> } conversação_atualizado Este evento será acionado quando houver uma alteração em qualquer um dos atributos na conversa. { "event": "conversation_updated", "changed_attributes": [ { "<attribute_name>": { "current_value": "", "previous_value": "" } } ] // <...Conversation Attributes> } conversation_status_alterado Este evento será acionado quando o status da conversa for alterado. Observação: Se você estiver usando APIs de bot de agente em vez de webhooks, esse evento ainda não é suportado. { "event": "conversation_status_changed" // <...Conversation Attributes> } message_criado Esse evento será acionado quando uma mensagem for criada em uma conversa. A carga útil para o evento é a seguinte. { "event": "message_created" // <...Message Attributes> } mensagem_atualizado Este evento será acionado quando uma mensagem for atualizada em uma conversa. A carga útil para o evento é a seguinte. { "event": "message_updated" // <...Message Attributes> } webwidget_triggered Este evento será acionado quando o usuário final abrir o widget de bate-papo ao vivo. { "id": , "contact": { // <...Contact Object> }, "inbox": { // <...Inbox Object> }, "account": { // <...Account Object> }, "current_conversation": { // <...Conversation Object> }, "source_id": "string", "event": "webwidget_triggered", "event_info": { "initiated_at": { "timestamp": "date-string" }, "referer": "string", "widget_language": "string", "browser_language": "string", "browser": { "browser_name": "string", "browser_version": "string", "device_name": "string", "platform_name": "string", "platform_version": "string" } } } Créditos: https://chatwoot.app.br/

Última atualização em Sep 01, 2025

Como Instalar e Atualizar o Kanban para Chatwoot pelo EasyPanel

Vamos te ensinar a instalar o Kanban para Chatwoot usando o EasyPanel nesse tutorial. Siga o passo a passo com atenção para que funcione corretamente. Dito isso, vamos lá: 1. Navegue até o projeto do seu Chatwoot no EasyPanel e clique na aba "Source" no menu lateral esquerdo. 2. Após isso, no campo "Image" da aba "Docker Image", mude para a imagem do Kanban: stacklabdigital/kanban:latest 3. Agora vamos inserir seu Token da StackLab no ambiente do seu Chatwoot. Pra isso, no menu lateral esquerdo, clique na aba "Enviroment" 4. Crie uma nova variável de ambiente chamada STACKLAB_TOKEN e cole o token que você recebeu no momento da compra. 5. Repita esse processo tanto pros serviços chatwoot e chatwoot-sidekiq, colocando a imagem e o token do Kanban em ambos os serviços. 6. Após isso clique em "Deploy" para aplicar a alteração 7. Agora clique no botão de console e rode o comando abaixo para executar a migração do banco de dados e criar as tabelas do Kanban. Veja o icone abaixo: 8. Selecione a opção "sh" e rode o comando: bundle exec rails db:migrate Pronto, seu Kanban para Chatwoot está instalado! O processo de atualização é exatamente o mesmo. Dicas Bônus Porque é importante usar o S3 no Chatwoot? Quando armazenamos os nossos arquivos direto no armazenamento local do Chatwoot ficamos refém do servidor em que as imagens e arquivos estão hospedados ficar indisponível, sofrer gargalos que afetam a integridade dos demais serviços, corromper informações e uma série de outros fatores. O armazenamento S3 é um protocolo especializado para guardar arquivos com segurança e performance além de permitir que seu Chatwoot tenha um serviço robusto que servirá as imagens para sua aplicação. Saiba mais sobre o protocolo S3: https://aws.amazon.com/pt/s3/getting-started/ Alguns dos bugs mais comuns de ocorrer no processo de instalação e atualização: - “Mudei a imagem dos dois serviços mas não aparece a opção de Kanban no Chatwoot.ˮ Isso geralmente ocorre quando antes de fazer o redeploy, os volumes não são apagados. Limpe os volumes e faça o redeploy pra que as modificações sejam aplicadas. - “Atualizei o Kanban para Chatwoot e apareceu “rejectedˮ no containerˮ Esse erro é causado 90% das vezes pelo nome errado da imagem. Certifique-se se estar usando a versão mais atualizada com o nome correto da imagem: stacklabdigital/kanban:latest Docker Hub com tags atualizadas: https://hub.docker.com/r/stacklabdigital/kanban/tags Comandos uteis para gerenciar o banco de dados do Chatwoot - bundle exec rails db:migrate Aplica as migrations pendentes no seu banco de dados atual após uma atualização. - bundle exec rails db:rollback Desfaz a última migration (1 step). Útil em caso de erros. - bundle exec rails db:rollback STEP=3 Desfaz as últimas 3 migrations. - bundle exec rails db:migrate:status Mostra o status das migrations (aplicadas ou não). - bundle exec rails db:seed Executa o arquivo db/seeds.rb. - bundle exec rails db:reset Dropa, cria, migra e roda seeds no banco (cuidado: apaga os dados!).

Última atualização em Sep 17, 2025