Documentação do ZPE Desktop

Tudo o que você precisa para colocar o ZPE Desktop em operação: instalação em cada sistema, pareamento com o WhatsApp, vínculo seguro com o Luva CRM e o dia a dia de campanhas, recibos e múltiplas instâncias.

Visão geral

O ZPE Desktop é um cliente WhatsApp para computador construído sobre o whatsmeow. Ele mantém a sessão do WhatsApp conectada localmente — o celular não precisa ficar ligado — e se integra ao Luva CRM em duas vias:

Todo o estado local (conversas, mensagens, fila, mídia) fica em SQLite no perfil do usuário. Credenciais do CRM ficam no cofre de senhas do sistema operacional.

Instalação

Baixe o pacote do seu sistema na página de download e selecione o guia abaixo. Nenhum sistema exige ferramentas de desenvolvimento — os pacotes são autossuficientes.

Antes de instalar Autorize o aplicativo somente se o arquivo veio de uma fonte confiável (releases oficiais ou o time 3 Lados). Verifique o SHA-256 contra o SHA256SUMS.txt publicado junto de cada release. Nunca desative globalmente o Gatekeeper, o SmartScreen ou outras proteções do sistema.

macOS — Intel e Apple Silicon

O bundle é universal: o mesmo .app roda em Macs Intel e Apple Silicon. O ZPE Desktop é distribuído fora da App Store, então o macOS bloqueia a primeira abertura — os passos abaixo autorizam somente este aplicativo.

  1. Baixe e abra o arquivo zpe-desktop-macos-universal.zip.
  2. Arraste zpe-desktop.app para a pasta Aplicativos.
  3. Na pasta Aplicativos, clique com o botão direito sobre o ZPE Desktop e selecione Abrir.
  4. Quando o aviso de segurança aparecer, clique em Abrir novamente.

Se o botão Abrir não aparecer no aviso:

  1. Tente abrir o ZPE Desktop uma vez e feche o aviso exibido.
  2. Abra o menu Apple → Ajustes do Sistema.
  3. Entre em Privacidade e Segurança.
  4. Role até a seção Segurança. Ao lado da mensagem de que o ZPE Desktop foi bloqueado, clique em Abrir Mesmo Assim.
  5. Confirme com senha, Touch ID ou credencial de administrador.
  6. Na confirmação final, clique em Abrir.
Só na primeira vez A autorização vale apenas para a primeira execução. Depois disso o aplicativo abre normalmente, e as atualizações substituem o bundle sem novo pareamento — a sessão do WhatsApp e os dados ficam em ~/Library/Application Support/ZPE Desktop.

Verificação opcional do pacote

shasum -a 256 ~/Downloads/zpe-desktop-macos-universal.zip
# compare a saída com o SHA-256 publicado no release

Windows 10/11 — x64

  1. Baixe o instalador zpe-desktop-windows-installer.exe (ou a versão portátil zpe-desktop-windows-amd64.zip).
  2. Dê um duplo clique no instalador.
  3. Se o SmartScreen exibir “O Windows protegeu o computador”, clique em Mais informações e depois em Executar assim mesmo.
  4. Avance pelo instalador. O ZPE Desktop será instalado para o usuário atual e criará atalho no Menu Iniciar.
  5. Abra o ZPE Desktop pelo Menu Iniciar.
WebView2 O ZPE Desktop usa o Microsoft Edge WebView2, já presente em qualquer Windows 10/11 atualizado. Se o aplicativo pedir o componente na primeira abertura, aceite a instalação automática oferecida pelo instalador da Microsoft.

Verificação opcional do pacote

certutil -hashfile "%USERPROFILE%\Downloads\zpe-desktop-windows-installer.exe" SHA256
# compare a saída com o SHA-256 publicado no release

Para desinstalar: Configurações → Aplicativos → ZPE Desktop → Desinstalar. Os dados locais (sessão, conversas) ficam em %AppData% e podem ser removidos manualmente se você não pretende reinstalar.

Linux — Ubuntu 22.04+ / derivados (x64)

O pacote zpe-desktop-linux-amd64.tar.gz traz o binário (Wails + WebKitGTK 4.1), o atalho .desktop, o ícone e um install.sh que instala tudo para o usuário atual — sem sudo:

  1. Instale o WebKitGTK 4.1 (uma vez):
    sudo apt update
    sudo apt install libwebkit2gtk-4.1-0
  2. Baixe, extraia e instale:
    tar xzf ~/Downloads/zpe-desktop-linux-amd64.tar.gz -C /tmp/zpe
    /tmp/zpe/install.sh
  3. Abra o ZPE Desktop pelo menu de aplicativos (ou rode ~/.local/bin/zpe-desktop).

O install.sh coloca o binário em ~/.local/bin, o ícone em ~/.local/share/icons/hicolor e o atalho em ~/.local/share/applications com o Exec já apontando para o binário instalado.

Dica O StartupWMClass=zpe-desktop do atalho é o que liga a janela ao ícone no Alt+Tab do GNOME. Se o ícone antigo persistir, relogue a sessão (ou, no X11, Alt+F2 → r).

Compilar do código-fonte (opcional)

# pré-requisitos: Go 1.25+, Node 20+, Wails v2, libwebkit2gtk-4.1-dev
git clone https://github.com/3lados/zpe-desktop
cd zpe-desktop
wails build -tags webkit2_41
# artefato: build/bin/zpe-desktop

Parear com o WhatsApp

  1. Abra o ZPE Desktop. A tela inicial exibe um QR code.
  2. No celular, abra o WhatsApp → ConfiguraçõesAparelhos conectadosConectar um aparelho.
  3. Escaneie o QR code exibido no computador.
  4. Aguarde a mensagem “Conectado! Carregando...” — o histórico inicial sincroniza automaticamente.
QR sempre válido O QR do WhatsApp expira em ~3 minutos, mas o ZPE Desktop renova o código automaticamente enquanto a tela de login estiver aberta. Você nunca escaneia um código vencido.

Depois do pareamento, a sessão fica salva localmente: fechar e abrir o aplicativo não exige novo QR. O celular pode ficar desligado — o desktop mantém a conexão por conta própria.

Vincular ao Luva CRM

O vínculo usa um código de autorização de uso único gerado pelo CRM:

  1. No Luva CRM, acesse Configurações → Instâncias WhatsApp e crie uma instância do tipo “WhatsApp Desktop (ZPE)”.
  2. Na instância criada, gere o código de autorização — o CRM exibe o código copiável e um QR equivalente, com validade curta.
  3. No ZPE Desktop, abra o cartão LUVA CRM e informe a origem do CRM (ex.: https://app2.luvacrm.com.br) e o código.
  4. Confirme a conexão com a segunda ação explícita — o código nunca é enviado automaticamente.

Propriedades do vínculo:

Operação diária

Campanhas e confirmação humana

Quando o CRM despacha uma campanha para a sua instância, o ZPE Desktop recebe um lote e o persiste localmente antes de qualquer notificação. Nada é enviado sem a sua revisão:

  1. O aplicativo sinaliza “trabalho disponível” no painel Envios do CRM.
  2. Abra o lote e revise destinatários e conteúdo.
  3. Confirme o envio — a confirmação é por lote, explícita, e não é herdada por lotes futuros.
  4. O desktop envia com pacing e reporta cada item ao CRM (enviado, falhou, recibos).

Envios são idempotentes: reinícios ou reconexões não duplicam mensagens — cada item tem identidade estável e um journal local impede repetição.

Recibos e status

IndicadorSignificado
✓ um check cinzamensagem aceita pelo WhatsApp (enviada)
✓✓ dois checks cinzaentregue ao aparelho do destinatário
✓✓ dois checks azuislida (ou mídia reproduzida)

O status nunca regride: um recibo atrasado de prioridade menor não “des-lê” uma mensagem. Em Dados da mensagem você vê a timeline completa — incluindo, em grupos, o participante de cada recibo.

Multi-instância

Abrindo o ZPE Desktop normalmente, o próprio aplicativo gerencia várias instâncias em uma única janela:

O modo antigo — uma janela por perfil — continua suportado via linha de comando:

# macOS
open -n "/Applications/zpe-desktop.app" --args --profile chip-01
# Linux / Windows
zpe-desktop --profile chip-01
Trava de perfil Um perfil aberto na janela única fica travado (flock) e não pode ser aberto simultaneamente por um processo --profile — e vice-versa. Isso evita corrupção de sessão.

Solução de problemas

“Não foi possível conectar” ao escanear o QR

Sintoma clássico de QR vencido. Versões atuais renovam o código automaticamente; se a tela ficar sem QR por mais de ~30 segundos, use o botão Tentar novamente.

Instância aparece “desconectada” no CRM

  1. Confirme que o ZPE Desktop está aberto e o WhatsApp conectado (bolinha verde na instância);
  2. Verifique o cartão LUVA CRM — estado deve ser conectado;
  3. Se estiver revogado, gere um novo código de autorização no CRM e refaça o vínculo.

Campanha não chega ao desktop

Ícone genérico no Alt+Tab (Linux)

Instale o arquivo .desktop com StartupWMClass=zpe-desktop e os ícones hicolor conforme o guia do Linux; depois relogue a sessão.

macOS bloqueou o aplicativo

Fluxo completo na seção do macOS: botão direito → Abrir; se não houver botão, Ajustes do Sistema → Privacidade e Segurança → Abrir Mesmo Assim.

Onde ficam meus dados?

SistemaLocal
macOS~/Library/Application Support/ZPE Desktop
Windows%AppData%\ZPE Desktop (instalado) ou pasta data\ ao lado do executável (portátil)
Linux~/.local/share (perfil do usuário) ou diretório data/ ao lado do binário

Perfis adicionais vivem em profiles/<nome>/ dentro do diretório de dados. Excluir uma instância pelo aplicativo remove os dados locais e, quando vinculada, também a instância correspondente no CRM.