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,TheneEndIfnão são case-sensitive. Ou seja,IF,Ifeiffuncionam 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
ElseIfprecisar, mas apenas umElse, e ele deve ser sempre o último antes doEndIf. Se você colocar umElseIfdepois doElse, 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.