Pular para conteúdo

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.js Doc-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 (antes Gita × ...).
  • Drive no padrão oficial de 10 pastas (01. Informações Importantes I Cliente10. 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_URL de 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_ID nã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.