---
title: Sistema de Plantillas - Contenido de Notificación Dinámico
sidebarTitle: Plantillas
description: Domina el sistema de plantillas de Echobell para crear notificaciones dinámicas e informativas. Guía completa de sustitución de variables, expresiones, operadores, variables del sistema y mejores prácticas para plantillas de notificación.
---

# Plantillas en Echobell

Las plantillas en Echobell te permiten crear notificaciones dinámicas y ricas en contexto incorporando variables en los títulos y cuerpos de tus notificaciones. Esta poderosa función permite alertas personalizadas e informativas que se adaptan según los datos del disparador, transformando notificaciones genéricas en inteligencia procesable.

## Sintaxis Básica de Plantillas

En las plantillas de Echobell, puedes usar variables envolviéndolas en llaves dobles:

```
{{nombreVariable}}
```

Cuando se activa un canal, estas variables se reemplazan con valores reales pasados a través del disparador. Por ejemplo, si tu plantilla de título es `Has recibido ${{cantidad}}` y activas el canal con un valor de `cantidad` de 100, la notificación resultante se mostrará como `Has recibido $100`.

## Expresiones Avanzadas de Plantillas

Las plantillas de Echobell admiten diversas expresiones para escenarios más complejos:

- Acceder a Propiedades de Objetos

```
{{usuario.nombre}}
{{datos["valor"]}}
```

- Acceder a Elementos de Arreglos

```
{{elementos[0]}}
```

- Usar Operadores de Comparación

```
{{estado == "activo"}}
{{edad > 18}}
```

- Operadores Lógicos

```
{{estaSuscrito && !estaPausado}}
{{esUrgente || esAltaPrioridad}}
```

Todos los operadores estándar son compatibles: `==`, `!=`, `<`, `>`, `<=`, `>=`, `&&`, `||`, y `!`.

## Variables de Plantilla de Diferentes Disparadores

### Disparadores de Webhook

Al disparar a través de webhook, puedes proporcionar variables a través de:

1. **Parámetros de cadena de consulta**:

   ```http
   GET https://hook.echobell.one/t/tu-id-de-canal?cantidad=100&estado=completado
   ```

2. **Cuerpo JSON** (para peticiones POST):

   ```http
   POST https://hook.echobell.one/t/tu-id-de-canal
   Content-Type: application/json

   {
     "cantidad": 100,
     "estado": "completado",
     "usuario": {
       "nombre": "Juan",
       "id": 12345
     }
   }
   ```

3. **Variables especiales**:
   - `externalLink`: Proporciona un enlace clickeable en los registros de notificación
   - `bodyAsText`: El contenido de texto plano del cuerpo de la solicitud si `Content-Type` es `text/plain`
   - `header`: Da acceso a los encabezados de la petición HTTP (p.ej., `{{header["content-type"]}}`)

### Disparadores de Email

Cuando un canal se dispara por email, las siguientes variables están disponibles automáticamente:

- `from`: La dirección de correo del remitente
- `to`: La dirección de correo del destinatario
- `subject`: La línea de asunto del correo
- `text`: El contenido de texto plano del correo
- `html`: El contenido HTML del correo

## Casos de Uso de Plantillas

### Contenido Condicional

Puedes usar plantillas para mostrar diferentes contenidos basados en condiciones:

```
Recibido pago {{cantidad > 1000 ? "grande" : "estándar"}}: ${{cantidad}}
```

### Condiciones de Canal

Además de usar plantillas en el contenido de las notificaciones, puedes establecer **Condiciones** en la configuración avanzada del canal que determinan si las notificaciones deben enviarse o no. Estas condiciones utilizan la misma sintaxis de expresión (sin las llaves).

Por ejemplo, para enviar notificaciones solo para cantidades mayores a un umbral:

```
cantidad > 100
```

## Plantillas de Enlaces

Configura una plantilla de enlace personalizada en la configuración avanzada del canal para crear enlaces clickeables en los registros de notificación:

```
https://dashboard.example.com/ordenes/{{idOrden}}
```

Si no se establece ninguna plantilla de enlace, se usará por defecto el valor de la variable `externalLink`.

## Variables de tiempo del sistema (UTC)

Estas variables están siempre disponibles para las plantillas (y condiciones) y se calculan en UTC:

- `timezone`: Siempre `"UTC"`
- `now` / `iso`: Marca de tiempo ISO‑8601 (p. ej., `2025-05-06T12:34:56.789Z`)
- `epochMs`, `epochSeconds`: Tiempo actual desde el Unix epoch (número)
- `year`, `month` (1–12), `monthName`
- `dayOfMonth`, `dayOfWeek` (0–6, domingo = 0), `dayOfWeekName`
- `hour` (0–23), `minute`, `second`
- `date` (`YYYY-MM-DD`), `time` (`HH:mm:ss`)

Ejemplos:

```
Enviado a las {{date}} {{time}} {{timezone}}
Hoy es {{dayOfWeekName}}, {{monthName}} {{dayOfMonth}}, {{year}}
Época: {{epochSeconds}}
```

## Mejores Prácticas

1. **Valores Predeterminados**: Considera proporcionar valores predeterminados para variables opcionales:

   ```
   {{nombreUsuario || "Usuario Anónimo"}}
   ```

2. **Plantillas Informativas**: Incluye información clave en tus plantillas para hacer que las notificaciones sean accionables:

   ```
   {{servicio}}: {{estado}} - {{mensaje}}
   ```

3. **Mantén las Plantillas Concisas**: Las notificaciones se muestran mejor cuando los títulos y cuerpos son claros y directos.

4. **Pruebas**: Prueba tus plantillas con diferentes combinaciones de variables para asegurarte de que se rendericen como se espera.

Las plantillas son una forma poderosa de crear notificaciones dinámicas e informativas que proporcionan a los usuarios exactamente la información que necesitan, cuando la necesitan.
