Appearance
Regras de Redirecionamento
O que é o redirecionamento de campanha
Quando um template WhatsApp tem um botão URL de "falar com a loja", a URL usa um token de rastreamento:
https://apicrm.galdix.com.br/go/{token}O servidor resolve o token, decide qual loja contatar, envia mensagens e redireciona o cliente para o WhatsApp da loja via wa.me/{numero}.
Lifetime do token
30 dias desde o envio da campanha. Token expirado → página de erro.
Geração: UUID aleatório por cliente por envio de campanha. Não é reutilizado.
Resolução da loja (prioridade)
O sistema escolhe qual loja receber o cliente na seguinte ordem:
1. Loja fixada no botão do template (campo fixedStoreId)
2. Loja preferida do cliente (Customer.preferredStoreId)
3. Loja e-commerce (Store.isEcommerce = true) — fallback genérico
4. Qualquer loja com WhatsApp configuradoModo Evolution vs. WABA
Com Evolution (loja física)
O cliente é roteado para a instância Evolution da loja → o Evolution envia uma mensagem de saudação → o cliente é redirecionado para o número de WhatsApp da loja.
Mensagens enviadas:
- Via WABA (Meta): Mensagem de confirmação ao cliente (template configurado)
- Variáveis:
,
- Variáveis:
- Via Evolution: Mensagem de saudação da loja (configurada em
redirectGreeting) - Browser: Redireciona para
wa.me/{evolutionNumber}
Sem Evolution (WABA)
Quando não há instância Evolution disponível para a loja selecionada:
- Via WABA: Mensagem "Conectando você com , aguarde... ⏳"
- Background (assíncrono): Cria conversa no Chatwoot, atribui agente, envia saudação
- Browser: Redireciona para
wa.me/{wabaNumber}
O redirect sempre acontece — mesmo se as mensagens falharem.
Opt-out permanente (botão de descadastrar)
Templates podem ter botão de opt-out marcado com isUnsubscribe: true.
URL gerada: /go/unsubscribe/{token} onde {token} é o Customer.whatsappUnsubscribeToken.
Diferença do redirect normal:
- Token de unsubscribe é permanente (nunca expira)
- Um por cliente (não por campanha)
- Ao acessar: define
whatsappOptOut = truepermanentemente
Rastreamento de cliques
Quando o token é resolvido:
CampaignRedirectToken.clickedAt= agoraCampaignRedirectToken.redirectedTo= número da loja selecionada
Essas métricas aparecem no monitoramento de campanhas.
Regras de segurança
- Token não encontrado → erro genérico (não revela se existia)
- Token expirado → erro (sem informação sobre qual campanha)
- Sem lookup brute-force possível (UUID v4, 2^122 combinações)