Como uma concessionária entra numa ação da DEXP: na primeira vez, puxada por uma live da montadora, e nas seguintes, sem depender de evento nenhum. O desenho cobre só gente e conta (gestor, vendedor, concessionária); nada de checkout ou split de pagamento nesta rodada.
O fluxo
Toda ação começa aqui, sazonal ou recorrente.
Montadora
Fecha a ação
Contrata uma campanha com a DEXP pra rede, como a Operação de Vendas VW.
DEXP
Monta a campanha
Marcas, concessionárias (via PDV Automotive), atividades e metas: tudo pronto antes de avisar a rede.
bancotenancy.campaigns.slug, .title
bancotenancy.campaign_dealers (pré-populada, adoption_status = 0)
A loja entra na ação. Dois jeitos de chegar até aqui, o resto é igual pros dois.
Montadora
Anuncia na live
Cola o link de adesão (hash opaco por campanha, não sequencial) no canal que escolher. A DEXP não sabe qual vai ser nem integra com ele.
url{campaign.slug}.dexp.online/adhesion/{campaign_hash}
Gestor
Gerente preenche a adesão
Busca a concessionária (nome ou CNPJ) e confirma. Ainda é uma PROPOSTA, sem boleto: falta a verificação do passo seguinte.
urltest-drive-tukan.dexp.online/adhesion/9f6ab13c
bancocampaign_dealers.adoption_status 0 → 1 (proposta), insere campaign_users (role manager) e core.users se novo
Formulário de adesão
DEXP
Verifica antes de gerar o boleto
Confere se quem confirmou pode mesmo representar a concessionária, antes de existir cobrança em nome dela.
bancocampaign_dealers.adoption_status 1 → 2 (confirmada)
DEXP
Notifica quem já tem conta
E-mail e WhatsApp pros gestores já cadastrados, com hash único da própria concessionária: sem busca.
url{campaign.slug}.dexp.online/adhesion/{dealer_hash}
Gestor
Clica no link, confirma direto
Sem verificação nova: contato e identidade já vieram de uma ação anterior.
bancocampaign_dealers.adoption_status 0 → 2 (confirmada direto, sem passar por "proposta")
Só existe depois da adesão confirmada. Pessoas da loja entram no time, papel por papel.
DEXP
Envia o link de cadastro, depois o boleto
Dois e-mails, em momentos diferentes: o cadastro nunca espera o boleto.
E-mail #1: link de cadastro
Já filtrado só para a(s) loja(s) que ela acabou de aderir. Não depende da verificação: a equipe já pode se cadastrar.
Simple Dealers <no-reply@dexp.online>
Solar Volkswagen aderiu: link de cadastro da equipe
Repasse este link pra sua equipe: vendedor, gerente ou recepção podem se cadastrar por ele.
Abrir link de cadastro app.dexp.online/signup/5b21ffa0E-mail #2: boleto da adesão
Só sai depois que a verificação aprova quem está aderindo.
Equipe da loja
Vendedor, gerente ou recepção se cadastra
Link de cadastro DA PRÓPRIA LOJA: a tela "quem é você" oferece vendedor, gerente (um segundo, além de quem já aderiu) ou recepcionista, sem buscar concessionária, ela já é a mesma do link.
urlapp.dexp.online/signup/5b21ffa0 (por concessionária, não por campanha)
bancoinsere core.users (dedupe por phone/cpf_hash) e campaign_users (role salesperson, manager ou reception)
Cadastro de equipe
Solar Volkswagen, Campinas SP
Gestor de contas
Audita quem virou gerente
Segundo gerente fica ativo na hora, sem trava. O papel do gestor de contas da Simple Dealers não é aprovar antes: é conferir depois se foi mesmo a pessoa certa.
bancocampaign_users.status active (imediato, role manager, sem aprovação prévia)
Time aprovado, campanha rodando: atividade vira ponto, ponto vira posição.
Equipe da loja
Roda a campanha
Executa as atividades, sobe no ranking, resgata prêmios. Montadora e gestor acompanham o mesmo painel.
bancogamification.campaign_user_ledger → campaign_users.points (cache)
Pitwall
hash-23122 seria força-bruta trivial): mesmo padrão não sequencial que funnel.campaign_contacts.public_uuid já usa pra convite de lead.app.dexp.online depois. Adesão acontece sem sessão, então mora em {campaign.slug}.dexp.online junto com confirmação de lead e cartão do vendedor. A troca pra app.dexp.online acontece no instante exato em que o gestor confirma a adesão e uma sessão de verdade começa.adoption_status ganha semântica, com 3 estados. A coluna já existe em campaign_dealers (inteiro, sem enum documentado hoje); a proposta aqui é 0 para convidada, 1 para proposta (formulário preenchido, cadastro de equipe já liberado, ainda sem boleto), 2 para confirmada (verificada, boleto liberado), dá pra medir conversão por live e por notificação, separado, e também taxa de proposta que nunca vira confirmada./adhesion/{hash}) é sobre a LOJA entrar na ação, sem seletor de papel. Cadastro (/signup/{hash}) só existe depois da loja aderida, e é o mesmo link pros três papéis: vendedor, gerente e recepção.