Metryca — rastreamento de leads e renovações
Evento de lead, o novo evento de renovação disparado em 3 pontos e o casamento com o lead capturado no front.
Para quê: enviar eventos de lead e de renovação para a plataforma Metryca. Exclusiva do Baita, gated por BAITA_WHITELABELID. Arquivo: metryca.ts.
POST {METRYCA_WEBHOOK_URL}, header access_token: METRYCA_ACCESS_TOKEN. Campos incluídos só se truthy. Se as envs não estiverem configuradas, apenas logger.warn e ignora, sem lançar erro (fire-and-forget).
Evento de lead (sendLeadEvent)
Envia nome, e-mail, telefone e UTMs. Disparado na criação de usuário (UTMs do body) e no webhook PIX de novo cadastro (UTMs do metadata da order Pagar.me).
🟡 Bug corrigido (634ebb0c / 2d3a567f, "metryca-payment-flow-regression"): o evento de lead chegou a disparar para qualquer criação de usuário Baita (cadastro via Manager, integrações, dependentes). Corrigido para disparar apenas dentro da confirmação de pagamento com cartão (createSubscriptionInPaymentGatewayService); o cadastro via PIX dispara separadamente no próprio webhook de confirmação.
🆕 Evento de renovação (sendRenewalEvent)
Payload com is_renewal: true. Não é um endpoint HTTP novo recebendo chamadas: é uma notificação de saída disparada de dentro dos handlers de pagamento já existentes, em 3 pontos:
- 1Reassinatura de cartão no logged-in, quando isRecompra && samePlan (troca de plano não conta como renovação).
- 2Confirmação de PIX pago (handlePixWebhookService).
- 3Recobrança automática de cartão (invoice.paid, wasRecharge = !!currentSubscription.lastChargeAt).
A integração é consumida também por leadSessionId opcional no BaitaPixDto, usado por markLeadConversion para casar o lead capturado no front com a conversão em assinatura.