scoring/ — eventos Resend/Svix¶
Responsabilidade¶
Receber eventos de email e atualizar score, temperatura, atribuição e supressão dos contatos no CRM Cadencia.
Serviço ativo¶
| Arquivo | Porta | Função |
|---|---|---|
resend_webhook.py | 8767 | recebe Resend/Svix, valida assinatura, deduplica e atualiza Supabase |
O handler antigo da porta 8766 é resíduo histórico e não deve receber tráfego.
Fluxo¶
- valida assinatura Svix;
- deduplica por
svix-id; - normaliza opened/clicked/bounced/complained;
- resolve
tenant_id,contact_idepost_idpelas tags; - usa
GET /emails/{id}como fallback de tags; - atualiza
contactse gravascoring_events; - responde cedo e drena trabalho no shutdown.
Regras¶
- Sem assinatura válida, rejeitar.
- Não confiar na ordem dos eventos.
- Patches concorrentes precisam ser condicionais.
- Bounce/complaint suprimem novos envios.
- Não registrar payloads com PII desnecessária.