Agregar contenido dinámico a mensajes de correo electrónico
Importante
Este artículo solo se aplica a marketing saliente, que se eliminará del producto el 30 de junio de 2025. Para evitar interrupciones, realice la transición a viajes en tiempo real antes de esta fecha. Más información: Descripción general de la transición
Advertencia
Si utiliza seguridad a nivel de campo para algunos de sus campos de correo electrónico, debe agregar los permisos correctos o no podrá procesar su correo electrónico. Customer Insights - Journeys
Para establecer la seguridad de nivel de campo:
- En la parte superior derecha, Seleccionar el ícono de Configuración y luego Seleccionar Configuración avanzada.
- En la sección Sistema , Seleccionar Seguridad.
- Seleccionar Perfiles de seguridad de columnas.
- Para crear un nuevo perfil de seguridad de campo, seleccione Seleccionar Nuevo perfil e ingrese un nombre en la sección General.
- En la sección Usuarios , agregue el usuario del sistema: "# D365 Marketing Core Sending".
- En la sección Permisos de campo , agregue el permiso de Lectura a todos los campos obligatorios.
El contenido dinámico se resuelve justo antes de que se envíe un mensaje a una persona específica. Normalmente, se usa contenido dinámico para combinar la información del registro de contacto del destinatario (como nombre de pila y apellido), para poner vínculos especiales y para incluir información y vínculos de la configuración de contenido. Si le resulta cómodo trabajar con el código, también puede crear una lógica personalizada que incluya instrucciones condicionales, bucles for, etc. Puede usar contenido dinámico en cualquier parte del cuerpo del mensaje. También puede usar varios tipos de valores dinámicos en los campos de encabezado del mensaje (asunto y nombre y dirección del remitente).
Usar la configuración de contenido para definir repositorios de valores estándar y obligatorios para los mensajes de correo electrónico
Las configuraciones de contenido son conjuntos de valores estándar y obligatorios que están disponibles para usarlos en mensajes de correo electrónico de marketing. Cada configuración incluye un vínculo a un centro de suscripciones, un vínculo de reenvío a un amigo, vínculos a medios sociales, su dirección postal y otra información que se puede incluir en el mensaje como valores dinámicos con la característica de personalización.
Dynamics 365 Customer Insights - Journeys se entrega con un único registro de configuración de contenido predeterminado, que viene ya preconfigurado para usar el centro de suscripciones predeterminado, que también se incluye listo para usar. Puede personalizar este registro como sea necesario, así como crear registros adicionales. Debe configurar cada recorrido del cliente para que use un registro de configuración de contenido específico, es decir, todos los mensajes enviados por ese recorrido usarán el mismo registro. Sin embargo, cada recorrido puede usar un registro distinto, lo que significa que puede usar un diseño de correo electrónico de marketing idéntico en dos o más recorridos del cliente, especificando en cada uno un registro de configuración de contenido diferente. Si tiene más de un registro de configuración de contenido, solo uno es el predeterminado, que se aplicará automáticamente a cada nuevo recorrido del cliente que cree.
Los valores de la configuración de contenido se evalúan primero en el momento del envío, lo que significa que puede editarlos en cualquier momento. Todos los mensajes de correo electrónico pendientes y futuros usarán automáticamente los valores más recientes.
Cada registro de configuración de contenido que use debe estar disponible para los servicios de marketing externo, que administran el ensamblado y la entrega de correo electrónico. Por lo tanto, debe publicar sus registros de configuración de contenido eligiendo Puesta en marcha siempre que cree uno nuevo.
Nota
Si hay otros tipos de valores que use con frecuencia en mensajes de correo electrónico, o que desee administrar en el nivel del recorrido del cliente, puede agregarlos como campos personalizados a la entidad de configuración de contenido de la misma manera que para otros tipos de entidades de Dynamics 365. Sin embargo, en la versión actual todos los campos personalizados para la entidad de configuración de contenido deben ser de tipo texto (cadena). Más información: Personalizar Customer Insights - Journeys
Para ver, editar, o crear un registro de configuraciones de contenido:
Vaya a Marketing saliente>Plantillas de marketing>Configuración de contenido.
Se abre una página de lista estándar en la que puede ver, ordenar, filtrar y realizar búsquedas para encontrar un registro específico y usar los botones de la barra de comandos para agregar o quitar un registro. Seleccione un registro para abrirlo para su edición o seleccione Nuevo en la barra de comandos para crear uno nuevo.
Se abre el formulario de Configuración de contenido. Si edita un registro que ya esté publicado, debe elegir Editar en la barra de comandos para poder editarlo. Si va a crear uno nuevo, puede simplemente comenzar a rellenar los campos.
Defina la siguiente configuración según sea necesario:
- Nombre: escriba un nombre para el registro de configuración de contenido. Este es el nombre que se muestra cuando asigna configuración de contenido a un recorrido del cliente o a una vista previa de correo electrónico.
- Propietario: muestra el usuario de Dynamics 365 Customer Insights - Journeys que creó el registro.
- Dirección principal: Escriba la parte principal de la dirección postal de su organización. Todos los mensajes de correo electrónico de marketing deben incluir una dirección principal válida tomada de un registro de configuración de contenido. Seleccionar el botón para usar la personalización para ingresar una expresión que hace referencia a un campo de un registro existente (como un campo de dirección de un registro de cuenta específico).
- Detalles de la dirección: Escriba la información adicional de la dirección postal (si es necesario). Seleccionar el botón para usar la personalización para ingresar una expresión que haga referencia a un campo de un registro existente (como un campo de dirección de un registro de cuenta específico).
- Predeterminado: establezca esta opción en Sí para que el registro de configuración de contenido actual sea el predeterminado para todos los recorridos del cliente nuevos. Debe haber siempre un único conjunto establecido como predeterminado; si lo cambia, el conjunto predeterminado actual cambiará automáticamente a No.
- Predeterminado para la propiedad de la unidad de negocio: esta configuración solo está disponible cuando alcance de la unidad de negocio está habilitado. Establezca esta opción en Sí para que el registro de configuración de contenido actual sea el predeterminado para todos los recorridos del cliente nuevos dentro de la unidad de negocio. Debe haber siempre una configuración de contenidos única para el ámbito de la unidad de negocio; si la cambia, el conjunto predeterminado actual cambiará automáticamente a No.
- URL de LinkedIn, URL de Twitter, URL de Facebook, URL de Instagram, URL de YouTube y URL de Google Plus: para cada uno de estos servicios de redes sociales, escriba la dirección URL de la página de aterrizaje de su organización.
-
Centro de suscripciones: especifique una página de marketing existente que esté configurada como centro de suscripciones. Todos los mensajes de correo electrónico de marketing deben incluir un vínculo a un centro de suscripciones válido tomado de un registro de configuración de contenido. Seleccionar el botón para usar la personalización para ingresar una expresión que haga referencia al campo URL de página completa para la página específica que desea usar. La expresión resultante es similar a esta (donde el GUID varía según el registro que elija mediante la personalización):
{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
-
Reenviar a un amigo: especifique una página de marketing existente que esté registrada como página para reenviar a un amigo. Seleccionar el botón para elegir de una lista de páginas disponibles. Seleccionar el botón para usar la personalización para ingresar una expresión que haga referencia al campo URL de página completa para la página específica que desea usar. La expresión resultante es similar a esta (donde el GUID varía según el registro que elija mediante la personalización):
{{msdyncrm_marketingpage(36458a9e-72af-e911-a859-000d3a3159df).msdyncrm_full_page_url}}
Seleccione Guardar en la esquina inferior derecha de la ventana para guardar la configuración.
Si edita un registro de configuración de contenido ya publicado, el registro se publica de nuevo automáticamente cuando lo guarde. Si crea un nuevo registro, después seleccione Puesta en marcha en la barra de comandos para publicarlo en los servicios de marketing para poder empezar a usarlo.
Use personalización para incluir valores de campo dinámico
La personalización le ayuda a construir expresiones dinámicas válidas para colocar valores de campo y vínculos de registros de contactos de destinatarios, la configuración de contenido del mensaje y otros valores de la base de datos. Este botón se encuentra en la barra de herramientas de formato de texto siempre que se selecciona un elemento de texto en el diseñador gráfico. El botón se proporciona también para algunas configuraciones de campos, como los de asunto y dirección y nombre del remitente.
Nota
El cuadro de diálogo de personalización solo muestra las entidades y relaciones que están sincronizadas con el servicio de información detallada de marketing. Si necesita mostrar la información o usar relaciones para una o varias entidades que no se muestran, pida al administrador que agregue las entidades correspondientes al servicio de información detallada de marketing. Si usted es administrador, consulte Elegir entidades para sincronizarlas con el servicio de información detallada de marketing para obtener instrucciones. La entidad propietario ya no es compatible con la personalización del correo electrónico. Reemplácelo con la entidad systemuser o team , dependiendo de qué entidad represente al propietario del registro.
Usar personalización para incluir una expresión dinámica
Para usar personalización:
Coloque el cursor en el campo o elemento de texto donde desea insertar el texto dinámico y luego presione el botón Personalización . Se abre el diálogo de personalización.
Realice una de las acciones siguientes:
- Seleccione Contenido dinámico para poner un valor que puede cambiar basado en el contexto en el que usa el mensaje y, a continuación, elija uno de los siguientes en la lista desplegable:
- Contacto: pone un valor de campo, como el nombre de pila, del registro de contacto de cada destinatario. Estos valores varían por el destinatario.
- ContentSettings: coloca un valor de campo de la configuración de contenidos. Los valores como una dirección URL del centro de suscripciones, reenvío de dirección URL, y la dirección postal del remitente están disponibles aquí. Estos valores pueden variar según el recorrido del cliente donde se usa el mensaje.
- FormDoiSubmission: coloca un campo dinámico para suscripción doble de formulario. Este campo no requiere un valor de relación, como se explica a continuación.
- Mensaje: Pone valores relacionados con el mensaje en sí mismo; actualmente, se incluye la dirección URL abierta como página web y los distintos valores dinámicos usados en correos electrónicos de suscripción doble.
- Seleccione Contenido estático para poner un valor fijo de un registro específico (como el nombre de un evento próximo). Este valor es el mismo independientemente de donde se usa el mensaje o quién lo recibe. A continuación cree los siguientes valores para identificar la entidad y el registro que contiene el valor que necesita:
- Seleccione una opción (cuadro combinado superior): Seleccione la entidad (como evento o cuenta). Para buscar una entidad, coloque el cursor en este cuadro y empiece a escribir su nombre hasta que la entidad que desee se muestre.
- Elija un registro (lista desplegable inferior): Seleccione el registro específico por nombre. Esta lista muestra todos los registros de la entidad seleccionada. Como con la entidad, puede buscar aquí.
- Seleccione Contenido dinámico para poner un valor que puede cambiar basado en el contexto en el que usa el mensaje y, a continuación, elija uno de los siguientes en la lista desplegable:
Ahora debe determinar el campo específico que desea colocar. Realice una de las acciones siguientes:
- Seleccione Entidad relacionada para encontrar un campo de una entidad relacionada con la que se escogió en la página anterior. A continuación cree los siguientes valores para identificar la relación y el campo que desea mostrar:
- Seleccionar relación: La relación define a la segunda entidad que desea pasar, y la ruta que adoptará para ir. Para buscar una relación, coloque el cursor en este cuadro y empiece a escribir su nombre hasta que la relación que desee se muestre y entonces podrá seleccionarla. Para obtener más información sobre cómo entender la forma en que las relaciones se representan aquí, consulte la siguiente sección.
- Seleccionar campo: Elija el nombre de campo que desea mostrar. Como con la relación, puede buscar aquí. Esta lista desplegable solo está disponible si ha elegido una relación de N:1.
- Seleccione Entidad relacionada para encontrar un campo de una entidad relacionada con la que se escogió en la página anterior. A continuación cree los siguientes valores para identificar la relación y el campo que desea mostrar:
En la parte inferior del cuadro de diálogo, ahora verá la expresión final. Seleccione Insertar para colocar esa expresión.
Importante
Las listas creadas utilizando bucles for-each no se representan en un orden particular y no se pueden ordenar por ningún campo.
Cómo la personalización presenta relaciones de base de datos
Al seleccionar una relación en la personalización, las opciones se muestran mediante una de las convenciones de nomenclatura siguientes:
-
NombreDeCampo (EntidadPrincipal) -> EntidadSecundaria
Cuando la entidad principal está entre paréntesis y muestra un nombre de campo, es una relación de varios a uno (N:1) que da lugar a un solo registro de la entidad secundaria. Por tanto, normalmente debe usar la segunda lista desplegable para elegir un campo de la entidad secundaria para mostrar con su expresión. -
EntidadPrincipal -> NombreDeCampo (EntidadSecundaria)
Cuando la entidad secundaria está entre paréntesis y muestra un nombre de campo, es una relación de uno a varios (1:N) que puede dar lugar a varios registros de la entidad secundaria. Por tanto, no puede elegir un campo (la segunda lista desplegable está deshabilita) y en su lugar debe usar esta relación como parte de un bucle for/each para mostrar valores de cada registro relacionado disponible. -
EntidadPrincipal -> EntidadSecundaria
Cuando ninguna de las dos entidades está entre paréntesis, se trata de una relación de varios a varios (N:N), que puede conectar varios registros en ambas direcciones. Por lo tanto, no puede elegir un campo (la segunda lista desplegable está deshabilitada) y no puede usar esta relación para la personalización. Esto se debe a que la relación la mantiene una entidad intermedia y solo puede pasar a la entidad intermedia desde la entidad primaria.
Donde:
- EntidadPrincipal es una entidad en el lado inicial de la relación. Siempre aparece en el lado izquierdo de la flecha. Esta es la entidad que eligió en la página anterior del cuadro de diálogo de personalización. Por ejemplo, un Contacto (entidad principal) puede estar relacionado con una Cuenta (entidad secundaria) a través del campo Nombre de la compañía (nombre de campo) del contacto; se mostraría como: Nombre de la compañía (Contacto) -> Cuenta.
- NombreDeCampo se muestra siempre junto a un nombre de entidad (que está entre paréntesis). Este es el nombre del campo a través del cual se establece la relación. El campo mencionado pertenece a la entidad entre paréntesis y muestra un valor de la entidad del otro lado de la flecha (pero realmente contiene el identificador del registro relacionado del que se extrae el valor). En algunos casos, observará una relación entre las mismas dos entidades, que atraviesa otro campo.
- EntidadSecundaria es el destino de la relación. Siempre aparece en el lado derecho de la flecha. Los valores que muestre con su expresión final procederán de un campo perteneciente a la entidad secundaria.
Nota
En las relaciones de N:N, no se muestra ningún valor de campo. Esto significa que si tiene más de una relación de N:N entre las mismas dos entidades, verá varias relaciones con un aspecto idéntico en la lista desplegable. Esta situación es muy rara, pero si se produce, tendrá que usar el método de prueba y error para identificar la relación correcta que hay que usar. Para confirmarlo, puede comprobar la expresión resultante para ver si parece que eligió la relación correcta (las relaciones se muestran aquí de forma diferente y pueden proporcionar una pista) o configurar un mensaje de prueba que incluya las dos versiones de la relación de N:N y usar un recorrido del cliente de prueba para entregárselo a sí mismo.
Estos son algunos ejemplos:
- Nombre de la compañía (Contacto) -> Cuenta: la entidad Contacto usa esta relación para mostrar información de la entidad Cuenta en el campo Nombre de la compañía de un registro de contacto. Es decir, establece un vínculo a la compañía (cuenta) para la que trabaja el contacto.
- Asociado jefe (Contacto) -> Cuenta: la entidad Contacto usa esta relación para mostrar información de la entidad Cuenta en el campo Asociado jefe de un registro de contacto. Es decir, establece un vínculo con la empresa (cuenta) para la que es asociado jefe de un contacto.
- Contacto -> Contacto principal (Cuenta): la entidad Cuenta usa esta relación para mostrar información de la entidad Contacto en el campo Contacto principal de un registro de cuenta. Es decir, encuentra todas las cuentas en las que el contacto actual está asignado como contacto principal.
- Contacto -> Contacto (Registro en evento): la entidad Registro en evento usa esta relación para mostrar información de la entidad Contacto en el campo Contacto de una entrada de registro en evento. Es decir, encuentra todos los registros en eventos realizados por (o para) el contacto actual.
Expresiones creadas por la personalización
La personalización crea una expresión que usa un formato similar al siguiente:
{{EntityName.FieldName}}
{{EntityName(RecordID).FieldName}}
{{EntityName.RelationshipName.FieldName}}
{{EntityName(RecordID).RelationshipName.FieldName}}
Tenga en cuenta que no coincide con la notación usada para los nombres de relación en expresiones resultantes la forma en que se representan en el cuadro de diálogo de personalización. A continuación, se presentan algunos ejemplos de expresiones resultantes:
{{contact.firstname}}
Pone el nombre de pila del destinatario.{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
Coloca el valor del campomsdyncrm_full_page_url
del registro de la página de marketing especificado por el GUID entre paréntesis. Normalmente, puede usar una expresión con este formato en un registro de configuración de contenido para especificar una página del centro de suscripciones o de reenvío a un amigo.{{msdyncrm_contentsettings.msdyncrm_subscriptioncenter}}
Pone la dirección URL de la página del centro de suscripciones identificada en la configuración de contenido del recorrido de cliente que envía el mensaje.{{msdyncrm_contentsettings.msdyncrm_forwardtoafriend}}
Pone la dirección URL de la página reenvío identificada en la configuración de contenido del recorrido de cliente que envía el mensaje.{{Message.ViewAsWebpageURL}}
Pone la dirección URL para abrir el mensaje actual en un explorador web.{{msevtmgt_event(8a519395-856c-4e22-b560-650ce6d6a79d).msevtmgt_webinarurl}}
Pone la dirección URL del seminario web para el evento con el identificador especificado (entre paréntesis).{{msdyn_survey(39128da2-c968-4627-9595-f030b6571be4).msdyn_name}}
Pone el nombre de la encuesta con el identificador especificado (entre paréntesis).{{contact.contact_account_parentcustomerid.name}}
Esta expresión encuentra el nombre de la cuenta de la empresa donde trabaja un contacto.{{contact.contact_account_msa_managingpartnerid.name}}
Esta expresión encuentra el nombre del administrador de la cuenta de la empresa donde trabaja un contacto.
Una vez que tenga una expresión que funcione, puede copiarla y pegarla en cualquier lugar. No tiene que usar siempre la personalización.
Importante
Puede tener, como máximo, dos saltos (puntos) en sus expresiones de campo. No intente crear expresiones más complejas agregando más saltos a las expresiones generadas con la personalización.
Propina
Si necesita los tipos de datos admitidos por la personalización, suele ser mejor usar la característica de personalización para agregar el código en lugar de escribirlo desde cero. Esto asegurará que los nombres de la entidad, relación y del campo se correspondan con los usados en la base de datos y le ayudará a evitar los errores de escritura.
Nota
La funcionalidad de envío de correo electrónico de Dynamics 365 Customer Insights - Journeys no admite campos calculados.
Valores dinámicos en Para, Nombre del remitente, Dirección del remitente, y Campos de respuesta
En la pestaña Resumen del formulario Correo electrónico de marketing, puede crear varios valores no relacionados con el contenido para el mensaje en la sección Remitente y destinatario. Esto incluye valores y expresiones para establecer los valores del Para, del Nombre del remitente, de la Dirección del remitente, y de Respuesta que usará el mensaje.
Una forma típica de aprovechar esta característica es establecer Nombre del remitente y Dirección del remitente en el propietario del registro de contacto. A continuación, asignando el propietario de cada registro de contacto al comercial jefe de ese contacto, los destinatarios recibirán correos electrónicos de marketing que muestran una dirección del remitente de una persona que quizás conozcan, lo que puede aumentar considerablemente la tasa de mensajes abiertos. El método es el siguiente:
- Si su instancia de Customer Insights - Journeys no está configurada aún para sincronizar la entidad Usuario (systemuser) con el servicio de información detallada de marketing, pídale a su administrador que la configure. Si usted es administrador, consulte Elegir entidades para sincronizarlas con el servicio de información detallada de marketing para obtener instrucciones.
- Abra el mensaje de correo electrónico y vaya a la pestaña Resumen.
- Elimine el contenido del campo Nombre del remitente y luego Seleccionar el botón Personalización junto a este campo.
- En la primera página del cuadro de personalización, seleccione Contextual y después Contacto. Seleccione Siguiente.
- En la segunda página del cuadro de personalización, seleccione Entidad relacionada y después:
- Establezca la lista desplegable superior (relación) en Usuario propietario (Contacto) - > Usuario.
- Establezca la lista desplegable inferior (campo) en Nombre completo.
- Seleccione Aceptar para incluir la expresión, que debería ser:
{{contact.contact_systemuser_owninguser.fullname}}
. - Elimine el contenido del campo Dirección de remitente y luego Seleccionar el botón Personalización junto a este campo.
- En la primera página del cuadro de personalización, seleccione Contextual y después Contacto. Seleccione Siguiente.
- En la segunda página del cuadro de personalización, seleccione Entidad relacionada y después:
- Establezca la lista desplegable superior (relación) en Usuario propietario (Contacto) - > Usuario.
- Establezca la lista desplegable inferior (campo) en Correo electrónico principal.
- Seleccione Aceptar para incluir la expresión, que debería ser:
{{contact.contact_systemuser_owninguser.internalemailaddress}}
.
Puede usar técnicas similares para incluir el nombre o la dirección de correo electrónico del usuario propietario en cualquier parte del contenido del mensaje. Puede hacerlo mediante la personalización, copiando y pegando expresiones Handlebars o incluso escribiendo expresiones Handlebars manualmente.
Usar valores dinámicos para elegir un origen o un vínculo de imagen
Puede usar una expresión dinámica para definir la dirección URL de origen de elementos de imagen. Para ello, Seleccionar el elemento de imagen, vaya a su panel Propiedades y luego Seleccionar el botón Personalización junto al campo Fuente para colocar texto dinámico como parte de la URL. Normalmente mezclará esto con texto estático para crear una dirección URL completa. Por ejemplo, podría incluir el id. de contacto o el nombre de la empresa del destinatario para seleccionar una imagen que sea relevante para cada destinatario individual.
Del mismo modo, puede usar la personalización como ayuda para generar una expresión dinámica para establecer el destino de un Vínculo para la imagen.
Nota
La biblioteca de archivos de Dynamics 365 Customer Insights - Journeys genera una ruta de archivo basada en GUID única para cada imagen que cargue, lo que significa que las imágenes de la biblioteca de archivos tienen direcciones URL impredecibles que no incluyen su nombre de archivo original. Por lo tanto, para utilizar la técnica descrita aquí, debe hospedar sus imágenes en su propio sitio web o en cualquier servicio de alojamiento de terceros donde las direcciones URL sean predecibles y puedan incluir un valor que se pueda extraer fácilmente de un campo de Dynamics 365.
Buscar identificadores de registro
Las expresiones de campo no contextuales (que usan el formulario {{EntityName(RecordID).FieldName}}
) necesiten un identificador de registro para identificar el registro específico del que debe proceder el valor. Generalmente, la personalización ayuda a buscar los identificadores, pero es posible que a veces tenga que buscar un identificador manualmente mientras diseña las características dinámicas de un mensaje. Para encontrar el identificador de cualquier registro:
- Abra el registro que desea referenciar.
- Busque la dirección URL que aparece en la barra de direcciones de su explorador, que debe mostrar una dirección URL del tipo:
https://<MyOrg>.crm.dynamics.com/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&pagetype=entityrecord&etn=msevtmgt_event&id=11112222-bbbb-3333-cccc-4444dddd5555
- Busca la parte de la dirección URL que comience por
&id=
, que irá seguida del número de identificación de su registro actual. Copie ese número (solo el valor) y úselo en su expresión.
Contenido dinámico avanzado
Puede agregar procesamiento lógico avanzado a sus diseños de correo electrónico para adaptar aún más el contenido a los destinatarios, las características demográficas y el contexto. Este tipo de personalización requiere tener conocimientos básicos de scripting y programación.
Como ya ha visto en otros ejemplos, el contenido dinámico está delimitado por llaves dobles ({{
y }}
). Esto incluye tanto los valores de campo estándar que agregue con la característica de personalización como las estructuras de programación más avanzadas descritas en esta sección.
Propina
Si desea mostrar las llaves dobles en un mensaje, sin que delimiten el inicio o el final de un bloque de código, anteponga (escape) una barra diagonal inversa a la primera llave, así \{{
o así \}}
. Las barras diagonales no aparecerán en el mensaje final una vez generado, pero las llaves dobles, sí.
Instrucciones condicionales y comparaciones
Las instrucciones condicionales (if-then-else) muestran el contenido dependiendo de si una o varias expresiones condicionales se resuelven en verdadero o falso. Puede agregar el código necesario para crear estas instrucciones colocándolo en un elemento de texto, o colocando elementos de código personalizados entre los otros elementos del diseño. Más información: Cómo introducir un consentimiento dinámico avanzado en el diseñador
Las instrucciones condicionales tienen la forma siguiente:
{{#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}}
Donde:
- El bloque condicional debe abrirse siempre con
{{#if … }}
. - Las expresiones condicionales deben estar entre paréntesis.
- Las expresiones condicionales empiezan con un <operador>, que debe ser uno de los valores de la siguiente tabla. Define cómo se debe comparar el primer valor con el segundo.
- <valor1> y <valor2> son valores que se compararán mediante la expresión condicional, y pueden ser valores tanto dinámicos como constantes. Si <valor1> o <valor2> son valores de cadena continuos (no números ni expresiones), después deben estar rodeados con comillas simples ('); para los números reales, use un punto (.) como separador de decimales.
- Si <valor1> es un campo booleano (también denominado campo dos opciones en Dynamics 365), después no incluya un <operador> o <valor2>, o las paréntesis. Los campos booleanos tienen siempre un valor de true o de false, por lo que debe solo usarlos directamente para establecer la condición, como:
{{#if contact.is_vip}}
. -
Las cláusulas
{{else}}
y{{else if … }}
son opcionales. - El bloque condicional debe cerrarse siempre con
{{/if}}
.
La siguiente tabla recoge todos los operadores que puede usar en las expresiones condicionales. Actualmente no hay otros operadores disponibles, ni puede usar expresiones booleanas complejas (como los operadores AND o OR) en sus expresiones condicionales.
Sintaxis de Dynamics 365 Customer Insights - Journeys (con diferenciación entre mayúsculas y minúsculas) | Operador |
---|---|
eq | Igual a |
ne | No igual a |
lt | Menor que |
gt | Mayor que |
lte | Menor o igual que |
gte | Mayor o igual que |
Por ejemplo, esta declaración condicional se puede usar para establecer el idioma utilizado en un saludo del mensaje basado en el país o región de cada destinatario del mensaje:
<p>{{#if (eq contact.address1_country 'Denmark')}}
Hej
{{else if (eq contact.address1_country 'US')}}
Hi
{{/if}} {{contact.firstname}}!</p>
Aquí mostramos un ejemplo de una afirmación condicional basada en un campo booleano (dos opciones) denominado is_vip
; tenga en cuenta que porque los campos booleanos devuelven siempre un valor de true o de false, no se incluye ningún valor operador, de comparación o paréntesis, en la condición:
<!-- {{#if contact.is_vip}} -->
<h3>Be sure to show your VIP card to receive a 20% discount!</h3>
<!-- {{/if}} -->
Propina
Puede probar por valores del campo vacío con:
{{#if (eq contact.lastname '')}}
Donde ''
son dos comillas simples, no una comilla doble. Esto detecta campos vacíos, pero no campos inválidos.
Propina
Aunque no puede usar expresiones booleanas complejas en sus expresiones condicionales, puede implementar funcionalidades similares de la siguiente manera:
Incompatible:
{{#if A and B}}<DisplayedContent>{{/if}
Es equivalente a (compatible):
{{#if A}}{{#if B}}<DisplayedContent>{{/if}}{{/if}}
Incompatible:
{{#if A or B}}<DisplayedContent>{{/if}
Es equivalente a (compatible):
{{#if A}}<DisplayedContent>{{/if}} {{#if B}}<DisplayedContent>{{/if}}
Propina
Al probar valores almacenados como un conjunto de opciones en la base de datos, use los valores de índice para el conjunto de opciones, no los valores para mostrar. Por ejemplo, suponga que tiene un campo llamado contact.customertypecode
, que contiene un entero para identificar el tipo de cliente. Cada código de tipo de cliente tiene un nombre para mostrar. Por ejemplo, 0 = "cobre", 1 = "plata" y 2 = "oro". En este caso, debe configurar la expresión para que use el índice (entero), no el valor mostrado correspondiente. Por tanto, si busca clientes de tipo oro, debe usar:
{{#if (eq contact.customertypecode 2)}}
Propina
Al probar valores numéricos grandes, como "1 932 333", no incluya el separador de millares (espacio en blanco) en la instrucción de comparación, aunque lo vea en la interfaz de usuario. Para probar este valor, la expresión debe ser algo parecido a esto:
{{#if (eq contact.customernumber 1932333)}}
Bucles for
Los bucles for permiten pasar a través de una colección de registros relacionados con un registro específico actual (por ejemplo, para ofrecer una lista de todas las transacciones recientes asociadas a un contacto determinado). Puede agregar el código necesario para crear estas instrucciones colocándolo en un elemento de texto, o colocando elementos de código personalizados entre los otros elementos del diseño. Más información: Cómo introducir un consentimiento dinámico avanzado en el diseñador
Los bucles for tienen la siguiente fórmula:
{{#each Entity.RelationshipName }}
...
{{this.RelatedField1}}
...
{{this.RelatedField2}}
...
{{/each}}
Donde:
- El bloque de bucle debe abrirse siempre con
{{#each … }}
. -
Entity.RelationshipName
identifica el conjunto de registros relacionados en los que el bucle actuará. - El bucle comienza con el primer registro relacionado disponible, y se repite en cada registro relacionado disponible hasta que todos los registros relacionados se hayan enumerado. Tenga en cuenta que los registros relacionados se devolverán en un orden arbitrario y impredecible.
-
{{this.RelatedField<n>}}
identifica un nombre de campo a partir de un registro relacionado. En esta expresión “this” se refiere al registro relacionado que se está procesando en la iteración actual del bucle, y debe ir seguido de un nombre de campo válido para la entidad relacionada. Puede incluir cualquier número de campos de cada bucle. - El bloque de bucle debe cerrarse siempre con
{{/each}}
.
Por ejemplo, la base de datos podría incluir una lista de productos que un contacto ha pedido. Puede recogerlos en un mensaje de correo electrónico mediante un código del tipo:
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>
En este ejemplo, se ha personalizado el sistema Dynamics 365 Customer Insights - Journeys spara entidad personalizada denominado producto, que se configura con un 1:N relación entre las entidades de contacto y de producto en el campo de ID de producto. Para que la entidad de producto esté disponible en sus mensajes de correo electrónico, también debe estar sincronizada con el servicio de información detallada de marketing (como suele ocurrir).
Importante
Solo los primeros 1000 elementos relacionados se agregan a la relación con fines de procesamiento de correo electrónico. El uso de relaciones con más de 1000 elementos no se admite en las plantillas de correo electrónico y puede generar resultados inesperados.
También tenga en cuenta que las relaciones de segundo nivel no son compatibles. Por lo tanto, la siguiente sintaxis no está permitida:
{{#each Entity.RelationshipOnEntity}}
...
{{#each this.RelationshipOnRelatedEntity}}
...
{{/each}}
...
{{/each}}
Cómo introducir un consentimiento dinámico avanzado en el diseñador
Debe tener cuidado al introducir código dinámico avanzado en el diseñador porque hay muchas formas, algunas veces inesperadas, de obtenerlo con error, lo que romperá su código. A continuación se proporcionan algunas sugerencias de cómo escribir y probar su código:
- Use elementos de código personalizados para colocar fragmentos de código entre los elementos de diseño en la pestaña Diseñador. Esto da mayor visibilidad que colocar el código directamente en el HTML a través de la pestaña HTML. Sin embargo, también puede usar código dinámico dentro de un elemento de texto, en cuyo caso es probable que tenga que limpiar el código en la pestaña HTML, como se indica más adelante en esta lista. (Al trabajar en el editor de página completa, seleccione un elemento de código personalizado para editar su contenido).
- Al introducir código en un elemento de texto en la pestaña Diseñador, los espacios adicionales y los retornos de carro que agregue crearán etiquetas
y<p>
en el código, lo que puede romperlo. Vaya siempre después a la pestaña HTML, donde verá todas estas etiquetas adicionales, y asegúrese de quitarlas. - Al introducir código en un elemento de texto, todo el contenido dinámico debería estar o bien dentro de un conjunto de inicio y de etiquetas finales (como
<p>
y</p>
) o bien en un comentario HTML (para el código completamente separado del texto mostrado). No agregue el código fuera de los comentarios o de los pares de etiquetas HTML (o elementos de código personalizados) válidos, pues eso confundiría al editor (especialmente si cambia entre las pestañas HTML y Diseño). Debe trabajar en la pestaña HTML para inspeccionar y corregir el HTML de los elementos de texto. - No agregue retornos de carro entre los elementos de código que formen parte de la misma expresión (como en un bucle for-each) a menos que agregue cada línea dentro su propio conjunto de etiquetas HTML (como se muestra en el ejemplo de bucle for-each que se proporciona después de esta lista).
- La característica de personalización suele ser útil para generar expresiones que recuperan valores de la base de datos, ya que ayuda a encontrar los nombres de tablas, campos y relaciones de la base de datos. Esta herramienta está disponible al trabajar en un elemento de texto en la pestaña Diseñador y al especificar valores en determinados campos que lo admiten (como el asunto del correo electrónico). La personalización no está disponible al trabajar en la pestaña HTML o en un elemento de código personalizado, por lo que puede usar en su lugar la personalización en cualquier elemento de texto y después cortar y pegar la expresión resultante en el código HTML o el elemento de código personalizado.
- El nombre de relación que utiliza cuando crea bucles o coloca valores de búsqueda debe coincidir con el que se utiliza en el servicio de información detallada de marketing. Este nombre de relación no es necesariamente el mismo que el que utiliza para personalizar Dynamics 365. Para buscar el nombre correcto de la relación, use la característica de personalización.
Por ejemplo, puede configurar la línea de saludo de un mensaje de correo electrónico escribiendo lo siguiente en la pestaña HTML del diseñador (dentro o fuera de un elemento de texto):
<p>{{#if (eq contact.address1_country 'Denmark')}}Hej{{else if (eq contact.address1_country 'US')}}Hi{{/if}}{{contact.firstname}}!</p>
El ejemplo siguiente (ya mostrado anteriormente) indica cómo usar los comentarios para incluir código que existe fuera del contenido mostrado (también en la pestaña HTML):
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>