Skip to main content

Schema

CampoTipoDescrição
channelIdentityIdUUIDv7Identificador único
leadIdUUIDv7FK para Lead
channelenumWHATSAPP, WEB, INSTAGRAM, EMAIL, VOICE, TELEGRAM, SMS
channelIdentifierstringIdentificador específico do canal (telefone, email, cookie ID, etc.), max 255
metadataJSONDados específicos do canal
linkedAtdatetimeQuando esta identidade foi vinculada
Banco de dados: Aurora PostgreSQL (via RDS Proxy). Vive junto com o Lead por ser consultado em joins frequentes durante a resolução de identidade.

Relacionamentos

Regras de Negócio

  • Unique constraint em (channel, channelIdentifier) — um identificador por canal pertence a um único lead
  • Usada para resolução de identidade: dado um canal + identificador, encontrar o lead
  • Um lead pode ter múltiplas identidades em canais diferentes
  • Um lead pode ter múltiplas identidades no mesmo canal (ex: dois números de telefone no WhatsApp)

Resolução de Identidade

A ChannelIdentity é a peça central do mecanismo de identity resolution do domínio Lead. O fluxo funciona assim:
  1. Uma mensagem chega em um canal (ex: WhatsApp) com um identificador (ex: +5511999887766)
  2. O sistema busca na tabela ChannelIdentity por (channel = WHATSAPP, channelIdentifier = +5511999887766)
  3. Se encontrar, retorna o leadId associado — a identidade está resolvida
  4. Se não encontrar, cria um novo Lead e uma nova ChannelIdentity vinculada a ele
Esse mecanismo permite que um lead que fala pelo WhatsApp e depois manda um email seja reconhecido como a mesma pessoa, desde que as identidades tenham sido vinculadas ao mesmo leadId. A vinculação pode ser automática (match por email/telefone) ou manual (operador confirma que são a mesma pessoa).

Exemplo

WhatsApp + Instagram — duas identidades do mesmo lead:
[
  {
    "id": "ci_01HX...",
    "leadId": "lead_01HX...",
    "channel": "WHATSAPP",
    "channelIdentifier": "+5511999887766",
    "metadata": { "profileName": "Maria Santos" }
  },
  {
    "id": "ci_02HX...",
    "leadId": "lead_01HX...",
    "channel": "INSTAGRAM",
    "channelIdentifier": "maria.santos.sp",
    "metadata": { "followersCount": 1250 }
  }
]