POP — Fluxo de Fechamento e Onboarding de Cliente (PED)¶
Área: Comercial / Backoffice / Onboarding Responsável: Tati (backoffice) + automação (Gi) Ferramentas: Chatwoot, ClickUp, DocuSeal, Uazapi (WhatsApp), Google Drive Código:
server/automations/chatwoot-venda.js,gerar-contrato.js,enviar-contrato.js,docuseal-assinado.js,cliente-ativo.jsDoc-fonte (Tay/Tati): Fluxo de Onboarding — Empresa no Digital
O fechamento é conduzido pela Tati estágio a estágio no Kanban da lista Gestão de Clientes. Cada mudança de status dispara uma ação. Há revisão humana antes de gerar e antes de enviar o contrato — nada de contrato automático sem conferência.
Pipeline de status (lista Gestão de Clientes)¶
novo cliente → formulário recebido → gerar contrato → enviar contrato → ativos
| Estágio | Quem move | O que a Gi faz automaticamente |
|---|---|---|
| novo cliente | tag venda-realizada no Chatwoot |
Cria a task (Tati responsável, prazo 2 dias), puxa dados do Chatwoot + link da conversa, e envia o formulário ao cliente no WhatsApp¹ |
| formulário recebido | automático (cliente preenche o form) | Preenche os campos do contrato na task e avisa no #BackOffice marcando a Tati (prazo 24h). NÃO gera contrato ainda. |
| gerar contrato | Tati (após revisar dados e valores) | Gera a submissão no DocuSeal e salva o link de assinatura |
| enviar contrato | Tati (após conferir o contrato) | Envia ao cliente o link de assinatura + chave PIX da 1ª parcela¹ |
| (cliente assina) | cliente, no DocuSeal | Posta na task o contrato completo assinado + auditoria e a copy pronta pra Tati mandar (envio manual). Não cria grupo/Drive ainda. |
| ativos | Tati (após confirmar o PIX) | Cria o grupo WhatsApp, a pasta no Drive (padrão 10 pastas + contrato) e o projeto no ClickUp (modelo PED)¹ |
¹ Ações que falam com o cliente / criam recursos são gated por flag (ver Setup). Com a flag desligada, a Gi só registra na task a copy/o plano pronto pra execução manual.
O que mudou (vs. fluxo antigo)¶
- O contrato não é mais gerado no submit do formulário — passa por revisão da Tati (estágio
gerar contrato). - Grupo + Drive não nascem mais na assinatura — só quando o cliente vira
ativos(pós-PIX). - O "contrato assinado" agora é o contrato completo + auditoria (antes salvava/enviava só o log de auditoria — bug corrigido em
selecionarDocumentosAssinados). - Nome do grupo:
{Nome Empresa} Atendimento SC(antesGita × ...). - Drive no padrão oficial de 10 pastas (
01. Informações Importantes I Cliente…10. Site Institucional I Cliente). - Demandas do ClickUp criadas a partir do modelo
[MODELO] Checklist — PED Execução.
Setup único (fazer uma vez antes de ligar)¶
1. ClickUp Automations (3 webhooks)¶
Na lista Gestão de Clientes, criar Automations "quando status muda para X → call webhook":
| Status | Webhook (no server apiclickup) |
|---|---|
gerar contrato |
POST {BASE_URL}/webhook/clickup/gerar-contrato |
enviar contrato |
POST {BASE_URL}/webhook/clickup/enviar-contrato |
ativos |
POST {BASE_URL}/webhook/clickup/cliente-ativo |
BASE_URLde produção:https://gita-apiclickup.ewzc9p.easypanel.host.
2. Modelo de projeto no ClickUp¶
Salvar o folder [MODELO] Checklist — PED Execução (901318408358) como Folder Template no ClickUp, copiar o id do template (t-…) e setar em PED_FOLDER_TEMPLATE_ID. Os projetos são criados na space Projetos e Lançamentos (901313171461).
3. Chatwoot — mover Kanban (Passo 1)¶
Criar uma Automation Rule nativa do Chatwoot: "label venda-realizada adicionada → mover para a coluna/estágio VENDA REALIZADA". (Config no painel do Chatwoot, não há código.)
4. Variáveis de ambiente (Easypanel — server apiclickup)¶
| Variável | Valor | Para quê |
|---|---|---|
GRUPO_MEMBROS_PADRAO |
números da equipe, separados por vírgula (e164, ex: 556198547151,...) |
membros fixos de todo grupo (Comercial, Tati, Larissa, Taynara) |
PED_FOLDER_TEMPLATE_ID |
t-… |
template do projeto ClickUp |
PROJETOS_SPACE_ID |
901313171461 |
space onde o projeto é criado (default já embutido) |
BACKOFFICE_CHANNEL_ID |
8cgqa6x-11973 |
canal #BackOffice (default já embutido) |
TATI_USER_ID |
44237175 |
responsável da task / menção (default já embutido) |
PIX_CHAVE / PIX_TITULAR |
[email protected] / Nubank — Grupo Gita |
chave PIX na copy (defaults embutidos) |
ENABLE_ONBOARDING_FORM_DISPATCH |
true p/ ligar |
envio do formulário ao cliente (Passo 3) |
ENABLE_ONBOARDING_CONTRACT_DISPATCH |
true p/ ligar |
envio do contrato+PIX ao cliente (Passo 4) |
ENABLE_ONBOARDING_ATIVACAO |
true p/ ligar |
grupo + Drive + projeto na ativação (Passo 6) |
As 3 flags
ENABLE_ONBOARDING_*começam desligadas. Com elas off, o fluxo roda mas as ações client-facing/criação ficam em modo "registra na task pra execução manual". Ligue uma a uma conforme validar.
Como testar (sem disparar nada em produção)¶
Todos os endpoints aceitam ?dryRun=1 (não cria/envía nada, só mostra o plano):
# Gerar contrato (dryRun): mostra os dados que iriam pro DocuSeal
curl -X POST "$BASE_URL/webhook/clickup/gerar-contrato?dryRun=1" -d '{"task_id":"<TASK>"}'
# Enviar contrato (dryRun): mostra a copy que iria pro cliente
curl -X POST "$BASE_URL/webhook/clickup/enviar-contrato?dryRun=1" -d '{"task_id":"<TASK>"}'
# Ativação (dryRun): mostra grupo/Drive/projeto que seriam criados
curl -X POST "$BASE_URL/webhook/clickup/cliente-ativo?dryRun=1" -d '{"task_id":"<TASK>"}'
# Status de cada automação
curl "$BASE_URL/webhook/clickup/gerar-contrato/status"
curl "$BASE_URL/webhook/clickup/enviar-contrato/status"
curl "$BASE_URL/webhook/clickup/cliente-ativo/status"
Testes unitários: cd server && node --test tests/onboarding-fechamento.test.js.
Erros comuns¶
- Grupo não criado: campo "WhatsApp Cliente" vazio na task (vem do Chatwoot na criação). Preencher e re-mover pra
ativos. - Projeto ClickUp não criado:
PED_FOLDER_TEMPLATE_IDnão setado, ou o folder-modelo não foi salvo como template. - Contrato "incompleto" no Drive/WhatsApp: se aparecer só auditoria, o DocuSeal ainda não gerou o
combined_document_url— a Gi re-busca; se persistir, baixar o contrato completo manualmente da submissão. - Mensagem não chega ao cliente: flag
ENABLE_ONBOARDING_*desligada (comportamento esperado até ligar) — a copy fica registrada na task.
Fluxo definido por Tay/Tati (jun/2026). Mantido em código no server apiclickup.