# Versions de modèle

> Les versions partagent un alias pour que vous puissiez rédiger, tester et publier un nouveau design sans modifier votre code. Fonctionnement de la publication dans le tableau de bord et via l’API.

Les versions vous permettent de modifier un modèle sans toucher au code qui l’envoie. Toutes les versions d’un modèle partagent un même alias, et une seule d’entre elles au plus est publiée. Les envois par alias utilisent toujours la version publiée : vous pouvez donc préparer une refonte en brouillon, la tester, puis y passer en un clic.

## Fonctionnement des versions

Chaque modèle est une version qui possède son propre ID `tem_`, son nom, son objet, son adresse d’expéditeur, son éditeur et son contenu. Les versions qui partagent le même alias forment un groupe :

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

| Référence au modèle | Version utilisée |
| --- | --- |
| Alias, par exemple `"template": "welcome-email"` | La version publiée. Si aucune version n’est publiée, l’envoi échoue avec `404 Template not found`. |
| ID `tem_`, par exemple `"template": "tem_33W1rXk9Pd2LmQ7vB4nC8sTyFgh"` | Cette version précise, publiée ou non |

Les mêmes règles s’appliquent à l’étape **Send email** des [automatisations](/fr/docs/automations/steps/). Dans le tableau de bord, la liste des modèles n’affiche que la version publiée de chaque alias. Les brouillons apparaissent dans le panneau **Versions** de la page du modèle.

## Créer une nouvelle version

1. **Ouvrez le modèle.** Accédez à **Email Marketing → Templates** et sélectionnez le modèle.

2. **Lancez une version.** Dans le panneau **Versions**, sélectionnez **New Version**.

3. **Choisissez la source.** Dans la boîte de dialogue **Create New Version**, choisissez sous **Copy from** la version de départ, puis sélectionnez **Create Version**. Emailit copie son objet, son adresse From, son adresse Reply-To, son éditeur et son contenu dans un nouveau brouillon nommé d’après la source, par exemple `Welcome email v3`.

4. **Modifiez le brouillon.** Sélectionnez **Open Editor** et apportez vos modifications. La version publiée continue d’être envoyée jusqu’à ce que vous publiiez le brouillon.

Une nouvelle version est aussi créée chaque fois que vous ajoutez un modèle dont l’alias existe déjà, que ce soit avec **Add template**, **Duplicate Template**, **Import** ou **Save as template** sur une campagne. Le nouveau modèle est enregistré comme brouillon. Les boîtes de dialogue **Add template**, **Duplicate Template** et **Save as template** vous avertissent avec **Alias already exists** ; **Import** ne le fait pas.

## Tester un brouillon

Envoyez-vous le brouillon par son ID `tem_` avant de le publier. Copiez l’ID depuis la page du modèle.

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

## Publier une version

Publier une version en fait la version en ligne de son alias. La version publiée jusque-là redevient un brouillon : une seule version est donc publiée à la fois.

**Tableau de bord**

  Ouvrez le brouillon et sélectionnez **Publish**, ou sélectionnez l’icône de publication à côté de lui dans le panneau **Versions**. La boîte de dialogue **Publish template** vous avertit que la publication remplacera la version actuellement en ligne. Sélectionnez **Publish** pour confirmer.

**API**

  Appelez [Publier un modèle](/fr/docs/api-reference/templates/publish/) (`POST /templates/{id}/publish`) avec l’ID `tem_` de la version et une clé **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 publication émet `template.updated` pour la version nouvellement publiée et pour la version dépubliée. Pour revenir en arrière, publiez de nouveau la version précédente.

## Modifier ou supprimer une version publiée

- **Les modifications sont en ligne immédiatement.** Enregistrer des modifications sur la version publiée change, dès cet instant, ce qu’utilisent les envois par alias. L’éditeur Dragit enregistre automatiquement pendant que vous travaillez : ses modifications sont donc en ligne au fur et à mesure. Pour préparer des modifications sans les publier, créez plutôt une nouvelle version.
- **La suppression ne publie pas une autre version.** Si vous supprimez la version publiée, l’alias n’a plus de version publiée, et les envois et automatisations qui utilisent l’alias échouent jusqu’à ce que vous en publiiez une autre. La suppression ne retire que cette version ; les autres restent.

## Les versions dans l’API

| Action | Comportement |
| --- | --- |
| [Créer un modèle](/fr/docs/api-reference/templates/create/) avec un nouvel alias | Le modèle est publié automatiquement. |
| [Créer un modèle](/fr/docs/api-reference/templates/create/) avec un alias existant | Le modèle est créé comme version non publiée, avec `published_at` à `null`. |
| [Lister les modèles](/fr/docs/api-reference/templates/list/) | Renvoie uniquement les versions publiées, une par alias, chacune avec `total_versions`. |
| [Récupérer un modèle](/fr/docs/api-reference/templates/get/) | Renvoie la version, ainsi que `versions` : les autres versions de l’alias avec leurs `id`, `name`, `published_at`, `created_at` et `updated_at`, de la plus récente à la plus ancienne. |
| [Mettre à jour un modèle](/fr/docs/api-reference/templates/update/) | Modifie les champs de la version sans changer son état de publication. Remplacer l’alias par un alias déjà utilisé échoue avec `Alias already exists`. |
| [Publier un modèle](/fr/docs/api-reference/templates/publish/) | Publie cette version et dépublie toutes les autres versions de l’alias. |
| [Supprimer un modèle](/fr/docs/api-reference/templates/delete/) | Supprime uniquement cette version. |

## Voir aussi

- [Créer et modifier des modèles](/fr/docs/templates/editors/)
- [Envoyer avec un modèle](/fr/docs/email-api/send-email/#send-with-a-template)
- [Référence de l’API des modèles](/fr/docs/api-reference/templates/)

---
Source: https://emailit.com/fr/docs/templates/versions/
