Variables Handlebars
SendDock usa Handlebars como motor de plantillas para personalizar tus emails con datos dinámicos. Las variables te permiten insertar información específica del suscriptor en tus mensajes.
Sintaxis Básica
Las variables Handlebars se escriben con dobles llaves:
Cuando envías el email con datos:
{
"name": "Juan",
"company": "SendDock"
}
El resultado será:
Hola Juan, bienvenido a SendDock!
Variables Predefinidas
SendDock incluye algunas variables especiales que siempre están disponibles:
{{email}}
El email del suscriptor destinatario.
{{unsubscribe_link}}
Requerido por ley. Enlace para que el usuario se desuscriba.
Todos los emails de marketing deben incluir un enlace de desuscripción visible. SendDock genera este enlace automáticamente y maneja las desuscripciones por ti.
{{project_name}}
El nombre del proyecto desde el cual se envía el email.
{{current_year}}
El año actual (útil para copyrights).
Variables Personalizadas (Metadata)
Cualquier campo que guardes en el metadata del suscriptor está disponible como variable.
Ejemplo: Usuario con Metadata
Al crear o importar un suscriptor con este metadata:
{
"name": "María García",
"company": "Tech Startup",
"role": "Fundadora",
"plan": "Pro",
"trial_ends": "2024-12-31"
}
Puedes usar estas variables en tu plantilla:
Resultado:
Hola María García,
Como Fundadora de Tech Startup, queremos informarte que tu plan Pro expira el 2024-12-31.
Condicionales
Handlebars soporta condicionales para mostrar contenido solo si una variable existe o cumple una condición.
Verificar si Existe
Si el suscriptor tiene name en su metadata, mostrará "Hola Juan!", de lo contrario solo "¡Hola!".
Verificar Igualdad
SendDock usa Handlebars estándar. Para operaciones complejas, consulta la documentación oficial de Handlebars.
Condicionales Múltiples
Loops (Arrays)
Si tu metadata incluye arrays, puedes iterar sobre ellos:
Metadata con Array
{
"name": "Carlos",
"purchased_items": [
"Producto A",
"Producto B",
"Producto C"
]
}
Plantilla con Loop
Resultado:
Hola Carlos,
Gracias por tu compra de:
<ul>
<li>Producto A</li>
<li>Producto B</li>
<li>Producto C</li>
</ul>
Variables Anidadas
Puedes tener objetos complejos en metadata:
{
"user": {
"name": "Ana",
"email": "ana@example.com",
"preferences": {
"language": "es",
"timezone": "America/Mexico_City"
}
}
}
Accede con notación de punto:
Valores por Defecto
Si una variable podría no existir, usa el operador || para proporcionar un valor por defecto:
Si name no existe, mostrará "Hola Usuario,".
Formato de Fechas
Si tienes fechas en metadata:
{
"subscription_date": "2024-01-15",
"renewal_date": "2024-02-15"
}
Puedes mostrarlas directamente:
Para formato de fechas más legible, guárdalas ya formateadas en metadata desde tu backend antes de enviar.
Ejemplo:
{
"formatted_date": "15 de Enero de 2024"
}
URLs Dinámicas
Crea enlaces personalizados con variables:
Escapado de HTML
Por defecto, Handlebars escapa HTML por seguridad. Si necesitas insertar HTML:
Usa triples llaves {{{ en lugar de dobles {{.
Solo usa triples llaves con contenido que controles completamente. Nunca con input directo del usuario, para evitar XSS.
Casos de Uso Comunes
Email de Bienvenida
Confirmación de Pedido
Newsletter Personalizado
Debugging de Variables
Si una variable no se muestra, verifica:
- ¿Existe en metadata? Revisa el JSON del suscriptor en el dashboard
- ¿Nombre correcto? Las variables son sensibles a mayúsculas:
{{Name}}≠{{name}} - ¿Sintaxis correcta? Dobles llaves
{{variable}}, no{variable}o[[variable]] - ¿Envío de prueba? Usa "Enviar Email de Prueba" con datos de muestra para verificar
Verificar Metadata en Dashboard
En la sección de Suscriptores, haz clic en un suscriptor para ver su metadata:
{
"name": "Juan Pérez",
"company": "Mi Startup",
"plan": "pro"
}
Solo estas variables estarán disponibles: {{name}}, {{company}}, {{plan}}.
Limitaciones
Variables No Disponibles
Estas cosas NO están disponibles como variables:
- Datos de otros suscriptores
- Estadísticas del proyecto (total de suscriptores, envíos, etc.)
- Información de la cuenta del usuario (plan actual, facturación, etc.)
- Variables de entorno o secretos
Tamaño de Metadata
El metadata tiene un límite de 64KB por suscriptor. Evita almacenar:
- Imágenes en Base64
- Arrays con miles de elementos
- Textos muy largos (> 10,000 caracteres)
Enviar Datos vía API
Al enviar un email con la API, pasa los datos en el campo data:
await fetch('https://senddock.dev/api/v1/send', {
method: 'POST',
headers: {
'Authorization': 'Bearer sdk_...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'user@example.com',
template: 'welcome-email',
data: {
name: 'Juan',
company: 'Mi Empresa',
plan: 'pro',
trial_ends: '2024-12-31'
}
})
});
Si envías data en la API, se fusiona con el metadata del suscriptor. Los datos de la API tienen prioridad.