# Versiones de plantilla

> Las versiones comparten un alias para que puedas preparar, probar y publicar un diseño nuevo sin cambiar el código. Cómo funciona la publicación en el panel y en la API.

Las versiones te permiten cambiar una plantilla sin tocar el código que la envía. Todas las versiones de una plantilla comparten un alias, y como máximo una de ellas está publicada. Los envíos por alias usan siempre la versión publicada, así que puedes preparar un rediseño, probarlo y pasar a él con un solo clic.

## Cómo funcionan las versiones

Cada plantilla es una versión con su propio ID `tem_`, su nombre, su asunto, su dirección del remitente, su editor y su contenido. Las versiones con el mismo alias forman un grupo:

```text
welcome-email
├── Welcome email v3   tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh   Draft
├── Welcome email v2   tem_33Vd8Hq3Ws5NzK1xR7cM2pLbYte   Published   ← sends by alias use this one
└── Welcome email      tem_33TfB6yN4qJ8kV2mX9wR1cHsDua   Draft
```

| Cómo haces referencia a la plantilla | Qué versión se usa |
| --- | --- |
| Por alias, como `"template": "welcome-email"` | La versión publicada. Si no hay ninguna publicada, el envío falla con `404 Template not found`. |
| Por ID `tem_`, como `"template": "tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh"` | Esa versión exacta, esté publicada o no |

Las mismas reglas se aplican al paso **Send email** de las [automatizaciones](/es/docs/automations/steps/). En el panel, la lista de plantillas solo muestra la versión publicada de cada alias. Los borradores aparecen en el panel **Versions** de la página de la plantilla.

## Crear una versión nueva

1. **Abre la plantilla.** Ve a **Email Marketing → Templates** y selecciona la plantilla.

2. **Empieza una versión.** En el panel **Versions**, selecciona **New Version**.

3. **Elige el origen.** En el cuadro de diálogo **Create New Version**, elige en **Copy from** la versión de la que quieres partir y selecciona **Create Version**. Emailit copia su asunto, su From, su Reply-To, su editor y su contenido en un borrador nuevo con el nombre del origen, como `Welcome email v3`.

4. **Edita el borrador.** Selecciona **Open Editor** y haz tus cambios. La versión publicada se sigue enviando hasta que publiques el borrador.

También se crea una versión nueva cada vez que añades una plantilla con un alias que ya existe, ya sea con **Add template**, **Duplicate Template**, **Import** o **Save as template** en una campaña. La plantilla nueva se guarda como borrador. Los cuadros de diálogo **Add template**, **Duplicate Template** y **Save as template** te avisan con **Alias already exists**; **Import**, no.

## Probar un borrador

Envíate el borrador por su ID `tem_` antes de publicarlo. Copia el ID de la página de la plantilla.

```bash
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": "you@acme.com",
    "template": "tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh",
    "variables": { "first_name": "Ada", "plan": "Pro" }
  }'
```

## Publicar una versión

Publicar una versión la convierte en la versión activa de su alias. La versión que estaba publicada pasa a ser un borrador, así que nunca hay más de una versión publicada.

**Panel**

  Abre el borrador y selecciona **Publish**, o selecciona el icono de publicar que tiene al lado en el panel **Versions**. El cuadro de diálogo **Publish template** avisa de que la publicación sustituirá a la versión activa actual. Selecciona **Publish** para confirmar.

**API**

  Llama a [Publicar una plantilla](/es/docs/api-reference/templates/publish/) (`POST /templates/{id}/publish`) con el ID `tem_` de la versión y una clave **Full Access**.

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/templates/tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh/publish \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch(
  'https://api.emailit.com/v2/templates/tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh/publish',
  { method: 'POST', headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` } },
);
const { data } = await res.json();
```

**Python**

```python
import os
import requests

res = requests.post(
    "https://api.emailit.com/v2/templates/tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh/publish",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
template = res.json()["data"]
```

**PHP**

```php
$ch = curl_init('https://api.emailit.com/v2/templates/tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh/publish');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$template = json_decode(curl_exec($ch), true)['data'];
```

La publicación emite `template.updated` para la versión recién publicada y para la versión que se ha despublicado. Para volver atrás, publica de nuevo la versión anterior.

## Editar o eliminar una versión publicada

- **Los cambios se aplican de inmediato.** Al guardar cambios en la versión publicada, cambia desde ese momento lo que usan los envíos por alias. El editor Dragit guarda automáticamente mientras trabajas, así que sus cambios se aplican a medida que los haces. Para preparar cambios sin aplicarlos, crea una versión nueva.
- **Eliminar no publica otra versión.** Si eliminas la versión publicada, el alias se queda sin versión publicada, y los envíos y las automatizaciones que usan el alias fallan hasta que publiques otra. Al eliminar, solo se borra esa versión; las demás se conservan.

## Versiones en la API

| Acción | Comportamiento |
| --- | --- |
| [Crear una plantilla](/es/docs/api-reference/templates/create/) con un alias nuevo | La plantilla se publica automáticamente. |
| [Crear una plantilla](/es/docs/api-reference/templates/create/) con un alias existente | La plantilla se crea como una versión sin publicar, con `published_at` a `null`. |
| [Listar plantillas](/es/docs/api-reference/templates/list/) | Devuelve solo las versiones publicadas, una por alias, cada una con `total_versions`. |
| [Obtener una plantilla](/es/docs/api-reference/templates/get/) | Devuelve la versión y además `versions`: las demás versiones del alias con su `id`, `name`, `published_at`, `created_at` y `updated_at`, de la más reciente a la más antigua. |
| [Actualizar una plantilla](/es/docs/api-reference/templates/update/) | Cambia los campos de la versión sin cambiar si está publicada o no. Cambiar el alias por uno que ya está en uso falla con `Alias already exists`. |
| [Publicar una plantilla](/es/docs/api-reference/templates/publish/) | Publica esta versión y despublica todas las demás versiones del alias. |
| [Eliminar una plantilla](/es/docs/api-reference/templates/delete/) | Elimina solo esta versión. |

## Ver también

- [Crear y editar plantillas](/es/docs/templates/editors/)
- [Enviar con una plantilla](/es/docs/email-api/send-email/#send-with-a-template)
- [Referencia de la API de plantillas](/es/docs/api-reference/templates/)

---
Fuente: https://emailit.com/es/docs/templates/versions/
