BDS0.1

Deal

Uma proposta, sua oferta, valor negociado e resultado comercial.

Revisado 2026-11-06Markdown

Um Deal representa uma proposta a um cliente e, desde 04/11/2026, é também onde o lead fica: um lead novo é um Deal no estágio Lead. O cliente é Company°, People° ou os dois. Product* seleciona uma Offer de Offer (mirror), não um registro de Product. Offer (Price) é o preço de catálogo; Value* é o valor negociado e pode ser diferente.

Regras e relações

Ligue o cliente em Company°, People° ou nos dois, depois escolha a empresa responsável e uma membership dela. Lead, Contacted, Meeting Scheduled, Pitched, Proposal Sent e Negotiation permanecem abertos; Won, Lost e Abandoned encerram o negócio. Um lead desqualificado é Lost, com o motivo em Notes°. Uma etapa vazia também gera Open em Deal Status. Product*, Value* e Expected Close Date* só são exigidos em Proposal Sent, Negotiation e Won; um lead precisa só do cliente, do par responsável e da etapa. Source° registra como o lead chegou. Encerrar não cria contrato nem fatura.

Os registros da Relationship foram migrados para Deals em 04/11/2026: 476 Deals criados e 3 existentes atualizados. Cada Deal migrado tem a tag relationship-cleanup e, em Legacy Relationship ID, o coreId da Relationship de origem. O fluxo de agendamento do Cal.com cria um Deal em Meeting Scheduled, ou passa de Lead ou Contacted para Meeting Scheduled o Deal aberto da pessoa com o mesmo vendedor. A tabela Relationship foi apagada no mesmo dia, junto com os campos do Deal que apontavam para ela (Relationship*, seus lookups e Attribution Relationship Count).

Expected Close Date* é uma previsão, não prova de aceite. Campaign° liga a campanha do Core de onde o lead veio, pelo espelho Campaign; deixe vazio quando o lead não veio de campanha. O resultado por campanha são os Deals ligados a ela, listados em Deals (Campaign) no espelho Campaign, e cada Interaction do Deal mostra a mesma campanha no lookup Campaign. A tabela Campaign Participation e seus campos no Deal (Campaign Participation°, o lookup Campaign, Participation Relationship UUID, Participation Key, Participation Duplicates, Participation Count e Campaign Attribution Check) foram apagados em 04/11/2026. O fluxo do Cal.com não preenche Campaign°. Este escopo não tem tabela de itens, geração de contrato ou fluxo de pagamento verificado. A formatação monetária usa $; o valor isolado não normaliza moedas nem unidades de cobrança.

Campos

Campo Armazenamento Configuração atual
Name Fórmula Calculado; veja as regras abaixo.
Product* Registros vinculados Offer (mirror); Seletor de vários registros
Offer (Price) Consulta vinculada Por Product* → Price*
Value* Valor monetário $
Notes° Texto longo Valor armazenado ou auditoria do sistema; edite conforme o fluxo.
Deal # Número sequencial Valor armazenado ou auditoria do sistema; edite conforme o fluxo.
Accountable (Person)* Registros vinculados People; Seletor de vários registros
Deal Stage* Seleção única Lead, Contacted, Meeting Scheduled, Pitched, Proposal Sent, Negotiation, Won, Lost, Abandoned
Expected Close Date* Data Valor armazenado ou auditoria do sistema; edite conforme o fluxo.
Deal Status Fórmula Calculado; veja as regras abaixo.
Intake Step Fórmula Calculado; veja as regras abaixo.
Deal Check Fórmula Calculado; veja as regras abaixo.
Offer (Item) Consulta vinculada Por Product* → Item (Name)
Offer (Unit) Consulta vinculada Por Product* → Unit*
Auth User Consulta vinculada Por Accountable (Person)* → Account Binding
Interactions Registros vinculados Interaction; Seletor de vários registros
Accountable (Company)* Registros vinculados Companies; Seletor de vários registros
Accountable (Person Companies) Consulta vinculada Por Accountable (Person)* → Companies
Owner Email Consulta vinculada Por Accountable (Person)* → Company Email (from Memberships)
Created By Criado por Valor armazenado ou auditoria do sistema; edite conforme o fluxo.
Created At Data de criação Valor armazenado ou auditoria do sistema; edite conforme o fluxo.
Record health Fórmula Calculado; veja as regras abaixo.
Health check Fórmula Calculado; veja as regras abaixo.
Contact Email Consulta vinculada Por People° → Email
Open send mail link Botão Abre o Gmail em compose com Contact Email como destinatário
Accountable (Membership)* - to delete (deprecated) Registros vinculados Membership (mirror); Descontinuado desde 06/11/2026; somente leitura até ser apagado, substituído por Accountable (Person)*
Accountable (Person) lookup - to delete (deprecated) Consulta vinculada Por Accountable (Membership)* → Member; Descontinuado desde 06/11/2026; somente leitura até ser apagado
Auth User (Membership) - to delete (deprecated) Consulta vinculada Por Accountable (Membership)* → Auth User; Descontinuado desde 06/11/2026; somente leitura até ser apagado
Owner Email (Membership) - to delete (deprecated) Consulta vinculada Por Accountable (Membership)* → Company Email; Descontinuado desde 06/11/2026; somente leitura até ser apagado
Accountable (Business Unit) - to delete (deprecated) Consulta vinculada Por Accountable (Membership)* → Business Unit; Descontinuado desde 06/11/2026; somente leitura até ser apagado, substituído por Accountable (Person Companies)
Team (Accountable<membership>) - to delete (deprecated) Consulta vinculada Por Accountable (Membership)* → Teams; Descontinuado desde 06/11/2026; somente leitura até ser apagado
Tags Registros vinculados Tags; Seletor de vários registros
Notes Registros vinculados Tabela Notes; Seletor de vários registros
Tasks Registros vinculados Tasks; Seletor de vários registros
Company° Registros vinculados Companies; Seletor de vários registros. A empresa cliente; deixe vazio quando o lead é uma pessoa ainda sem empresa
People° Registros vinculados People; Seletor de vários registros. O contato principal
Source° Seleção única Referral, Networking Event, Inbound, Cold Outreach, Existing Relationship
Campaign° Registros vinculados Campaign; Seletor de vários registros. Liga a campanha de onde o lead veio, por exemplo um evento ou uma landing page. Escolha uma campanha quando o lead pertence a uma; senão deixe vazio. Uma campanha que falta é criada no Core, não aqui
Legacy Relationship ID Texto de uma linha coreId da Relationship de onde este Deal foi migrado em 04/11/2026; vazio nos Deals criados depois. Não edite

Regras calculadas

As expressões abaixo usam nomes de campos para facilitar a leitura. Filtros e checks orientam o trabalho; não são controles de acesso. O Name lê Company° e People°, e cai para “No client”. O Intake Step fica vazio num Deal encerrado; Deal - 1 não tem cliente, Deal - 2 não tem o par responsável, Deal - 3 está em Proposal Sent ou Negotiation sem Product*, Value* ou Expected Close Date*, e Deal - 4 está completo. O Deal Check só avisa sobre responsável incoerente, e data prevista de fechamento vencida num Deal aberto.

Name

IF(AND({Company°}, {People°}), ARRAYJOIN({Company°}, ", ") & " - " & ARRAYJOIN({People°}, ", "), IF({Company°}, ARRAYJOIN({Company°}, ", "), IF({People°}, ARRAYJOIN({People°}, ", "), "No client"))) & IF(ARRAYJOIN({Offer (Item)}) != "", " - " & ARRAYJOIN({Offer (Item)}), "") & " - #" & {Deal #}

Deal Status

SWITCH({Deal Stage*}, "Won", "Won", "Lost", "Lost", "Abandoned", "Abandoned", "Open")

Intake Step

IF({Deal Status} != "Open", "",
IF(AND({Company°} = BLANK(), {People°} = BLANK()), "Deal - 1",
IF(OR({Accountable (Company)*} = BLANK(), {Accountable (Person)*} = BLANK()), "Deal - 2",
IF(AND(OR({Deal Stage*} = "Proposal Sent", {Deal Stage*} = "Negotiation"), OR({Product*} = BLANK(), {Value*} = BLANK(), {Expected Close Date*} = BLANK())), "Deal - 3",
"Deal - 4"))))

Deal Check

IF(AND({Accountable (Company)*}, {Accountable (Person)*}, FIND(ARRAYJOIN({Accountable (Company)*}), ARRAYJOIN({Accountable (Person Companies)}, ", ")) = 0), "⚠ Accountable person has no membership in the accountable company. ", "") &
IF(AND({Deal Status} = "Open", {Expected Close Date*}, IS_BEFORE({Expected Close Date*}, TODAY())), "⚠ Expected close date has passed; update it or close the deal. ", "")

Record health

SUM(
IF(OR(COUNTA({Company°})>0, COUNTA({People°})>0),1,0),
IF(COUNTA({Accountable (Company)*})>0,1,0),
IF(COUNTA({Accountable (Person)*})>0,1,0),
IF({Deal Stage*},1,0),
IF(OR({Value*}, NOT(OR({Deal Stage*}="Proposal Sent", {Deal Stage*}="Negotiation", {Deal Stage*}="Won"))),1,0),
IF(OR(COUNTA({Product*})>0, NOT(OR({Deal Stage*}="Proposal Sent", {Deal Stage*}="Negotiation", {Deal Stage*}="Won"))),1,0),
IF(OR({Expected Close Date*}, NOT(OR({Deal Stage*}="Proposal Sent", {Deal Stage*}="Negotiation", {Deal Stage*}="Won"))),1,0)
)/7

Health check

IF(
  AND(
    OR(COUNTA({Company°})>0, COUNTA({People°})>0),
    COUNTA({Accountable (Company)*})>0,
    COUNTA({Accountable (Person)*})>0,
    {Deal Stage*},
    OR(NOT(OR({Deal Stage*}="Proposal Sent", {Deal Stage*}="Negotiation", {Deal Stage*}="Won")), AND({Value*}, COUNTA({Product*})>0, {Expected Close Date*}))
  ),
  "✅",
  "Missing: " & REGEX_REPLACE(
    CONCATENATE(
      IF(OR(COUNTA({Company°})>0, COUNTA({People°})>0), "", "Company or People, "),
      IF(COUNTA({Accountable (Company)*})>0, "", "Accountable (Company), "),
      IF(COUNTA({Accountable (Person)*})>0, "", "Accountable (Person), "),
      IF({Deal Stage*}, "", "Deal Stage, "),
      IF(OR({Deal Stage*}="Proposal Sent", {Deal Stage*}="Negotiation", {Deal Stage*}="Won"),
        IF({Value*}, "", "Value, ") & IF(COUNTA({Product*})>0, "", "Product, ") & IF({Expected Close Date*}, "", "Expected Close Date, "), "")
    ),
    ", $", ""
  )
)

Próximos passos

Abrir o guia da tarefa · Encontrar a view