ChatWoot

Aplicativo de chatbots

Instalação e configurações do Chatwoot

Instalação e configurações do Chatwoot

Instalação e configurações do Chatwoot

Docker Chatwoot Production deployment guide

Link: https://developers.chatwoot.com/self-hosted/deployment/docker

Deploy Chatwoot using Docker containers for production environments

Pre-requisites

Before proceeding, make sure you have the latest version of docker and docker-compose installed.

As of now [at the time of writing this doc], we recommend a version equal to or higher than the following.

$ docker --version
Docker version 20.10.10, build b485636
$ docker compose version
Docker Compose version v2.14.1

Container name uses dashes instead of underscores by default with new docker/compose versions. If you are using an older version of docker/compose, replace - with _. Also, use docker-compose instead of docker compose.

Steps to deploy Chatwoot using docker-compose

1. Install Docker on your VM


# example in ubuntu
apt-get update
apt-get upgrade
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
apt install docker-compose-plugin

2. Download the required files


# Download the env file template
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
# Download the Docker compose template
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml

3. Configure environment variables

Tweak the .env and docker-compose.yaml according to your preferences. Refer to the available environment variables. You could also remove the dependant services like PostgresRedis etc., in favor of managed services configured via environment variables.


# update redis and postgres passwords
nano .env
# update docker-compose.yaml same postgres pass
nano docker-compose.yaml

4. Prepare the database


docker compose run --rm rails bundle exec rails db:chatwoot_prepare

5. Start the services


docker compose up -d

6. Access your installation

Your Chatwoot installation is complete. Please note that the containers are not exposed to the internet and they only bind to the localhost. Setup something like Nginx or any other proxy server to proxy the requests to the container.

If you want to verify whether the installation is working, try curl -I localhost:3000/api to see if it returns 200. Also, you could temporarily drop the 127.0.0.1:3000:3000 for rails to 3000:3000 in the compose file to access your instance at http://<your-external-ip>:3000. It’s recommended to revert this change back and use Nginx or some proxy server in the front.

Additional Steps

  1. Have an Nginx web server acting as a reverse proxy for Chatwoot installation. So that you can access Chatwoot from https://chat.yourdomain.com
  2. Run docker compose run --rm rails bundle exec rails db:chatwoot_prepare whenever you decide to update the Chatwoot images to handle the migrations.

Configure Nginx and Let’s Encrypt

1. Configure Nginx to serve as a frontend proxy

sudo apt-get install nginx
cd /etc/nginx/sites-enabled
nano yourdomain.com.conf

2. Use the following Nginx config

Use the following Nginx config after replacing the yourdomain.com in server_name.

server {
  server_name <yourdomain.com>;

  # Point upstream to Chatwoot App Server
  set $upstream 127.0.0.1:3000;

  # Nginx strips out underscore in headers by default
  # Chatwoot relies on underscore in headers for API
  # Make sure that the config is set to on.
  underscores_in_headers on;
  location /.well-known {
    alias /var/www/ssl-proof/chatwoot/.well-known;
  }

  location / {
    proxy_pass_header Authorization;
    proxy_pass http://$upstream;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Ssl on; # Optional

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_buffering off;

    client_max_body_size 0;
    proxy_read_timeout 36000s;
    proxy_redirect off;
  }
  listen 80;
}

3. Verify and reload Nginx config

nginx -t
systemctl reload nginx

4. Run Let’s Encrypt to configure SSL certificate

apt install certbot
apt-get install python3-certbot-nginx
mkdir -p /var/www/ssl-proof/chatwoot/.well-known
certbot --webroot -w /var/www/ssl-proof/chatwoot/ -d yourdomain.com -i nginx

5. Access your installation

Your Chatwoot installation should be accessible from the https://yourdomain.com now.

Steps to build images yourself

We publish our base images to the Docker hub. You should be able to build your Chatwoot web/worker images from these base images.

Web


FROM chatwoot/chatwoot:latest
RUN chmod +x docker/entrypoints/rails.sh
ENTRYPOINT ["docker/entrypoints/rails.sh"]
CMD bundle exec bundle exec rails s -b 0.0.0.0 -p 3000

Worker


FROM chatwoot/chatwoot:latest
RUN chmod +x docker/entrypoints/rails.sh
ENTRYPOINT ["docker/entrypoints/rails.sh"]
CMD bundle exec sidekiq -C config/sidekiq.yml

The app servers will run available on port 3000. Ensure the images connect to the same database and Redis servers. Provide the configuration for these services via environment variables.

Initial database setup

To set up the database for the first time, you must run rails db:chatwoot_prepare. You may get errors if you try to run rails db:migrate at this point.

Upgrading

If you’re not using the latest or latest-ce tag, you first need to change the desired tag in your docker-compose file.

After that you can pull the new image and start using them:


docker compose pull
docker compose up -d

Finally you may need to update the database:


docker compose run --rm rails bundle exec rails db:chatwoot_prepare

Running Rails Console


docker exec -it $(basename $(pwd))-rails-1 sh -c 'RAILS_ENV=production bundle exec rails c'

Chatwoot CE edition docker images

If you want to run Chatwoot CE edition, replace the docker image tag with equivalent foss version tag. Docker tag for current master would be latest-ce. Version specific tags would follow the pattern v*-ce. For example the docker ce edition tag for Chatwoot v2.3.2 would be v2.3.2-ce.

Instalação e configurações do Chatwoot

Chatwoot User Guide

LInk: https://chatwoot.help/hc/user-guide/en

Search for the articles here or browse the categories below.

Customizações no Chatwoot

Implementações no Chatwoot

Customizações no Chatwoot

Liberação de versão Enterprise do Chatwoot

Link: https://github.com/CHypeTools/Dchat

🚀 Dchat - Chatwoot Enterprise Unlocker

Script para desbloquear funcionalidades enterprise do Chatwoot, removendo limitações da versão community.

⚡ Uso Rápido

Execute diretamente no container do Chatwoot:

wget -qO- https://raw.githubusercontent.com/LuizBranco-ClickHype/Dchat/main/unlock.rb | bundle exec rails runner -

🎯 O que o script faz

✅ Configurações do Banco de Dados

✅ Atualização de Fallbacks

🔧 Funcionalidades Desbloqueadas

Após executar o script, seu Chatwoot terá:

📝 Detalhes Técnicos

Arquivos Modificados

Configurações Aplicadas

INSTALLATION_PRICING_PLAN = 'enterprise'
INSTALLATION_PRICING_PLAN_QUANTITY = 9999999

Backups Automáticos

O script cria backups automáticos antes de modificar arquivos:

lib/chatwoot_hub.rb.backup.YYYYMMDD_HHMMSS

🐳 Compatibilidade

⚠️ Importante

Este script modifica configurações do Chatwoot para remover limitações comerciais. Use de acordo com os termos de licença do software.

🔄 Após a Execução

  1. Reinicie o container do Chatwoot
  2. Acesse a interface web
  3. Verifique se as limitações foram removidas

👨‍💻 Autor

Dchat desenvolvido por LuizBranco-ClickHype


🌟 Repositório: LuizBranco-ClickHype/Dchat

Customizações no Chatwoot

Disparador de Campanhas WhatsApp no Chatwoot

Link: https://github.com/rodtanci/Disparador-de-Campanha-Chatwoot-Evolution
git clone https://github.com/rodtanci/Disparador-de-Campanha-Chatwoot-Evolution.git

 

🚀 Disparador de Campanhas via WhatsApp [SAAS]🚀

🌟 Introdução 🌟

O disparador de campanhas oferece uma forma eficiente e eficaz de gerenciar e enviar mensagens de campanha utilizando o ChatWoot. Esta solução é projetada para facilitar a comunicação com seus clientes, permitindo agendamento de campanhas, envio de mensagens personalizadas e acompanhamento de desempenho.

Funcionalidades

📱 Campanhas dentro do ChatWoot

Integração completa com o ChatWoot para gerenciar suas campanhas diretamente dentro da plataforma.

⏰ Agendamento e Disparo Imediato

🖼️ Envio de Imagem

📝 Envio de PDF

🎬 Envio de Video

🔊 Envio de Audio

📊 Limitador de Envios Diário por Empresa

⏳ Temporizador Randômico entre os Envios

🔄 Contador de Envios e Falhas

🚫 Mensagem de Excesso de Limite Diário

📋 Mensagem de Relatório da Campanha

📝 Personalização com Nome e Email do Contato

🏷️ Disparos através das Etiquetas dos Contatos

🎉 Benefícios 🎉


📘 Tutorial de Automação de Disparo de Campanhas

Vamos começar o tutorial para fazer a automação do sistema de disparo de campanhas usando o n8n e a Evolution API junto ao ChatWoot.

Antes de iniciar, certifique-se de que você já tem instalado:

Passo 1: Criar uma Caixa de Entrada de Canal SMS do Tipo Bandwidth

  1. Acesse o ChatWoot: Faça login na sua conta do ChatWoot.
  2. Configurações: Vá para a seção de configurações.
  3. Caixas de Entrada: Selecione "Caixas de Entrada" no menu.
  4. Adicionar Nova Caixa de Entrada: Clique no botão "Adicionar Nova Caixa de Entrada".
  5. Escolher Tipo de Canal: Selecione "SMS" e escolha "Bandwidth" como o tipo de canal.
  6. Configurar Detalhes do Canal:
    • Nome da Caixa de Entrada: Disparador (ou o nome que preferir).
    • Número de telefone: +741963 (NUMERAÇÃO ALEATÓRIA)
    • ID da Conta: 1 (ID DA CAIXA DE ENTRADA CADASTRADA NO CHATWOOT QUE VAI MANDAR AS MENSAGENS)
    • ID da aplicação: Instancia (NOME DA INSTACIA NA EVOLUTION)
    • Chave API: +5511934849643 (NUMERO DE WHATSAPP PARA RECEBER O RELATORIO)
    • Chave secreta API: email@exemplo.com (EMAIL PARA RECEBER O RELATORIO)
  7. Salvar Configurações: Clique em "Criar canal Bandwidth" para criar a nova caixa de entrada.

Passo 2: Adicionar Colunas no Banco de Dados do ChatWoot

Adicionar Colunas na Tabela campaigns:

Adicionar nova Tabela para guardar os envios que falharem:


Passo 3: Importar Workflows no n8n

  1. Acesse o n8n: Faça login na sua instância do n8n.
  2. Adicionar Novo Workflow:
    • Clique em "Add Workflow".
  3. Importar Workflow:
    • Clique nos três pontinhos no canto superior direito.
    • Selecione "Import from File".
  4. Importar o Fluxo Disparador:
    • Importe o arquivo de workflow disparador.json.
  5. Importar o Fluxo Reset-Limite-Campanhas:
    • Repita os passos acima e importe o reset-limite-campanha.json.

Passo 4: Editar o Workflow Disparador no n8n

  1. Acesse o Workflow Disparador: No n8n, abra o workflow Disparador que você importou.
  2. Editar o primeiro nó do postgres Buscar campanhas
    • Alterar na linha "select * from campaigns c where campaign_type = 1 and status_envia = 0 and account_id = 1"
    • altere o valor e account_id para o ID da conta do chatwoot.
  3. Editar Nó Info_Base:
    • Preencha os seguintes campos com suas informações:
      • URL do ChatWoot
      • URL da Evolution API
      • URL do view Typebot
      • Token de acesso da conta do ChatWoot
      • Global API KEY da Evolution API
      • Email que vai enviar o relatório
  4. Conectar Nós do Postgres ao Banco de Dados do ChatWoot:
    • Conecte todos os nós do Postgres ao banco de dados do ChatWoot, garantindo que as informações fluam corretamente entre os sistemas.

Passo 5: Editar o Workflow reset-limite-campanha no n8n

  1. Acesse o Workflow reset-limite-campanha: No n8n, abra o workflow reset-limite-campanha que você importou.
  2. Conectar Nós do Postgres ao Banco de Dados do ChatWoot:
    • Conecte todos os nós do Postgres ao banco de dados do ChatWoot, garantindo que as informações sejam atualizadas corretamente para resetar o limite de disparo diário.
    • Se desejar altere o limite de envio diario dentro do nó do postgres.
    • Recomendação para não sobrecarregar o worflow 500 disparos seguidos.

Agora que os workflows foram importados, configurados e editados, sua automação de disparo de campanhas está pronta para funcionar!

📢 Cadastro de uma Nova Campanha no ChatWoot

Para criar uma campanha, siga os passos abaixo:

  1. Clique em Campanhas: Acesse a seção de Campanhas no ChatWoot.
  2. Clique em Única: Selecione a opção "Única".
  3. Clique em Criar uma campanha única: Adicione as informações da sua campanha.
    • Título: Insira o título da campanha.
    • Mensagem: Digite a mensagem que quer enviar na campanha.
      • Para adicionar o nome do contato à mensagem, digite &nome.
      • Para adicionar o email do contato à mensagem, digite &email.
      • Para adicionar uma imagem, digite &img=urldaimagemaqui.jpg.
      • Para adicionar um video, digite &vid=urldovideo.mp4.
      • Para adicionar um pdf, digite &doc=urldopdf.pdf.

Exemplo de uso imagem:

"Olá &nome, tudo bem? Você já viu esta bela paisagem?

&img=https://img.freepik.com/fotos-gratis/paisagem-de-nevoeiro-matinal-e-montanhas-com-baloes-de-ar-quente-ao-nascer-do-sol_335224-794.jpg"

Exemplo de uso pdf:

"Olá &nome, tudo bem? Segue o nosso catalogo em PDF?

&doc=https://evolution-api.com/files/evolution-api.pdf"

Exemplo de uso video:

"Olá &nome, tudo bem? Você já viu esse vídeo??_

&vid=https://evolution-api.com/files/video.mp4"

Exemplo de uso typebot:

"&typebot=id_da_url_do_fluxo_do_typebot"

Exemplo url: https://chatbotapi.cubochat.com.br/fluxotypebot Usar: fluxotypebot

  1. Selecionar Caixa de Entrada: No campo "Selecionar caixa de entrada", selecione a caixa de SMS que você criou no início do tutorial.
  2. Público: Selecione a etiqueta que está atribuída aos contatos que quer disparar a campanha.
  3. Horário Agendado: Selecione o dia e a hora que quer disparar a campanha. Caso queira disparar a campanha na mesma hora, selecione a data e a hora atual.
  4. Clique em Criar: Finalize a criação da campanha.

Agora tudo está pronto para enviar a sua campanha!


📅 Roadmap do Projeto

Versão 1.1 🚀

Mensagem de Início de Disparo

Correção no limitador

Versão 1.2 💡

Relatório de Finalização por Email

Inclusão do Limite de Disparos Diários no Relatório

Versão 1.3 📊

Adicionando variável

Versão 1.4 🚨

Relatório de Falhas de Envio

Versão 1.5 📑

Envio de PDF

Versão 1.6 🎬

Envio de VIDEO

Versão 1.7 🔊

Envio de AUDIO

Versão 1.8 🏷️🏷️

Multiplas etiquetas

Versão 1.9 📇💬 (Já disponível)

Buscar etiquetas na conversa

Versão 2.0 [SAAS] 🌟

Apenas um workflow por instancia

Versão 2.1 🤖 (Já disponível)

Envia fluxo de mensagem do typebot

Considerações Finais 🛠️


📝 Apoio ao Projeto

Quem quiser apoiar o projeto com dicas de melhorias e reportar alguma falha pode me acionar pelo grupo do WhatsApp.

https://chat.whatsapp.com/H2as2v9yHre8U2gjNaCWRc

Canal do Youtube: https://www.youtube.com/@RodrigoTanci

Caso alguém queira contribuir de forma monetária, o chave PIX CNPJ: 36799434000140