Lead Input Hyperflow Unified Lead v2

Visão Geral

Este fluxo é o ponto de entrada central para leads unificados no ecossistema Hyperflow. Ele recebe dados via Webhook, sanitiza informações (telefone, CPF), enriquece o lead com dados de proprietário (HubSpot) e classifica a intenção de compra para direcionar o lead para o fluxo de atendimento correto ou para estratégias de nutrição/disparo.

Objetivo

  • Centralizar a entrada de leads: Receber leads de múltiplas fontes via webhook padronizado.
  • Sanitização e Enriquecimento: Formatar telefones e CPFs, e buscar o proprietário do negócio no CRM.
  • Roteamento Inteligente: Classificar a resposta/intenção do lead e direcioná-lo para:
    • Atendimento Humano/Bot (Buy Intention): Criação de negócio e notificação.
    • Nutrição/Disparo (No Buy Intention): Envio para fluxos de disparo (RCS/SMS).
    • Tratamento de Erros/Exceções: Lidar com leads não encontrados, opt-outs ou riscos de compliance.

Diagrama de Fluxo

graph TD
    Start(("Início")) --> N1[1-webhook]
    N1 --> N2[2-set-selecionar-campos]
    N2 --> N3[3-jump-formatar-phone]
    N3 --> N3a[3a-execution-data-salvar-phone]
    N3 --> N4[4-set-salvar-mensagem]
    N4 --> N5[5-jump-classificar-resposta]
    N5 --> N6[6-jump-encontrar-lead]
    N6 --> N6a[6a-execution-data-salvar-cpf]
    N6 --> N7[7-set-adicionar-classification]
    N7 --> N8{"8-conditional-switch-classificacao"}

    N8 -- "Buy Intention" --> N9B[9B-set-campaign-trigger]
    N9B --> N10B[10B-jump-modelar-dados]
    N10B --> N11B[11B-set-definir-source]
    N11B --> N12B[12B-jump-criar-negocio]
    
    N12B -- "Sucesso" --> N13B[13B-jump-encontrar-proprietario]
    N12B -- "Erro" --> N9C[9C-set-definir-campos]

    N13B --> N14B[14B-set-definir-campos-owner]
    N14B --> N15B{"15B-conditional-gerou-deal-id"}
    
    N15B -- "Sim" --> N16B[16B-set-campaign-update]
    N16B --> N17B[17B-mongo-find-campaign]
    N17B --> N18B[18B-set-campaign-update-check]
    N18B --> N19B[19B-mongo-add-deal-id]
    N19B --> N20B[20B-set-definir-campos-hf]

    N15B -- "Não" --> N20B

    N20B --> N21B[21B-respond-webhook-encontrado]
    N21B --> N22B{"22B-conditional-correlation-exist"}
    N22B -- "Sim" --> EndSuccess(("Fim"))
    N22B -- "Não" --> N23B[23B-end-flow-stop-error]

    N8 -- "Optout/Risk/Wrong" --> N9D[9D-set-modelar-restricao]
    N9D --> N10D[10D-jump-adicionar-restricao]
    N10D --> N9C

    N8 -- "Unknown/Erro" --> N9E[9E-set-salvar-execucao]
    N9E --> N10E[10E-jump-error-classificador]

    classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px;
    classDef webhook fill:#e1f5ff,stroke:#0077b6,stroke-width:2px;
    classDef jump fill:#fff3cd,stroke:#ffc107,stroke-width:2px;
    classDef conditional fill:#ffe1e1,stroke:#dc3545,stroke-width:2px;
    
    class N1 webhook;
    class N3,N5,N6,N10B,N12B,N13B,N10C,N10D,N10E jump;
    class N8,N15B,N22B conditional;

Variáveis do Fluxo

Variáveis de Entrada (Input)

VariávelOrigemTipoObrigatórioDescrição
body.phoneWebhookstringSimTelefone do lead (pode vir com prefixo RCS)
body.cpfWebhookstringSimCPF do lead
body.answer_messageWebhookstringNãoMensagem de resposta do lead
body.classificationWebhookstringNãoClassificação prévia da intenção
body.utm_sourceWebhookstringNãoOrigem da campanha
body.utm_mediumWebhookstringNãoMeio da campanha
body.campaignWebhookstringNãoNome da campanha

Variáveis Internas (Flow Variables)

VariávelCriada emTipoDescrição
flow.unified_leadNó 6 (Encontrar Lead)objectObjeto completo do lead unificado encontrado
flow.classificationNó 5/7stringClassificação normalizada da intenção (ex: buy_intention, optout)
flow.deal_idNó 12B (Criar Negócio)stringID do negócio criado no HubSpot
flow.owner_idNó 13B (Encontrar Owner)stringID do proprietário do negócio no HubSpot

Dependências Externas

Fluxos Chamados (Jumps)

FluxoPropósito
Formatar phone3Padronizar o formato do telefone
Classificar Resposta5Analisar a mensagem e definir a intenção
Encontrar Lead6Buscar o lead na base unificada pelo CPF/Telefone
Modelar dados criar negócio10BPreparar payload para criação de negócio
Criar negócio e contato...12BCriar/Atualizar negócio no CRM
Encontrar proprietário...13BIdentificar o dono do lead no CRM
Adicionar Disparo10CEnviar mensagem de disparo (RCS/SMS)
Adicionar Restrição10DMarcar lead com restrição (opt-out, risco)
Error Classificador...10ETratar erros de classificação

Fluxos que chamam este fluxo

FluxoDescrição
BUC/BUER- Cadência Automática Nexforce - RCS WhatsappFluxo de disparo RCS
BUC - Tribo - Disparador APP - RCS testesFluxo de teste de disparo APP
BUC - Tribo - Disparador - RCSFluxo geral de disparo RCS

Saída (Output)

O fluxo finaliza respondendo ao webhook original, indicando se o lead foi processado com sucesso (200 OK) e se foi encontrado/encaminhado. Em casos de erro crítico (falta de correlation_id), o fluxo termina com erro.