Pular para o conteúdo principal

Variaveis Dinamicas

Variaveis dinamicas permitem personalizar suas mensagens com dados especificos de cada usuario, tornando a comunicacao mais relevante e pessoal.

Sintaxe Basica

Variaveis sao inseridas com duplas chaves:

{{variavel}}

Exemplo:

Ola {{contact.firstName}}, tudo bem?

Resultado:

Ola Maria, tudo bem?

Categorias de Variaveis

Variaveis de Contato

Dados do perfil do usuario:

VariavelDescricaoExemplo
{{contact.firstName}}Primeiro nomeMaria
{{contact.lastName}}SobrenomeSilva
{{contact.email}}Emailmaria@email.com
{{contact.phone}}Telefone+5511999999999
{{contact.city}}CidadeSao Paulo
{{contact.state}}EstadoSP
{{contact.country}}PaisBrasil
{{contact.createdAt}}Data de cadastro2024-01-15

Variaveis de Propriedades Customizadas

Campos customizados definidos no seu sistema:

{{contact.plano}}
{{contact.empresa}}
{{contact.cargo}}
{{contact.ltv}}

Variaveis de Evento

Quando a mensagem e disparada por um evento, acesse suas propriedades:

{{event.productName}}
{{event.productId}}
{{event.value}}
{{event.category}}
{{event.quantity}}

Exemplo completo:

Voce adicionou {{event.productName}} ao carrinho!
Valor: {{event.value}}
Quantidade: {{event.quantity}}

Variaveis de Campanha

Informacoes da campanha/jornada:

VariavelDescricao
{{campaign.name}}Nome da campanha
{{campaign.unsubscribeUrl}}Link de descadastro
{{campaign.viewInBrowserUrl}}Ver no navegador
{{campaign.preferencesUrl}}Preferencias de email

Variaveis de Data/Hora

VariavelDescricaoExemplo
{{currentDate}}Data atual2024-12-15
{{currentTime}}Hora atual14:30
{{currentYear}}Ano atual2024
{{currentMonth}}Mes atual12

Formatadores

Datas

Formate datas para exibicao:

{{formatDate contact.createdAt "dd/MM/yyyy"}}
→ 15/01/2024

{{formatDate contact.createdAt "dd 'de' MMMM 'de' yyyy"}}
→ 15 de Janeiro de 2024

{{formatDate event.timestamp "HH:mm"}}
→ 14:30

Padroes disponiveis:

PadraoDescricaoExemplo
ddDia (2 digitos)15
MMMes (2 digitos)01
MMMMes abreviadoJan
MMMMMes completoJaneiro
yyyyAno (4 digitos)2024
yyAno (2 digitos)24
HHHora (24h)14
hhHora (12h)02
mmMinutos30
ssSegundos45

Numeros e Moedas

{{formatNumber event.quantity}}
→ 1.234

{{formatCurrency event.value "BRL"}}
→ R$ 1.234,56

{{formatCurrency event.value "USD"}}
→ $1,234.56

{{formatPercent event.discount}}
→ 15%

Texto

{{uppercase contact.firstName}}
→ MARIA

{{lowercase contact.email}}
→ maria@email.com

{{capitalize contact.city}}
→ Sao Paulo

{{truncate event.description 50}}
→ Este e um texto longo que sera cortado apos...

Condicionais

If/Else Basico

{{#if contact.firstName}}
Ola {{contact.firstName}}!
{{else}}
Ola!
{{/if}}

Comparacoes

{{#if (eq contact.plano "premium")}}
Voce tem acesso exclusivo!
{{else}}
Faca upgrade para premium.
{{/if}}

Operadores disponiveis:

OperadorDescricaoUso
eqIgual(eq a b)
neDiferente(ne a b)
gtMaior que(gt a b)
gteMaior ou igual(gte a b)
ltMenor que(lt a b)
lteMenor ou igual(lte a b)

Multiplas Condicoes

{{#if (and (eq contact.plano "premium") (gt contact.ltv 1000))}}
Voce e um cliente VIP!
{{else if (eq contact.plano "premium")}}
Voce e premium!
{{else}}
Conheca nossos planos premium.
{{/if}}

Verificar Existencia

{{#if contact.phone}}
Seu telefone: {{contact.phone}}
{{else}}
Adicione seu telefone para ofertas exclusivas.
{{/if}}

Loops

Iterar sobre Lista

{{#each event.items}}
- {{this.name}}: {{formatCurrency this.price "BRL"}}
{{/each}}

Resultado:

- Camiseta: R$ 59,90
- Calca: R$ 129,90
- Tenis: R$ 299,90

Com Indice

{{#each event.items}}
{{@index}}. {{this.name}}
{{/each}}

First e Last

{{#each event.items}}
{{#if @first}}Primeiro item: {{/if}}
{{this.name}}
{{#if @last}}(ultimo){{/if}}
{{/each}}

Valores Padrao (Fallback)

Default Simples

{{default contact.firstName "Cliente"}}

Se firstName nao existir, usa "Cliente".

Com Condicional

{{#if contact.firstName}}
{{contact.firstName}}
{{else}}
Prezado Cliente
{{/if}}

Exemplos Praticos

Email de Boas-Vindas

Ola {{default contact.firstName ""}},

Seja bem-vindo ao NotifyChain!

{{#if contact.company}}
Vimos que voce trabalha na {{contact.company}}.
Temos casos de sucesso no seu setor!
{{/if}}

Seu cadastro foi realizado em {{formatDate contact.createdAt "dd/MM/yyyy"}}.

[Comecar Agora]

{{#if (eq contact.source "indicacao")}}
PS: Obrigado por aceitar a indicacao! Voce e seu amigo ganharao beneficios.
{{/if}}

Confirmacao de Pedido

Ola {{contact.firstName}},

Seu pedido #{{event.orderId}} foi confirmado!

Itens:
{{#each event.items}}
{{this.quantity}}x {{this.name}} - {{formatCurrency this.price "BRL"}}
{{/each}}

Subtotal: {{formatCurrency event.subtotal "BRL"}}
{{#if event.discount}}
Desconto: -{{formatCurrency event.discount "BRL"}}
{{/if}}
Frete: {{formatCurrency event.shipping "BRL"}}
Total: {{formatCurrency event.total "BRL"}}

Previsao de entrega: {{formatDate event.estimatedDelivery "dd/MM/yyyy"}}

Endereco de entrega:
{{event.address.street}}, {{event.address.number}}
{{event.address.city}} - {{event.address.state}}
CEP: {{event.address.zipCode}}

[Acompanhar Pedido]

Email de Reengajamento

{{contact.firstName}}, sentimos sua falta!

Faz {{daysSince contact.lastLoginAt}} dias que voce nao nos visita.

{{#if (gt contact.ltv 500)}}
Como um dos nossos melhores clientes, preparamos uma oferta especial:
20% OFF em qualquer compra com o cupom VOLTEI20
{{else}}
Preparamos uma oferta para voce voltar:
10% OFF na sua proxima compra com o cupom VOLTEI10
{{/if}}

{{#if contact.lastPurchaseCategory}}
Temos novidades em {{contact.lastPurchaseCategory}} que voce vai adorar!
{{/if}}

[Ver Novidades]

Debugging

Testar Variaveis

Use o preview com dados de teste:

  1. Clique em Preview
  2. Edite os dados de teste
  3. Verifique se as variaveis renderizam corretamente

Variaveis Indefinidas

Se uma variavel nao existe:

  • Sem fallback: Aparece vazio
  • Com fallback: Usa o valor padrao

Log de Erros

Variaveis com erro de sintaxe aparecem como:

{{erro de sintaxe}}

Verifique:

  • Chaves fechadas corretamente
  • Nome da variavel correto
  • Formatadores com sintaxe correta

Boas Praticas

Sempre Use Fallback

Para campos opcionais, sempre defina um valor padrao.

Teste com Dados Reais

Use dados de usuarios reais (com consentimento) para testar.

Mantenha Simples

Evite logica muito complexa em templates. Se necessario, calcule valores no backend.

Dados Sensiveis

Nunca inclua senhas, tokens ou dados financeiros sensiveis em emails.