Pular para o conteúdo principal

ContentBlockByKey

Descrição​

Retorna o conteúdo de um bloco armazenado no Content Builder, usando a chave (key) do bloco como referência. É a forma mais robusta de reutilizar blocos de conteúdo em e-mails, CloudPages e templates, já que a key não muda mesmo que o bloco seja renomeado ou movido de pasta. Essa função funciona exclusivamente com blocos do Content Builder - para conteúdos do Classic Content, use a função ContentArea.

Sintaxe​

ContentBlockByKey(contentBlockKey)
ContentBlockByKey(contentBlockKey, impressionRegionName)
ContentBlockByKey(contentBlockKey, impressionRegionName, boolErrorOnMissingContentBlock, errorMessage, statusCode)

Parâmetros​

ParâmetroTipoObrigatórioDescrição
contentBlockKeystringSimA chave (key) do bloco de conteúdo no Content Builder que você quer recuperar.
impressionRegionNamestringNãoNome da impression region a ser associada ao bloco de conteúdo inserido.
boolErrorOnMissingContentBlockbooleanNãoSe true, retorna erro caso o bloco não seja encontrado. Se false, não retorna erro. O valor padrão é true.
errorMessagestringNãoConteúdo a ser exibido caso ocorra um erro ao recuperar o bloco.
statusCodenumberNãoCódigo de saída da função. 0 indica que o bloco foi encontrado e renderizado com sucesso. -1 indica que não há conteúdo ou o bloco é inválido.

Exemplo básico​

Inserindo um header padrão reutilizável da Lojas Vitória em um e-mail de boas-vindas:

%%=ContentBlockByKey("header-lojas-vitoria-2024")=%%

<p>Olá, João Silva! Bem-vindo à Lojas Vitória.</p>

%%=ContentBlockByKey("footer-lojas-vitoria-2024")=%%

Saída:

[conteúdo do bloco header-lojas-vitoria-2024]

Olá, João Silva! Bem-vindo à Lojas Vitória.

[conteúdo do bloco footer-lojas-vitoria-2024]

Exemplo avançado​

Cenário real de régua de relacionamento: a MegaStore usa um bloco de conteúdo para o banner promocional do e-mail, mas precisa de um fallback caso o bloco seja removido acidentalmente do Content Builder. O statusCode é usado para exibir conteúdo alternativo:

%%[

VAR @banner, @statusCode

SET @banner = ContentBlockByKey(
"banner-promo-megastore",
"banner-region",
false,
"",
@statusCode
)

IF @statusCode == 0 THEN

]%%

%%=v(@banner)=%%

%%[ ELSE ]%%

<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td style="background-color:#003366; color:#ffffff; text-align:center; padding:20px;">
<h2>MegaStore - Ofertas imperdíveis com até 40% de desconto!</h2>
<p>Parcele em até 10x sem juros. Frete grátis para São Paulo e Rio de Janeiro.</p>
</td>
</tr>
</table>

%%[ ENDIF ]%%

%%=EndImpressionRegion(false)=%%

Saída (bloco encontrado):

[conteúdo do bloco banner-promo-megastore]

Saída (bloco não encontrado):

MegaStore - Ofertas imperdíveis com até 40% de desconto!
Parcele em até 10x sem juros. Frete grátis para São Paulo e Rio de Janeiro.

Observações​

💡 Dica: Prefira ContentBlockByKey em vez de ContentBlockByName ou ContentBlockById. A key é definida na criação do bloco e permanece estável - já o nome pode ser alterado por qualquer usuário e o ID pode variar entre ambientes. Isso torna a key a referência mais confiável para templates de produção.

⚠️ Atenção: Por padrão, o parâmetro boolErrorOnMissingContentBlock é true. Isso significa que se o bloco não existir, o envio do e-mail pode falhar. Em réguas de relacionamento críticas, considere setar esse parâmetro como false e usar o statusCode para controlar o fallback, como no exemplo avançado.

  • O valor 0 no statusCode indica que o bloco foi encontrado e renderizado com sucesso. O valor -1 indica ausência de conteúdo ou bloco inválido.
  • Ao usar o parâmetro impressionRegionName, você inicia uma impression region automaticamente. Use EndImpressionRegion para demarcar o final dessa região.
  • Essa função retorna apenas conteúdo do Content Builder. Para blocos do Classic Content, use ContentArea.

Funções relacionadas​