Skip to content

Whitelabel

O que é Whitelabel?

Whitelabel é uma personalização completa da experiência iFriend que permite a uma agência (affiliate) expor o serviço sob sua própria marca e domínio.

Definição Técnica

  • Whitelabel = customização visual (domínio, cores, logo) de um affiliate
  • Um whitelabel sempre pertence a um affiliate
  • Sem affiliate, não existe whitelabel

Estrutura de Dados

{
  "id": 123,
  "dns_cname": "agencia.example.com",  // Domínio customizado
  "baseurl": "https://agencia.example.com",
  "company": "Agência Exemplo LTDA",
  "affiliate": {
    "id": 456,
    "name": "Agência Exemplo",
    "phone": "+5511999999999",
    "emailComercial": "contato@agencia.com"
  },
  "contact": {
    "contactEmail": "atendimento@agencia.com",
    "contactPhone": "+5511999999999",
    "contactWhatsapp": "+5511999999999"
  },
  "branding": {
    "logo": "https://agencia.com/logo.png",
    "primaryColor": "#FF5733"
  }
}

Campos do Whitelabel

Campo Tipo Descrição
id int ID único
dns_cname str Domínio CNAME (sem https)
baseurl str URL completa
company str Nome da empresa
affiliate obj Dados do affiliate associado
contact obj Dados de contato
branding obj Personalização visual
isActive bool Se está ativo

Campos do Affiliate (dentro de whitelabel)

Campo Tipo Descrição
id int ID do affiliate
name str Nome da agência
phone str Telefone
emailComercial str Email comercial

Campos do Contact

Campo Tipo Descrição
contactEmail str Email de contato
contactPhone str Telefone de contato
contactWhatsapp str WhatsApp (preferencial)
contactPreferredChannel str canal preferido

Campos do Branding

Campo Tipo Descrição
logo str URL do logo
logoFavicon str URL do favicon
primaryColor str Cor primária (hex)
secondaryColor str Cor secundária

Como Funciona a Detecção

1. Via Domínio (HTTP)

1. Usuário acessa https://agencia.example.com
2. Sistema detecta CNAME no header Origin/Referer
3. Busca whitelabel pelo dns_cname
4. Injeta whitelabel no session.state
5. Resposta usa branding do whitelabel

2. Via message_metadata (SDK)

{
  "is_whitelabel": true,
  "whitelabel_baseurl": "https://agencia.example.com"
}

Configuração DNS

agencia.example.com CNAME agents.theifriend.com

Exposição do Agente

Um whitelabel pode expor o agente iFriend:

Modo Descrição
Embed Widget embedado no site do affiliate
Redirect Domínio ponto para agente

Configuração Embed

<script src="https://agents.theifriend.com/widget.js"
  data-whitelabel="agencia"
  data-theme="dark">
</script>

Diferença: Affiliate vs Whitelabel

Aspecto Affiliate Whitelabel
O que é Agência (entidade) Personalização visual
Sempre existe Sim Opcional
Domínio theifriend.com Domínio próprio
Marca iFriend + nome Própria marca
Exposta agente Não Sim
Dados principais Nome, contato, markups Logo, cores, domínio
Identificação Via user email ou partner_code Via DNS ou metadata

Fluxo Completo

Usuário acessa https://agencia.example.com
    │
    ▼
Detecção whitelabel (dns_cname = agencia.example.com)
    │
    ▼
Busca GET /whitelabels?dns.cname=agencia.example.com
    │
    ▼
找到 whitelabel → affiliate.id = 456
    │
    ▼
Busca GET /affiliates/456 → dados do affiliate
    │
    ▼
Session state:
{
  "is_whitelabel": true,
  "whitelabel_baseurl": "https://agencia.example.com",
  "affiliate": {...},
  "contact": {...},
  "branding": {...}
}
    │
    ▼
Resposta customizada:
- Logo da agência no header
- Email com branding da agência
- WhatsApp do affiliate

Uso nos Módulos

1. Detecção de Whitelabel

# messaging/processor.py
message_metadata = {
    "is_whitelabel": detect_from_origin(origin),
    "whitelabel_baseurl": get_baseurl_from_origin(origin)
}

2. Email Branding (prioridade)

## Prioridade (Email Branding)
1. Affiliate (via partner_code no JWT)
   │
2. Whitelabel (via message_metadata)
   │
3. Default (iFriend)

3. Suporte WhatsApp

# Se agency_id == affiliate.id → usa contato do affiliate
# Se agency_id != affiliate.id → usa default iFriend

Variáveis de Ambiente

Variável Descrição
ENABLE_WHITELABEL Habilita detecção por domínio
WHITELABEL_DOMAINS Domínios permitidos (JSON)

API Reference

Buscar por Domínio

GET /whitelabels?dns.cname=agencia.example.com

Listar

GET /whitelabels

Buscar por ID

GET /whitelabels/{id}

Resumo

  • Whitelabel = customização visual + domínio próprio
  • Sempre pertence a um affiliate (agência)
  • Affiliate fornece dados de contato e markups
  • Whitelabel fornece branding visual