# Versioni dei template

> Le versioni condividono un alias, così puoi preparare, provare e pubblicare un nuovo design senza modificare il codice. Come funziona la pubblicazione nel pannello e con l’API.

Le versioni ti permettono di modificare un template senza toccare il codice che lo invia. Tutte le versioni di un template condividono un alias, e al massimo una di esse è pubblicata. Gli invii tramite alias usano sempre la versione pubblicata, quindi puoi preparare un nuovo design, provarlo e passarci con un clic.

## Come funzionano le versioni

Ogni template è una versione con il proprio ID `tem_`, nome, oggetto, indirizzo From, editor e contenuto. Le versioni con lo stesso alias formano un gruppo:

```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
```

| Come fai riferimento al template | Quale versione viene usata |
| --- | --- |
| Alias, ad esempio `"template": "welcome-email"` | La versione pubblicata. Se nessuna è pubblicata, l’invio non riesce con `404 Template not found`. |
| ID `tem_`, ad esempio `"template": "tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh"` | Esattamente quella versione, pubblicata o no |

Le stesse regole valgono per il passaggio **Send email** delle [automazioni](/it/docs/automations/steps/). Nel pannello, l’elenco dei template mostra solo la versione pubblicata di ogni alias. Le bozze compaiono nel pannello **Versions** della pagina del template.

## Crea una nuova versione

1. **Apri il template.** Vai a **Email Marketing → Templates** e seleziona il template.

2. **Avvia una versione.** Nel pannello **Versions**, seleziona **New Version**.

3. **Scegli l’origine.** Nella finestra **Create New Version**, scegli in **Copy from** la versione da cui partire, poi seleziona **Create Version**. Emailit copia oggetto, From, Reply-To, editor e contenuto in una nuova bozza con il nome dell’origine, ad esempio `Welcome email v3`.

4. **Modifica la bozza.** Seleziona **Open Editor** e apporta le modifiche. La versione pubblicata continua a essere inviata finché non pubblichi la bozza.

Una nuova versione viene creata anche ogni volta che aggiungi un template con un alias già esistente, che sia con **Add template**, **Duplicate Template**, **Import** o **Save as template** su una campagna. Il nuovo template viene salvato come bozza. Le finestre **Add template**, **Duplicate Template** e **Save as template** ti avvisano con **Alias already exists**; **Import** no.

## Prova una bozza

Prima di pubblicarla, invia la bozza a te stesso tramite il suo ID `tem_`. Copia l’ID dalla pagina del template.

```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" }
  }'
```

## Pubblica una versione

La pubblicazione rende una versione quella attiva per il suo alias. La versione pubblicata in precedenza diventa una bozza, quindi c’è sempre una sola versione pubblicata.

**Pannello**

  Apri la bozza e seleziona **Publish**, oppure seleziona l’icona di pubblicazione accanto alla bozza nel pannello **Versions**. La finestra **Publish template** avvisa che la pubblicazione sostituirà la versione attualmente attiva. Seleziona **Publish** per confermare.

**API**

  Chiama [Pubblica un template](/it/docs/api-reference/templates/publish/) (`POST /templates/{id}/publish`) con l’ID `tem_` della versione e una chiave **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 pubblicazione genera `template.updated` per la versione appena pubblicata e per quella ritirata. Per tornare indietro, pubblica di nuovo la versione precedente.

## Modifica o elimina una versione pubblicata

- **Le modifiche sono subito attive.** Salvare modifiche alla versione pubblicata cambia da quel momento ciò che usano gli invii tramite alias. L’editor Dragit salva automaticamente mentre lavori, quindi le sue modifiche diventano attive man mano che le fai. Per preparare le modifiche senza pubblicarle, crea invece una nuova versione.
- **L’eliminazione non promuove un’altra versione.** Se elimini la versione pubblicata, l’alias resta senza versione pubblicata, e gli invii e le automazioni che usano l’alias non riescono finché non ne pubblichi un’altra. L’eliminazione rimuove solo quella versione; le altre restano.

## Le versioni nell’API

| Azione | Comportamento |
| --- | --- |
| [Crea un template](/it/docs/api-reference/templates/create/) con un nuovo alias | Il template viene pubblicato automaticamente. |
| [Crea un template](/it/docs/api-reference/templates/create/) con un alias esistente | Il template viene creato come versione non pubblicata, con `published_at` impostato su `null`. |
| [Elenca i template](/it/docs/api-reference/templates/list/) | Restituisce solo le versioni pubblicate, una per alias, ciascuna con `total_versions`. |
| [Recupera un template](/it/docs/api-reference/templates/get/) | Restituisce la versione, più `versions`: le altre versioni dell’alias con `id`, `name`, `published_at`, `created_at` e `updated_at`, a partire dalla più recente. |
| [Aggiorna un template](/it/docs/api-reference/templates/update/) | Modifica i campi della versione senza cambiarne lo stato di pubblicazione. Cambiare l’alias in uno già in uso non riesce con `Alias already exists`. |
| [Pubblica un template](/it/docs/api-reference/templates/publish/) | Pubblica questa versione e ritira tutte le altre versioni dell’alias. |
| [Elimina un template](/it/docs/api-reference/templates/delete/) | Elimina solo questa versione. |

## Vedi anche

- [Crea e modifica i template](/it/docs/templates/editors/)
- [Invia con un template](/it/docs/email-api/send-email/#send-with-a-template)
- [Riferimento dell’API dei template](/it/docs/api-reference/templates/)

---
Fonte: https://emailit.com/it/docs/templates/versions/
