CV CRM (reservas, unidades, distratos) e ERP (contratos e parcelas)
Situação normalizada e empreendimento canônico
Vendas, distratos, estoque, VSO e carteira por empreendimento
Comitê comercial, agente de IA e alerta de cobrança
O que resolve
- Venda, distrato, cancelamento e reserva vencida param de ser misturados no mesmo número.
- O mesmo empreendimento tem um id único no comercial e no financeiro.
- A carteira vencida por empreendimento e por cliente sai com o valor certo e sem venda contada duas vezes.
Perguntas de negócio que responde
Faça estas perguntas ao seu agente quando o caso estiver pronto.
O que você precisa
- CV CRM e Sienge (ou UAU) conectados na Nekt
- A lista de empreendimentos com o nome em cada sistema
- A data oficial de lançamento de cada empreendimento, se existir
O que você recebe
- Uma tabela de reservas com situação normalizada e empreendimento canônico
- Uma tabela de estoque por empreendimento com % vendido e VSO
- Uma tabela de parcelas da carteira com status e faixa de atraso
- Um agente de IA que diferencia venda, distrato e proposta perdida
Onde ativar
Por empreendimento: vendido, distratado, líquido, estoque e VSO, com a marca de proxy quando houver.
Responde sobre vendas e carteira separando venda, distrato e proposta perdida.
Lista semanal dos clientes que passaram a acumular duas ou mais parcelas vencidas.
As regras de situação são fechadas. O esforço está no de-para de empreendimentos entre CRM e ERP e na ponte de clientes, que costumam ser manuais. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.
O CRM comercial guarda reservas com dezenas de situações e o ERP guarda contratos e parcelas com outros nomes para o mesmo empreendimento. Quem conta reservas sem normalizar a situação mistura venda com distrato e proposta perdida. No ERP, campos de saldo que vêm vazios e tabelas que espelham vendas vivas fazem a carteira e o total de vendas saírem errados sem nenhum erro aparente.
Como costuma ser feito, e a regra
Cada linha é um erro que já aconteceu na prática.
Venda é situacao = 'VENDIDA', com valor em valor_contrato. Distrato é a venda efetivada e depois desfeita (situacao = 'DISTRATO'). Cancelada é a proposta que caiu antes de virar venda e vencida é a reserva que expirou: as duas são proposta perdida. O resto é em andamento. Use só reservas ativas (ativo = 'S').
O CRM e o ERP escrevem o mesmo empreendimento de forma diferente (nome comercial de um lado, sigla e nome em maiúsculas do outro). Mantenha uma dimensão de empreendimentos com id canônico, nome em cada sistema e uma flag de presença no ERP. Lançamento recente pode ainda não existir no ERP.
Imobiliária, unidade, bloco, empreendimento e corretor chegam com espaços extras e caixa variável. Aplique maiúsculas, trim e espaço único antes de agrupar. As chaves idunidade, idreserva e idempreendimento são locais de cada conta do CRM: em multiempresa, use sempre junto do id da conta.
No estoque, conte como vendida a unidade cuja reserva está em venda ou nas etapas que vêm depois dela (confecção de contrato, envio ao ERP). Unidade bloqueada é uma categoria própria, nem vendida nem disponível. Em revenda, a situação mais recente da revenda sobrepõe a situação original da unidade.
VSO = unidades vendidas acumuladas / (unidades totais x meses de oferta). Meses de oferta vão do lançamento até o mês de referência, contados de forma inclusiva. Se o estoque zerou, o fim é o mês da última venda. Sem data oficial de lançamento, use a primeira venda como proxy e marque o número como proxy.
VGV líquido = VGV vendido menos VGV distratado. Declare a data do distrato usada (data do evento, de cadastro ou da situação atual). Mostre volume e VGV de distrato em separado e diga quando o distrato do mês se refere a uma venda de outro mês.
A venda viva fica em Vendas (Status_Ven = 0). Quitadas e distratadas passam para VendasRecebidas (Status_VRec 3 e 1). VendasRecebidas também guarda um espelho com Status_VRec = 0 de toda venda viva. O universo de vendas é Vendas com status 0 mais VendasRecebidas com status 1 ou 3. A chave é empresa + obra + número da venda.
No Sienge, sienge_customer_debt_balance traz um array installments com status por parcela: Paga, Vencida ou A vencer. Vencido em aberto = soma de originalValue com status Vencida. currentBalance vem vazio ou zerado e não é saldo. Se quiser o valor corrigido (correctedValue), declare e use sempre o mesmo.
Ordene clientes pelo número de parcelas vencidas acumuladas e depois pelo valor. Acúmulo identifica melhor quem parou de pagar do que uma parcela grande atrasada. Distribua o vencido em faixas: acima de 180, 91 a 180, 61 a 90, 31 a 60 e 1 a 30 dias.
O cliente do CRM liga ao do ERP pelo código integrado (idpessoa_int) ou, sem ele, pelo CPF ou nome normalizado. A carteira do ERP também tem sacados que não são compradores de unidade (órgãos públicos, empresas): marque e tire da inadimplência de clientes.
Situação da reserva e da parcela
CV CRM no comercial, Sienge na carteira.
Definições
Armadilhas que já aconteceram
O union de Vendas com VendasRecebidas sem filtro contou cada venda viva duas vezes, porque toda venda viva tem espelho com status 0.
Use só Vendas status 0 e VendasRecebidas status 1 e 3.
A carteira somada por currentBalance deu quase zero em empreendimentos com muitos atrasos.
Some originalValue pelo status da parcela.
Um lançamento novo existia no CRM e ainda não no ERP, e o cruzamento comercial e financeiro o descartava.
Mantenha a flag de presença no ERP e use left join a partir do CRM.
O agente respondeu zero distratos porque olhou só as reservas, e o distrato estava na tabela própria de distratos.
Antes de dizer zero, consulte a fonte de distratos da conta.
A carteira do ERP mostra só o hoje e ninguém conseguia reproduzir o vencido do fechamento anterior.
Grave snapshot mensal append-only da carteira, com a versão do fechamento.
Nome, CPF e renda do comprador acabaram em painel aberto para a equipe de vendas.
Deixe dado pessoal só na tabela de detalhe com acesso restrito.
Teste de aceitação
O caso está pronto quando todos os itens passam.
- Para um empreendimento, vendas + distratos + canceladas + vencidas + em andamento = total de reservas ativas.
- Unidades vendidas + bloqueadas + disponíveis = unidades totais de cada empreendimento.
- O vencido de um empreendimento bate com o relatório de inadimplência do ERP na mesma data de corte (diferença abaixo de 1%).
- Nenhuma venda aparece duas vezes pela chave empresa + obra + número (UAU) ou idreserva (CRM).
- Todo empreendimento do CRM tem id canônico; os que não existem no ERP aparecem com a flag de ausência.
Pacote para o agente
Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.
Vendas, estoque e distratos por empreendimento - Venda = reserva ativa (ativo = 'S') com situacao 'VENDIDA'; valor = valor_contrato. - Distrato = venda efetivada e depois desfeita (situacao 'DISTRATO'). Não é cancelamento. - Proposta perdida = situacao 'CANCELADA' (caiu antes da venda) + 'VENCIDA' (reserva expirou). - Use sempre o id canônico de empreendimento da dimensão de-para CRM e ERP. Nunca junte pelo nome. - VGV líquido = VGV vendido - VGV distratado; diga qual data de distrato foi usada. - VSO = unidades vendidas acumuladas / (unidades totais x meses de oferta). Sem data oficial de lançamento, a primeira venda é o proxy e o VSO é marcado como proxy. - Unidade bloqueada não é vendida nem disponível. - UAU: universo de vendas = Vendas com Status_Ven 0 + VendasRecebidas com Status_VRec 1 (distrato) ou 3 (quitada). Nunca una sem filtro. - Sienge: inadimplência = soma de installments.originalValue com status 'Vencida'. Não use currentBalance. - Cobrança: ordene por número de parcelas vencidas acumuladas, depois por valor. - Antes de responder zero distratos, consulte a tabela de distratos. - Não exponha nome, CPF ou renda de comprador em respostas agregadas. Exceções por cliente: - <cliente>: situações que contam como vendida no estoque: <lista>. - <cliente>: data oficial de lançamento de <empreendimento> = <data>. - <cliente>: valor da carteira reportado = <original ou corrigido>. - <cliente>: venda válida só no bloco <bloco>; bloco <bloco> é de obra e fica fora.
Construa no meu workspace Nekt o caso "Vendas, estoque e distratos por empreendimento" seguindo as regras em https://academy.nekt.com/industrias/imobiliario/vendas-estoque-distratos-empreendimento.md. 1) Encontre as tabelas de origem e confirme as colunas usadas pelas regras. 2) Crie uma transformação no grão indicado aplicando todas as regras. 3) Rode o teste de aceitação e me mostre o resultado de cada item. 4) Crie o context document do caso no workspace, com as exceções dos meus clientes em aberto para eu preencher.
Variações
Dias entre a venda do repasse (cvcrm_repasses.data_venda) e a entrada na etapa em que o banco libera o valor, com teto definido pela incorporadora.
MCMV: lead, agenda, visita, análise de crédito, crédito aprovado, venda. Médio e alto padrão: lead, agenda, visita, proposta, venda.
Distratos por imobiliária, corretor, faixa de renda e tempo desde a venda, com o motivo do distrato.