Adicionar conteúdo dinâmico a mensagens de email
Importante
Este artigo se aplica somente a marketing de saída, que será removido do produto em 30 de junho de 2025. Para evitar interrupções, faça a transição para viagens em tempo real antes desta data. Mais informações: Visão geral da transição
Aviso
Se você estiver usando segurança em nível de campo para alguns dos seus campos de e-mail, deverá adicionar as permissões corretas ou Customer Insights - Journeys não poderá processar seu e-mail.
Para configurar a segurança em nível de campo:
- No canto superior direito, Select o ícone Configurações e depois Select Configurações avançadas.
- Na seção Sistema , Select Segurança.
- Select Perfis de segurança de coluna.
- Para criar um novo perfil de Segurança de Campo, Select Novo Perfil e insira um nome na seção Geral.
- Na seção Usuários , adicione o usuário do sistema: "# D365 Marketing Core Sending".
- Na seção Permissões de campo , adicione permissão de Leitura a todos os campos obrigatórios.
O conteúdo dinâmico é resolvido imediatamente antes de uma mensagem ser enviada para um indivíduo específico. Normalmente, você usa o conteúdo dinâmico para mesclar informações do registro do contato do destinatário, como nome e sobrenome, para inserir links especiais e inserir informações e links das configurações de conteúdo. Se você estiver familiarizado com trabalhos com código, também poderá criar uma lógica personalizada que inclua instruções condicionais, loops for-each e muito mais. Você pode usar o conteúdo dinâmico em qualquer ponto no corpo da mensagem e também pode usar alguns tipos de valores dinâmicos nos campos do cabeçalho da mensagem (assunto, endereço do remetente e nome).
Usar as configurações de conteúdo para configurar repositórios de valores padrão e obrigatórios para mensagens de email
As configurações de conteúdo são conjuntos de valores padrão e obrigatórios que estão disponíveis para uso em emails de marketing. Cada um inclui um link da central de assinaturas, um link de encaminhamento para um amigo, links de mídia social, seu endereço postal e outras informações que podem ser colocadas na mensagem como valores dinâmicos usando o recurso personalização.
O Dynamics 365 Customer Insights - Journeys é fornecido com um único registro padrão de configurações de conteúdo, que é pré-configurado para usar a central de assinaturas padrão, também pronta para uso. Você pode personalizar esse registro conforme necessário e também pode criar registros adicionais. Você configura cada jornada do cliente para usar um registro de configurações de conteúdo específico, o que significa que todas as mensagens enviadas pela jornada usarão o mesmo registro. No entanto, cada jornada pode usar um registro diferente, o que significa que você pode usar um design de email de marketing idêntico em duas ou mais jornadas do cliente, cada uma especificando um registro diferente de configurações de conteúdo. Se você tiver mais de um registro das configurações de conteúdo, exatamente um deles será o padrão e será aplicado automaticamente a cada nova jornada do cliente criada.
Os valores das configurações de conteúdo são primeiramente avaliados no momento do envio, o que significa que você pode editar um registro de configurações de conteúdo a qualquer momento. Todas as mensagens de email pendentes e futuras usarão automaticamente os valores mais recentes.
Cada registro de configurações de conteúdo usado deve ser disponibilizado para serviços de marketing externos, que gerenciam o assembly e a entrega de emails. Portanto, você deverá publicar os registros de configurações de conteúdo escolhendo Ativar sempre que criar um novo registro.
Nota
Se tiver outros tipos de valores que usa com frequência em mensagens de email, e/ou que deseja gerenciar no nível de jornada do cliente, então você pode adicioná-los como campos personalizados à entidade de configurações de conteúdo assim como pode para outros tipos de entidades no Dynamics 365. No entanto, na versão atual, todos os campos personalizados para a entidade de configurações de conteúdo devem ser de texto digitado (string). Mais informações: Como personalizar o Customer Insights - Journeys
Para exibir, editar ou criar um registro de configurações de conteúdo:
Acesse Marketing de saída>Modelos de marketing>Configurações de Conteúdo.
Uma página de lista padrão é aberta, na qual é possível exibir, classificar, pesquisar e filtrar a lista para localizar um registro específico e usar botões na barra de comandos para adicionar ou remover um registro. Selecione um registro para abri-lo para editar ou selecionar Novo na barra de comandos para criar um novo registro.
O formulário Configurações de Conteúdo é aberto. Se você estiver editando um registro que já esteja ativo, escolha Editar na barra de comandos para poder editá-lo. Se estiver criando um novo registro, comece preenchendo os campos.
Defina as seguintes configurações, conforme necessário:
- Nome: insira um nome para o registro de configurações do cliente. Esse é o nome exibido quando você atribui configurações de conteúdo a uma jornada do cliente ou à visualização de uma mensagem de email.
- Proprietário: Mostra o usuário do Dynamics 365 Customer Insights - Journeys que criou o registro.
- Endereço principal: insira a parte principal do endereço postal da organização. Todas as mensagens de email de marketing devem incluir um endereço principal válido obtido de um registro de configurações de conteúdo. Select o botão para usar a personalização para inserir uma expressão que faz referência a um campo de um registro existente (como um campo de endereço de um registro de conta específico).
- Linha de endereço 2: insira informações complementares do endereço postal (se necessário). Select o botão para usar a personalização para inserir uma expressão que faz referência a um campo de um registro existente (como um campo de endereço de um registro de conta específico).
- Padrão: defina como Sim para que as configurações de conteúdo atuais registrem o padrão para todas as novas jornadas do cliente. Deve sempre haver exatamente um padrão. Se você alterar o padrão, o padrão existente será automaticamente alterado para Não.
- Padrão para unidade de negócios própria: essa configuração está disponível somente quando a opção escopo da unidade de negócios está ativada. Defina-a como Sim para que as configurações de conteúdo atuais registrem o padrão para todas as novas jornadas do cliente. Deve sempre haver exatamente uma configuração de conteúdo padrão para o escopo da unidade de negócios. Se você alterar o padrão, o padrão existente será automaticamente alterado para Não.
- URL do LinkedIn, URL do Twitter, URL do Facebook, URL do Instagram, URL do YouTube e URL do Google Plus: para cada um desses serviços de rede social, insira a URL da página de aterrissagem da organização.
-
Central de assinaturas: especifique uma página de marketing existente configurada como uma central de assinaturas. Todas as mensagens de email de marketing devem incluir um link válido da central da assinaturas obtido de um registro de configurações de conteúdo. Select o botão para usar a personalização para inserir uma expressão que faça referência ao campo URL da página completa para a página específica que você deseja usar. A expressão resultante será mais ou menos assim (onde o GUID varia com base no registro que você escolher usando a personalização):
{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
-
Encaminhar para um amigo: especifique uma página de marketing existente registrada como uma página de encaminhamento para um amigo. Select o botão para escolher em uma lista de páginas disponíveis. Select o botão para usar a personalização para inserir uma expressão que faça referência ao campo URL da página completa para a página específica que você deseja usar. A expressão resultante será mais ou menos assim (onde o GUID varia com base no registro que você escolher usando a personalização):
{{msdyncrm_marketingpage(36458a9e-72af-e911-a859-000d3a3159df).msdyncrm_full_page_url}}
Selecione Salvar no canto inferior direito da janela para salvar as configurações.
Se você estiver editando um registro de configurações de conteúdo que já esteja ativo, o registro será republicado automaticamente quando você salvá-lo. Se estiver criando um novo registro, selecione Ativar na barra de comandos para publicá-lo nos serviços de marketing para começar a usá-lo.
Usar a personalização para posicionar valores de campo dinâmico
A personalização ajuda a criar expressões dinâmicas válidas para posicionar valores de campo dos registros de contato do destinatário, as configurações de conteúdo da mensagem e outros valores do banco de dados. Esse botão é fornecido na barra de ferramentas de formatação de texto sempre que você seleciona um elemento de texto no designer gráfico. O botão também é fornecido para alguns campos de configuração, como assunto, endereço e nome.
Nota
O diálogo de personalização mostra somente as entidades e relações que foram sincronizadas com o serviço de insights de marketing. Se for necessário mostrar informações ou usar relacionamentos de uma ou mais entidades que não estão listadas, peça ao administrador para adicionar entidades relevantes ao serviço de insights de marketing. Se for um administrador, consulte Escolher entidades para sincronizar com o serviço de insights de marketing para obter instruções. A entidade proprietária não tem mais suporte para personalização de e-mail. Substitua-o pela entidade systemuser ou team , dependendo de qual entidade representa o proprietário do registro.
Usar a personalização para inserir uma expressão dinâmica
Para usar a personalização:
Posicione o cursor no campo ou elemento de texto onde deseja inserir o texto dinâmico e, em seguida, Select o botão Personalização . O diálogo de personalização será aberto.
Siga um destes procedimentos:
- Selecione Conteúdo dinâmico para inserir um valor que pode ser alterado com base no contexto em que a mensagem for usada, e escolha uma das opções a seguir nesta lista suspensa:
- Contato: insere um valor de campo, como um nome, a partir do registro de contato do destinatário. Esses valores podem variar por destinatário.
- ContentSettings: insere um valor de campo a partir das configurações de conteúdo. Valores como a URL da Central de Assinaturas, a URL de encaminhamento e o endereço postal do remetente estão disponíveis aqui. Esses valores podem variar de acordo com a jornada do clientes em que a mensagem é usada.
- FormDoiSubmission: insere um campo dinâmico para aceitação dupla de formulário. Este campo não requer um valor de relacionamento, conforme discutido abaixo.
- Mensagem: insere valores relativos à própria mensagem. No momento, isso inclui a URL aberta como página da Web e os diversos valores dinâmicos usados em emails de aceitação dupla.
- Selecione Conteúdo estático para inserir um valor fixo de um determinado registro (como o nome de um evento futuro). Esse valor será o mesmo, independentemente de onde você usar a mensagem ou de quem recebê-la. Depois, defina as configurações a seguir para identificar e a entidade e o registro que contenham o valor de que você precisa:
- Selecionar uma opção (caixa de combinação superior): selecione a entidade (por exemplo, o evento ou a conta.) Para pesquisar outra entidade, coloque o cursor nesta caixa e comece a digitar o nome dela até que a entidade desejada seja exibida.
- Escolher um registro (lista suspensa inferior): selecione o registro específico pelo nome. A lista mostra todos os registros da entidade selecionada. Como ocorre com a entidade, também é possível pesquisar aqui.
- Selecione Conteúdo dinâmico para inserir um valor que pode ser alterado com base no contexto em que a mensagem for usada, e escolha uma das opções a seguir nesta lista suspensa:
Agora você deve identificar o campo específico que deseja inserir. Siga um destes procedimentos:
- Selecione Entidade relacionada para encontrar um campo de uma entidade que esteja relacionado àquela escolhida na página anterior. Depois, defina as configurações a seguir para identificar a relação e o campo que você deseja exibir:
- Selecionar relacionamento: o relacionamento define para qual segunda entidade você deseja ir e o caminho que você adotará para chegar lá. Para pesquisar um relacionamento, coloque o cursor nesta caixa e comece a digitar o nome dele até que o relacionamento desejado seja exibido e, então, selecione-o. Para obter mais informações sobre como entender a forma como os relacionamentos são representados aqui, consulte a próxima seção.
- Selecionar campo: escolha o nome do campo que você deseja exibir. Como ocorre com o relacionamento, também é possível pesquisar aqui. Esta lista suspensa só estará disponível se você tiver escolhido um relacionamento N:1.
- Selecione Entidade relacionada para encontrar um campo de uma entidade que esteja relacionado àquela escolhida na página anterior. Depois, defina as configurações a seguir para identificar a relação e o campo que você deseja exibir:
Na parte inferior da caixa de diálogo, agora você verá a expressão final. Selecione Inserir para inserir essa expressão.
Importante
Listas criadas usando loops for-each não são renderizadas em uma ordem específica e não podem ser classificadas por campo.
Como a personalização apresenta os relacionamentos do banco de dados
Quando você estiver selecionando um relacionamento na personalização, as opções serão exibidas usando uma das seguintes convenções de nomenclatura:
-
FieldName (PrimaryEntity) -> SecondaryEntity
Quando a entidade principal estiver entre parênteses e mostrar um nome de campo, será uma relação (N:1) muitos para um (N:1) que conduzirá a um registro único da entidade secundária. Entretanto, você deve usar a lista segunda lista suspensa para escolher um campo da entidade secundária para exibir com sua expressão. -
PrimaryEntity -> FieldName (SecondaryEntity)
Quando a entidade secundária estiver entre parênteses e mostrar um nome de campo, será um relacionamento (1:N) um para muitos que pode conduzir a vários registros da entidade secundária. Portanto, você não pode escolher um campo (a segunda lista suspensa é desativada) e deve usar este relacionamento como parte de um para/cada loop para exibir formulário de valores de cada registro relacionado disponível. -
PrimaryEntity -> SecondaryEntity
Quando nenhuma entidade estiver entre parênteses, será um relacionamento (N:N) muitos para muitos que pode conectar vários registros em ambas direções. Portanto, não é possível escolher um campo (a segunda lista suspensa está desabilitada) e nem usar esse relacionamento para personalização. Isso ocorre porque o relacionamento é mantido por uma entidade intermediária e você só pode passar para a entidade intermediária a partir da entidade primária.
Onde:
- PrimaryEntity é uma entidade no lado inicial do relacionamento. É sempre mostrado no lado esquerdo da seta. É a entidade escolhida na página anterior do diálogo de personalização. Por exemplo, um Contato (entidade principal) pode estar relacionado a uma Conta (entidade secundária) através do campo de contato Nome da Empresa (nome do campo); isso seria mostrado como: Nome da Empresa (Contato) -> Conta.
- FieldName é sempre exibido ao lado do nome da entidade (que está entre parênteses). É o nome do campo através do qual a relação é estabelecida. O campo nomeado pertence à entidade entre parênteses e exibe um valor da entidade do outro lado da seta (mas na verdade contém o ID do registro relacionado do qual o valor é extraído). Em alguns casos, você notará um relacionamento entre as mesmas duas entidades, e cada uma delas flui para um campo diferente.
- SecondaryEntity é o destino do relacionamento. É sempre mostrado no lado direito da seta. Os valores que você exibir com sua expressão final serão provenientes de um campo que pertence à entidade secundária.
Nota
Para relacionamentos N: N, nenhum valor de campo é mostrado. Isso significa que se você tiver mais de um relacionamento N:N entre duas entidades, você verá vários relacionamentos semelhantes na lista suspensa. Esta situação é bastante incomum, mas se passar por ela, você terá que usar avaliação e erro para identificar a relação correta a ser usada. Para confirmar, você pode verificar a expressão resultante para ver se parece com o relacionamento correto (os relacionamentos são mostrados de forma diferente aqui e podem fornecer uma pista) ou configurar uma mensagem de teste que inclua as duas versões do relacionamento N:N e usar uma jornada de teste do cliente para entregá-la você mesmo.
Aqui estão alguns exemplos:
- Nome da Empresa (Contato) -> Conta: Este relacionamento é usado pela entidade Contato para exibir informações da entidade Conta em um campo Nome da Empresa do registro de contato. Em outras palavras, ele vincula a empresa (conta) para a qual o contato trabalha.
- Parceiro de Gerenciamento (Contato) -> Conta: Este relacionamento é usado pela entidade Contato para exibir informações da entidade Conta em um campo Parceiro de Gerenciamento do registro de contato. Em outras palavras, vincula-se a empresa (conta) que é o parceiro de gerenciamento de um contato.
- Contato-> Contato principal (Conta): Este relacionamento é usado pela entidade Conta para exibir informações da entidade Contato no campo Contato Principal do registro da conta. Em outras palavras, ele encontra todas as contas em que o contato atual é atribuído como o contato principal.
- Contato -> Contato (Registro de Evento): Este relacionamento é usado pela entidade Registro de Evento para exibir informações da entidade Contato em um campo Contato do registro do evento. Em outras palavras, ele encontra todos os registros de eventos feitos por (ou para) o contato atual.
Expressões criadas pela personalização
A personalização cria uma expressão que usa um formato semelhante ao seguinte:
{{EntityName.FieldName}}
{{EntityName(RecordID).FieldName}}
{{EntityName.RelationshipName.FieldName}}
{{EntityName(RecordID).RelationshipName.FieldName}}
Observe que a notação usada em nomes em relacionamento nas expressões resultantes não corresponde à forma que eles são representados no diálogo de personalização. Veja alguns exemplos de expressões resultantes:
{{contact.firstname}}
Insere o primeiro nome do destinatário.{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
Coloca o valor do campomsdyncrm_full_page_url
no registro da página de marketing especificado pelo GUID entre parênteses. Em geral, você pode usar uma expressão desse formulário em um registro de configurações de conteúdo para especificar uma central de assinaturas ou uma página de encaminhamento para um amigo.{{msdyncrm_contentsettings.msdyncrm_subscriptioncenter}}
Insere a URL da página da central de assinaturas identificada nas configurações de conteúdo definidas para a jornada do cliente que envia a mensagem.{{msdyncrm_contentsettings.msdyncrm_forwardtoafriend}}
Insere a URL da página de encaminhamento identificada nas configurações de conteúdo definidas para a jornada do cliente que envia a mensagem.{{Message.ViewAsWebpageURL}}
Insere a URL para abrir a mensagem atual em um navegador da Web.{{msevtmgt_event(8a519395-856c-4e22-b560-650ce6d6a79d).msevtmgt_webinarurl}}
Insere a URL do webinar para o evento identificado pela ID de evento especificada (entre parênteses).{{msdyn_survey(39128da2-c968-4627-9595-f030b6571be4).msdyn_name}}
Insere o nome da pesquisa identificada pela ID de pesquisa especificada (entre parênteses).{{contact.contact_account_parentcustomerid.name}}
Essa expressão localiza o nome da conta da empresa onde um contato trabalha.{{contact.contact_account_msa_managingpartnerid.name}}
Essa expressão localiza o nome do parceiro de gerenciamento da conta da empresa onde um contato trabalha.
Quando você tiver uma expressão que funcione, copie e cole em qualquer lugar. Você não precisa usar a personalização sempre.
Importante
Você pode ter, no máximo, dois saltos (pontos) nas expressões de campo. Não tente criar expressões mais complexas adicionando mais saltos às expressões produzidas com a personalização.
Gorjeta
Se você precisar dos tipos de dados compatíveis com a personalização, geralmente é melhor usar o recurso personalização, em vez de tentar digitar do zero. Isso garantirá que os nomes de entidade, de relação e de campo correspondam aos nomes usados no banco de dados e ajudará você a evitar erros de ortografia.
Observação
A funcionalidade de envio de email do Dynamics 365 Customer Insights - Journeys não oferece suporte a campos calculados.
Valores dinâmicos nos campos Para, Nome, Endereço do remetente e Responder para
Na guia Resumo do formulário Email de Marketing, você pode executar várias configurações não relativas a conteúdo para sua mensagem na seção Remetente e destinatário. Isso inclui valores e expressões para estabelecer os valores para, nome, endereço do remetente e responder para que serão usados pela mensagem.
Uma maneira típica de aproveitar esse recurso é definir o Nome do remetente e o Endereço do remetente para o proprietário do registro de contato. Em seguida, ao atribuir o proprietário de cada registro de contato ao vendedor que gerencia esse contato, os destinatários receberão emails de marketing que mostram um endereço de alguém que possam conhecer, o que pode aumentar bastante as taxas de abertura. Veja como:
- Se sua instância do Customer Insights - Journeys ainda não estiver configurada para sincronizar a entidade Usuário (systemuser) com o serviço de insights de marketing, fale com seu administrador sobre como configurar isso. Se você for o administrador, consulte Escolher entidades para sincronizar com o serviço de insights de marketing para obter instruções.
- Abra sua mensagem de email e vá para a guia Resumo.
- Exclua o conteúdo do campo Nome do remetente e então clique no botão Personalização ao lado deste campo.
- Na primeira página do diálogo de personalização, selecione Contextual e defina-o como Contato. Em seguida, selecione Próximo.
- Na segunda página do diálogo de personalização, selecione Entidade relacionada e depois:
- Defina a lista suspensa superior (relacionamento) para Usuário Proprietário (Contato) -> Usuário.
- Defina a lista suspensa inferior (campo) como Nome completo.
- Selecione OK para inserir a expressão que deve ser:
{{contact.contact_systemuser_owninguser.fullname}}
. - Exclua o conteúdo do campo Endereço de e então Select o botão Personalização próximo a este campo.
- Na primeira página do diálogo de personalização, selecione Contextual e defina-o como Contato. Em seguida, selecione Próximo.
- Na segunda página do diálogo de personalização, selecione Entidade relacionada e depois:
- Defina a lista suspensa superior (relacionamento) para Usuário Proprietário (Contato) -> Usuário.
- Defina a lista suspensa inferior (campo) como Email principal.
- Selecione OK para inserir a expressão que deve ser:
{{contact.contact_systemuser_owninguser.internalemailaddress}}
.
Você poderá usar técnicas semelhantes para colocar o nome do usuário ou endereço de email do proprietário em qualquer lugar no conteúdo da mensagem. Você pode fazer isso usando a personalização ou copiar/colar as expressões handlebar ou digitar as expressões handlebar manualmente.
Use valores dinâmicos para escolher um link ou origem da imagem
Você pode usar uma expressão dinâmica para definir o URL de origem dos elementos da imagem. Para fazer isso, Select o elemento de imagem, vá para o painel Propriedades e então Select o botão Personalização ao lado do campo Fonte para colocar texto dinâmico como parte do URL. Geralmente você mistura com este texto estático para montar uma URL completa. Por exemplo, é possível incluir a ID do contato ou o nome da empresa do destinatário para selecionar uma imagem que seja relevante para cada destinatário individual.
Você pode usar a personalização para ajudar a criar uma expressão dinâmica para definir um destino do Link para a imagem.
Observação
A biblioteca de arquivos do Dynamics 365 Customer Insights - Journeys gera um caminho de arquivo exclusivo baseado em GUID para cada imagem que você carrega, o que significa que as imagens na biblioteca de arquivos têm URLs imprevisíveis que não incluem o nome do arquivo original. Portanto, para usar a técnica descrita aqui, você deve hospedar suas imagens em seu próprio site ou em qualquer serviço de hospedagem de terceiros em que as URLs sejam previsíveis e possam incluir um valor que você possa extrair facilmente de um campo do Dynamics 365.
Localizar IDs de registros
Expressões de campos não contextuais (que usam o formulário {{EntityName(RecordID).FieldName}}
) exigem uma ID de registro para identificar o registro específico que origina o valor. Normalmente, a personalização o ajuda a encontrar essas IDs, mas, às vezes, talvez seja necessário encontrar uma ID manualmente quando você estiver criando recursos dinâmicos para uma mensagem. Para localizar a ID de qualquer registro:
- Abra o registro ao qual você deseja fazer referência.
- Verifique a URL exibida na barra de endereços do navegador, que deve ser a seguinte URL:
https://<MyOrg>.crm.dynamics.com/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&pagetype=entityrecord&etn=msevtmgt_event&id=11112222-bbbb-3333-cccc-4444dddd5555
- Localize a parte da URL que começa com
&id=
, que é seguida do número de ID do registro atual. Copie esse número (apenas o valor) e use-o na sua expressão.
Conteúdo dinâmico avançado
Você pode adicionar o processamento lógico avançado aos seus designs de email, o que pode tornar o conteúdo ainda mais adequado a destinatários, dados demográficos e contexto. Esse tipo de personalização exige que você tenha uma compreensão básica de scripts e programação.
Como observamos nos exemplos anteriores, o conteúdo dinâmico é delimitado por chaves duplas ({{
e }}
). Isso inclui os valores de campo padrão que você adiciona usando o recurso personalização e as criações de programação mais avançadas descritas nesta seção.
Gorjeta
Se quiser exibir as chaves duplas em uma mensagem, em vez de usá-las para indicar o início ou o final de um bloco de códigos, prefixe (com caractere de escape) a primeira chave com uma barra invertida, como \{{
ou \}}
. As barras não aparecerão na mensagem final renderizada, mas sim as chaves duplas.
Instruções condicionais e comparações
As instruções condicionais (if-then-else) exibem o conteúdo dependendo se uma ou mais expressões condicionais são resolvidas como true ou false. Você pode adicionar o código necessário para criar essas instruções posicionando-o dentro de um elemento de texto, ou posicionando elementos de código personalizado entre os outros elementos de criação. Mais informações: Como inserir conteúdo dinâmico avançado no designer
Instruções condicionais seguem o seguinte formulário:
{{#if (<operator> <value1> <value2>)}}
Content displayed when the expression is true
{{else if (<operator> <value1> <value2>)}}
Content displayed when the first expression is false and the second one is true
.
.
.
{{else}}
Content displayed when all expressions are false
{{/if}}
Em que:
- O bloco condicional deve sempre abrir com
{{#if … }}
. - As expressões condicionais devem ser delimitadas por parênteses.
- As expressões condicionais começam com um <operator>, que deve ser um dos valores listados na tabela a seguir. Ele estabelece como o primeiro valor deve ser comparado ao segundo valor.
- <value1> e <value2> são valores a serem comparados pela expressão condicional e podem ser valores dinâmicos ou constantes. Se <value1> ou <value2> for um valor de string constante (não um número ou expressão), deve ser arredondado com aspas simples ('); para números reais, use um ponto (.) como um delimitador decimal.
- Se <value1> for um campo booliano (também conhecido como um campo de duas opções no Dynamics 365), então não inclua um <operador>, <value2> ou os parênteses. Os campos boolianos sempre terão um valor verdadeiro ou falso, então você só deve usá-los diretamente para estabelecer a condição, como
{{#if contact.is_vip}}
. -
As cláusulas
{{else}}
e{{else if … }}
são opcionais. - O bloco condicional deve sempre fechar com
{{/if}}
.
A tabela a seguir lista todos os operadores que você pode usar em expressões condicionais. Outros operadores não estão disponíveis agora e você não pode usar expressões boolianas complexas (como o operador AND ou OR) em expressões condicionais.
Sintaxe do Dynamics 365 Customer Insights - Journeys (diferencia maiúsculas e minúsculas) | Operador |
---|---|
eq | Igual a |
ne | Diferente de |
lt | Menor que |
gt | Maior que |
lte | Menor ou igual a |
gte | Maior ou igual a |
Por exemplo, esta instrução condicional pode ser usada para estabelecer o idioma usado em uma mensagem de saudação baseada no país/região de cada destinatário da mensagem:
<p>{{#if (eq contact.address1_country 'Denmark')}}
Hej
{{else if (eq contact.address1_country 'US')}}
Hi
{{/if}} {{contact.firstname}}!</p>
Veja um exemplo de uma instrução condicional com base em um campo booliano (duas opções) chamado is_vip
. Observe que, como os campos boolianos sempre retornam um valor verdadeiro ou falso, nenhum operador, valor de comparação ou parênteses será incluído na condição:
<!-- {{#if contact.is_vip}} -->
<h3>Be sure to show your VIP card to receive a 20% discount!</h3>
<!-- {{/if}} -->
Gorjeta
Você pode testar valores de campo vazios usando:
{{#if (eq contact.lastname '')}}
Onde ''
são duas aspas simples, e não aspas duplas. Isso localiza campos vazios, mas não campos nulos.
Gorjeta
Embora você não possa usar expressões boolianos complexas em expressões condicionais, poderá implementar uma funcionalidade semelhante da seguinte maneira:
Sem suporte:
{{#if A and B}}<DisplayedContent>{{/if}
É equivalente a (com suporte):
{{#if A}}{{#if B}}<DisplayedContent>{{/if}}{{/if}}
Sem suporte:
{{#if A or B}}<DisplayedContent>{{/if}
É equivalente a (com suporte):
{{#if A}}<DisplayedContent>{{/if}} {{#if B}}<DisplayedContent>{{/if}}
Gorjeta
Quando você está testando valores que são armazenados como um conjunto de opções no banco de dados, use os valores de índice para o conjunto de opções, não os valores de exibição. Por exemplo, talvez haja um campo chamado contact.customertypecode
, que retenha um inteiro para identificar o tipo de cliente que ele é. Cada tipo de código digitado de cliente tem um nome de exibição, como 0 = "copper", 1 = "silver" e 2 = "gold". Nesse caso, você deve configurar a expressão para usar o índice (inteiro), não o valor de exibição correspondente. Portanto, se estiver buscando clientes gold, você deve usar:
{{#if (eq contact.customertypecode 2)}}
Gorjeta
Quando estiver testando valores numéricos altos, como "1.932.333", então exclua o separador de centenas (.) na instrução de comparação, mesmo se você vir, com frequência, eles presentes nas IU. Para testar esse valor, sua expressão deve, portanto, seguir o seguinte:
{{#if (eq contact.customernumber 1932333)}}
Loops for-each
Os loops for-each permitem passar por um conjunto de registros que estão relacionados a um registro atual específico — por exemplo, para fornecer uma lista de todas as transações recentes associadas a determinado contato. Você pode adicionar o código necessário para criar essas instruções posicionando-o dentro de um elemento de texto, ou posicionando elementos de código personalizado entre os outros elementos de criação. Mais informações: Como inserir conteúdo dinâmico avançado no designer
Loops for-each têm o seguinte formato:
{{#each Entity.RelationshipName }}
...
{{this.RelatedField1}}
...
{{this.RelatedField2}}
...
{{/each}}
Em que:
- O bloco de loops deve sempre abrir com
{{#each … }}
. -
Entity.RelationshipName
identifica o conjunto de registros relacionados com o qual o loop itera. - O loop começa com o primeiro registro relacionado disponível e repete para cada registro relacionado disponível até todos os registros relacionados serem listados. Observe que os registros relacionados serão retornados em um pedido arbitrário e imprevisível.
-
{{this.RelatedField<n>}}
identifica um nome de campo do registro relacionado. A parte "this" dessa expressão refere-se ao registro relacionado em processamento na iteração de loop atual e deve ser seguido de um nome de campo válido para a entidade relacionada. Você pode incluir qualquer número de campos em cada loop. - O bloco de loops deve sempre fechar com
{{/each}}
.
Por exemplo, o banco de dados pode incluir uma lista de produtos solicitados por um contato. É possível listar isso em uma mensagem de email usando código como:
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>
Neste exemplo, o sistema do Dynamics 365 Customer Insights - Journeys foi personalizado para incluir uma entidade personalizada chamada de product, que é configurada com um relacionamento 1:N entre as entidades contact e product no campo productid. Para que a entidade do produto fique disponível em suas mensagens de email, ela também deve ser sincronizada com o serviço de insights de marketing (como de costume).
Importante
Apenas os primeiros 1.000 itens relacionados são adicionados ao relacionamento para fins de renderização de email. O uso de relacionamentos com mais de 1.000 itens não é compatível com modelos de email e pode causar resultados inesperados.
Observe também que não há suporte para relacionamentos de segundo nível. Portanto, a seguinte sintaxe não é permitida:
{{#each Entity.RelationshipOnEntity}}
...
{{#each this.RelationshipOnRelatedEntity}}
...
{{/each}}
...
{{/each}}
Como inserir conteúdo dinâmico avançado no designer
Você deve ter cuidado ao inserir código dinâmico avançado no designer, já que há diversas maneiras, às vezes inesperadas, de isso dar errado, o que interromperá seu código. Aqui estão algumas dicas sobre como inserir e testar seu código:
- Use snippets de código posicionados em elementos de código personalizado entre elementos de criação na guia Criador. É muito mais visível e confiável do que posicionar o código diretamente no HTML usando a guia HTML. No entanto, você também pode usar código dinâmico dentro de um elemento de texto, nesse caso você precisará limpar esse código na guia HTML, como mencionado posteriormente nesta lista. (Quando estiver trabalhando no editor de página cheia, selecione um elemento de código personalizado para editar seu conteúdo.)
- Quando você insere o código em um elemento de texto na guia Criador, quaisquer espaços extras e as devoluções de retorno criarão marcações
e<p>
em seu código, o que pode quebrá-los. Sempre acesse a guia HTML mais tarde, onde você verá todas essas marcas extras, e certifique-se de removê-las. - Quando você insere código no elemento de texto, todo seu código de conteúdo dinâmico deverá estar contido em um conjunto de marcas de início e de fim (como
<p>
e</p>
) ou em um comentário HTML (para o código totalmente separado do texto exibido). Não insira código fora dos comentários ou de pares válidos de marca HTML (ou elementos de código personalizado), pois isso confundirá o editor (especialmente se você alternar entre as guias HTML e Design). Você pode trabalhar na guia HTML, inspecionar e corrigir o HTML dentro dos elementos de texto. - Não coloque retornos de carro entre os elementos de código que façam parte da mesma expressão (como em um loop for-each), a menos que você coloque cada linha em seu próprio conjunto de marcas HTML (como ilustrado no exemplo de loop for-each mostrado após esta lista).
- O recurso personalização geralmente é útil para criar expressões que obtém valores de seu banco de dados, porque ajuda você a encontrar tabela de banco de dados, campo e nomes relacionados. Esta ferramenta está disponível ao trabalhar dentro de um elemento de texto na guia Criador, e quando você insere valores em determinados campos que oferecem suporte a ele (como assunto de email). A personalização não está disponível ao trabalhar no HTML ou em um elemento de código personalizado. Assim, você pode começar usando a personalização em qualquer elemento de texto e depois recortar/colar a expressão resultante em seu elemento de código personalizado ou HTML.
- O nome do relacionamento que você usa ao criar loops ou colocar valores de pesquisa deve corresponder àquele usado no serviço de insights de marketing. O nome desse relacionamento não é necessariamente igual ao usado para personalizar o Dynamics 365. Para localizar o nome do relacionamento correto, use o recurso personalização.
Por exemplo, você pode configurar a linha de saudação de uma mensagem de email inserindo o seguinte na guia HTML do designer (seja dentro ou fora de um elemento de texto):
<p>{{#if (eq contact.address1_country 'Denmark')}}Hej{{else if (eq contact.address1_country 'US')}}Hi{{/if}}{{contact.firstname}}!</p>
O exemplo a seguir (já apresentado) mostra como usar comentários para colocar o código existente totalmente fora do conteúdo exibido (também na guia HTML):
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>