Configuracao

Configure canais de atendimento, storage, email e outras opcoes da NooviChat.

Canais de Atendimento

O NooviChat centraliza canais habilitados de comunicacao. Cada canal e configurado como uma "Inbox" no painel de administracao.

WhatsApp

NooviConnect nativo, Cloud API ou UAZAPI

Popular

Web Chat

Widget para seu site

Disponivel

Facebook

Messenger e Instagram

Disponivel

API

Canal customizado quando habilitado

Configuravel

Configuracao WhatsApp

Para integrar o WhatsApp, voce pode usar o NooviConnect nativo (recomendado) ou um provedor externo. O NooviChat suporta o NooviConnect nativo conforme a autorizacao operacional da sua licenca, a Cloud API oficial e o UAZAPI conforme a configuracao da instancia.

Via API Oficial (Cloud API)

bash
# Variaveis de ambiente para WhatsApp Cloud API
WHATSAPP_CLOUD_BASE_URL=https://graph.facebook.com
WHATSAPP_CLOUD_API_VERSION=v17.0

NooviConnect (WhatsApp nativo) e o Hub

O NooviConnect e o motor de WhatsApp nativo da NooviChat. Ele roda como um servico dedicado na mesma stack do NooviChat. Quem usa o Auto Instalador ja recebe tudo configurado. Em instalacoes manuais, adicione o servico nooviconnect a sua stack, ao lado de app e sidekiq:

yaml
# Adicione este servico a MESMA stack do app/sidekiq
nooviconnect:
  image: nooviai/nooviconnect:latest
  environment:
    # Use a MESMA chave do app/sidekiq — o motor deriva a autenticacao sozinho
    - SECRET_KEY_BASE=<a-mesma-do-app-e-sidekiq>
    # Mesmo PostgreSQL do NooviChat (o motor cria o proprio schema de sessoes)
    - POSTGRESQL_URL=postgresql://USUARIO:SENHA@HOST_POSTGRES:5432/BANCO
    # URL interna do servico app, para o motor enviar as mensagens recebidas
    - NOOVI_CHATWOOT_URL=http://<nome-do-servico-app>:3000
  deploy:
    replicas: 1        # a sessao do WhatsApp e unica — 2 replicas brigariam
  # Sem volume: as sessoes ficam no PostgreSQL; a midia e efemera

O servico precisa se chamar nooviconnect: o app e o sidekiq o alcancam automaticamente em http://nooviconnect:3000 (zero configuracao). Nao e preciso definir nenhuma variavel de WhatsApp nos servicos app e sidekiq.

Depois de subir o servico, ative a feature "Hub WhatsApp" na conta desejada pelo Super Admin. O usuario abre o Hub WhatsApp, clica em Nova conexao e escaneia o QR Code para criar a sessao. O Hub reune Grupos, Canais, Transmissoes, Engajamento e Relatorios.

Migrando de uma versao antiga?

Versoes anteriores rodavam o motor embutido no proprio container do app. Ao migrar para o servico dedicado nooviconnect, as sessoes de WhatsApp precisam ser re-pareadas: abra o Hub WhatsApp e escaneie um novo QR Code.

Criar Inbox via API

bash
curl -X POST \
  "https://chat.seudominio.com/api/v1/accounts/{account_id}/inboxes" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WhatsApp Comercial",
    "channel": {
      "type": "whatsapp",
      "phone_number": "+5511999999999",
      "provider": "whatsapp_cloud",
      "provider_config": {
        "api_key": "YOUR_WHATSAPP_API_KEY",
        "phone_number_id": "YOUR_PHONE_NUMBER_ID",
        "business_account_id": "YOUR_BUSINESS_ACCOUNT_ID"
      }
    }
  }'

Configuracao de SMTP Transacional

Configure SMTP para emails transacionais da instalacao. Email nao e canal de atendimento da oferta atual do NooviChat.

bash
SMTP_ADDRESS=smtp.seudominio.com
SMTP_PORT=587
SMTP_USERNAME=notificacoes@seudominio.com
SMTP_PASSWORD=senha_smtp
SMTP_AUTHENTICATION=login
SMTP_ENABLE_STARTTLS_AUTO=true
MAILER_SENDER_EMAIL=notificacoes@seudominio.com

Web Chat Widget

Adicione o widget de chat ao seu site para atendimento em tempo real. Apos criar uma inbox do tipo "Web" no painel, copie o script de instalacao:

html
<script>
  (function(d,t) {
    var BASE_URL = "https://chat.seudominio.com";
    var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
    g.src = BASE_URL + "/packs/js/sdk.js";
    g.defer = true;
    g.async = true;
    s.parentNode.insertBefore(g, s);
    g.onload = function() {
      window.chatwootSDK.run({
        websiteToken: 'SEU_WEBSITE_TOKEN',
        baseUrl: BASE_URL
      })
    }
  })(document, "script");
</script>

Storage de Arquivos

Configure onde os arquivos enviados nas conversas serao armazenados.

Local (Padrao)

bash
ACTIVE_STORAGE_SERVICE=local

Amazon S3

bash
ACTIVE_STORAGE_SERVICE=amazon
S3_BUCKET_NAME=seu-bucket
AWS_ACCESS_KEY_ID=sua-access-key
AWS_SECRET_ACCESS_KEY=sua-secret-key
AWS_REGION=us-east-1

Configuracao de Email (SMTP)

Configure o SMTP para envio de notificacoes, convites e emails de confirmacao.

bash
# Configuracao SMTP
MAILER_SENDER_EMAIL=noreply@seudominio.com
SMTP_ADDRESS=smtp.seudominio.com
SMTP_PORT=587
SMTP_USERNAME=noreply@seudominio.com
SMTP_PASSWORD=senha_smtp
SMTP_AUTHENTICATION=plain
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_DOMAIN=seudominio.com

Provedores populares

Para Gmail use smtp.gmail.com:587. Para SendGrid use smtp.sendgrid.net:587 com API key como password.

SSL / HTTPS

Recomendamos usar um reverse proxy (Nginx, Traefik, Caddy) para terminacao SSL. Exemplo com Nginx:

nginx
server {
    listen 443 ssl;
    server_name chat.seudominio.com;

    ssl_certificate /etc/ssl/certs/chat.crt;
    ssl_certificate_key /etc/ssl/private/chat.key;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }

    location /cable {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Logs e Monitoramento

Comandos uteis para monitorar a aplicacao:

bash
# Ver logs em tempo real
docker compose logs -f noovichat

# Ver logs do Sidekiq (jobs em background)
docker compose logs -f sidekiq

# Verificar saude da aplicacao
curl http://localhost:3000/auth/sign_in

# Console Rails (debug)
docker compose exec noovichat bundle exec rails console