Correo electrónico de prescripciones del plan de salud plan-prescription

En esta página: Siga un caso de uso de personalización que se repite en matrices de perfiles anidadas con reglas condicionales para crear una lista de correo electrónico de plan de mantenimiento con recetas listas para ser recogidas o recuperadas.

Un perfil contiene planes de salud y cada plan incluye recetas. Las recetas tienen varios estados, como “listo”, “recordado” o “recogido”.

En este caso de uso, queremos enviar un solo correo electrónico a cada perfil, incluidas todas las prescripciones que estén listas para ser recogidas o retiradas. Haga clic en cada pestaña a continuación para obtener más información sobre la sintaxis que se debe utilizar para implementar este caso de uso.

Mensaje procesado

Hola John Doe,

Estas son las recetas que están listas para ser recogidas o que han sido retiradas:

Plan de salud A

  • Id. de prescripción: pres1
    Nombre: Medicamento A
    Estado: listo
  • Id. de prescripción: pres2
    Nombre: Medicamento B
    Recuperación de estado:

Plan de salud B

  • Id. de prescripción: pres4
    Nombre: ID de medicamento
    Estado: listo
Plantilla de HTML
code language-html
<p>Hi {{profile.person.firstName}} {{profile.person.lastName}},</p>
<p>Here are the prescriptions that are either ready for pick up or have been recalled:</p>
{{#each profile.plans as |plan|}}
<h3>{{plan.name}}</h3>
<ul>
   {{#each plan.prescriptions as |prescription|}}
   {%#if prescription.state = "ready" or prescription.state = "recall"%}
   <li>
      <strong>Prescription ID:</strong> {{prescription.prescription_id}}<br>
      <strong>Name:</strong> {{prescription.name}}<br>
      <strong>State:</strong> {{prescription.state}}
   </li>
   {%/if%}
   {{/each}}
</ul>
{{/each}}
Datos de perfil
code language-javascript
{
  "profile": {
    "person": {
      "firstName": "John",
      "lastName": "Doe"
    },
    "plans": [
      {
        "planId": "plan1",
        "name": "Health Plan A",
        "prescriptions": [
          {
            "prescription_id": "pres1",
            "name": "Medication A",
            "state": "ready"
          },
          {
            "prescription_id": "pres2",
            "name": "Medication B",
            "state": "recall"
          }
        ]
      },
      {
        "planId": "plan2",
        "name": "Health Plan B",
        "prescriptions": [
          {
            "prescription_id": "pres3",
            "name": "Medication C",
            "state": "picked up"
          },
          {
            "prescription_id": "pres4",
            "name": "Medication D",
            "state": "ready"
          }
        ]
      }
    ]
  }
}

Referencia rápida quick-reference

Esta sección contiene conocimientos estructurados destinados a apoyar la interpretación, la recuperación y la respuesta a preguntas relacionadas con este tema.

Para una comprensión completa, esta información debe combinarse con la documentación de esta página. Ninguna de las fuentes pretende ser independiente; la página describe la función, mientras que esta sección proporciona contexto adicional que ayuda a desambiguar la terminología, la intención, la aplicabilidad y las restricciones.

Información general

TL;DR

Esta página muestra un caso de uso de personalización completo: iteración en matrices de perfiles anidadas (planes de mantenimiento que contienen recetas) con filtrado condicional para mostrar solo las recetas en estados “listas” o “recuperadas” en un mensaje de correo electrónico.

Intenciones

  • Ver un ejemplo de salida procesado de un correo electrónico personalizado del plan de mantenimiento
  • Comprenda la plantilla de HTML utilizando bloques anidados {{#each}} y {%#if%} para la iteración de matriz condicional
  • Comprenda la estructura de datos de perfil necesaria: una matriz plans en la que cada plan contiene una matriz prescriptions con state campos
Glosario
  • Iteración anidada: se usan bucles {{#each}} dentro de otros bucles {{#each}} para atravesar estructuras de matrices de varios niveles en datos de perfil (por ejemplo, planes → prescripciones).
  • Estado de prescripción: un campo en cada objeto de prescripción que indica su estado de ciclo de vida en este caso de uso; los valores utilizados son “listo”, “recuperado” y “recogido”. (específico de caso de uso)
  • {%#if%}/{%/if%}: sintaxis de bloque condicional utilizada dentro de las plantillas de mensajes para filtrar los elementos de la matriz durante la iteración (distinta de la sintaxis de Handlebars de doble curvatura {{#if}}).
Terminología
  • Nombre canónico: iteración de matriz anidada — variantes: bucles anidados, cada uno anidado, iteración de varios niveles
  • No confunda: {{#each}} / {{/each}} (sintaxis de iteración de Handlebars, llaves dobles) ≠ {%#if%} / {%/if%} (sintaxis condicional, llaves de porcentaje): ambos se utilizan juntos en esta plantilla
  • No confunda: “listo” (receta disponible para recoger) ≠ “recuperar” (receta recuperada) ≠ “recogido” (receta ya recopilada; excluido de la salida por el filtro condicional)
Preguntas más frecuentes

Q: ¿Qué estados de prescripción se incluyen en la salida de correo electrónico?

Solo se muestran las recetas con el estado “listo” o “retirado”. Las recetas con el estado “recogidas” se excluyen mediante el filtro condicional {%#if prescription.state = "ready" or prescription.state = "recall"%}.

Q: ¿Qué estructura de datos de perfil se requiere para este caso de uso?

Un perfil con una matriz plans, donde cada objeto de plan contiene una matriz prescriptions. Cada objeto de prescripción debe tener los campos prescription_id, name y state.

Q: ¿Cómo se iteran los planes y las recetas en la plantilla?

El bucle {{#each profile.plans as |plan|}} externo se repite en cada plan de mantenimiento. Dentro de él, {{#each plan.prescriptions as |prescription|}} se repite en las prescripciones de cada plan, y un bloque condicional se filtra únicamente a los estados “listo” o “revocar”.

recommendation-more-help
journey-optimizer-help