Pular para o conteúdo principal

Condicionais

Personalização de verdade vai muito além de colocar o primeiro nome no assunto do e-mail. Quando você precisa mostrar um conteúdo diferente para cada perfil de cliente (uma oferta por faixa etária, uma saudação por região, um bloco específico por tipo de plano), é aí que entram as condicionais.

Em AMPScript, o bloco If é a estrutura que permite executar processamento condicional: você define uma condição, e o conteúdo só é renderizado se ela for verdadeira.

Bloco If básico

No mínimo, um bloco If precisa de três palavras-chave:

  • If - vem imediatamente antes da condição que você quer avaliar.
  • Then - vem imediatamente depois da condição.
  • EndIf - fecha o bloco.

Essa é a estrutura mais enxuta possível:

%%[
SET @totalPedido = 1500

IF @totalPedido > 1299 THEN
SET @mensagem = "Você ganhou frete grátis para todo o Brasil!"
ENDIF
]%%

%%=v(@mensagem)=%%

Nesse exemplo, como o valor de @totalPedido (1500) é maior que 1299, a condição é verdadeira e a variável @mensagem recebe o texto sobre frete grátis. Se o valor fosse 800, nada seria exibido - o bloco simplesmente seria ignorado.

💡 Dica: As palavras-chave If, Then e EndIf não são case-sensitive. Ou seja, IF, If e if funcionam exatamente da mesma forma. Escolha um padrão e mantenha consistência no seu código - isso facilita muito a manutenção em equipe.

O que pode entrar na condição

As avaliações dentro de um bloco If aceitam estes tipos de entrada:

  • Constantes - valores fixos como números ou strings (1299, "SP")
  • Variáveis - definidas com SET (como @totalPedido)
  • Atributos e valores de Data Extension - campos do seu modelo de dados
  • Chamadas de função - o retorno de qualquer função AMPScript

Isso dá bastante flexibilidade. Você pode comparar uma variável com uma constante, comparar dois campos de Data Extension entre si, ou usar o resultado de uma função diretamente na condição.

Testando condições adicionais com ElseIf

Use ElseIf quando precisar testar mais de uma condição dentro do mesmo bloco. Você pode incluir múltiplos ElseIf em sequência.

Imagine uma régua de relacionamento da MegaStore onde a oferta muda conforme a faixa etária do cliente:

%%[
SET @idade = 35

IF @idade >= 31 AND @idade <= 40 THEN
SET @oferta = "20% de desconto em eletrônicos - aproveite, é por tempo limitado!"
ELSEIF @idade >= 41 AND @idade <= 50 THEN
SET @oferta = "15% de desconto em eletrodomésticos para renovar sua casa."
ENDIF
]%%

%%=v(@oferta)=%%

Aqui, se @idade for 35, o cliente vê a oferta de eletrônicos. Se for 45, vê a de eletrodomésticos. Para qualquer outro valor fora dessas faixas, nenhuma oferta é exibida.

Capturando tudo o que sobrou com Else

O Else funciona como uma rede de segurança: ele captura qualquer condição que não foi tratada pelos blocos If ou ElseIf anteriores. Você só pode incluir um único Else por bloco.

%%[
SET @idade = 28

IF @idade >= 31 AND @idade <= 40 THEN
SET @oferta = "20% de desconto em eletrônicos!"
ELSEIF @idade >= 41 AND @idade <= 50 THEN
SET @oferta = "15% de desconto em eletrodomésticos!"
ELSE
SET @oferta = "Confira nossas ofertas especiais do mês na MegaStore."
ENDIF
]%%

Olá, João! %%=v(@oferta)=%%

Como @idade é 28 - fora das duas faixas definidas - o bloco Else entra em ação e o cliente recebe a mensagem genérica. Ninguém fica sem conteúdo.

⚠️ Atenção: Você pode ter quantos ElseIf precisar, mas apenas um Else, e ele deve ser sempre o último antes do EndIf. Se você colocar um ElseIf depois do Else, vai ter erro.

💡 Dica: Em campanhas de e-mail com vários perfis de público, o Else é seu melhor amigo. Ele garante que mesmo um registro com dados inesperados receba um conteúdo válido, evitando aquele e-mail com espaço em branco no meio.


Agora que você domina condicionais, o próximo passo é aprender a percorrer conjuntos de dados com Loops. Para revisar como criar e usar as variáveis que aparecem nas condições, volte em Variáveis.