> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.fr/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer des e-mails au contenu programmable

<Alert type="warning">
  Cette fonctionnalité est actuellement en version bêta. En utilisant cette fonctionnalité, vous acceptez les [conditions d'utilisation des outils bêta destinés aux développeurs](https://legal.hubspot.com/hubspot-beta-terms). Ce guide fait référence aux fonctionnalités disponibles uniquement via cette version bêta. [Inscrivez-vous à la version bêta dans vos modèles ou modules.](https://knowledge.hubspot.com/fr/marketing-email/create-programmable-emails)
</Alert>

<ProductTier tiers={['marketing_hub-professional', 'marketing_hub-enterprise']} />

Utilisez du contenu programmable pour personnaliser vos e-mails avec des données depuis votre compte HubSpot via HubL.

Les sources de données que vous pouvez utiliser dans un e-mail programmable dépendent de votre abonnement HubSpot :

* Si vous disposez d'un abonnement ***Marketing Hub*** *Pro*, vous pouvez utiliser des données à partir d'objets CRM standard, tels que des contacts, des entreprises et des produits.
* Si vous avez un abonnement ***Marketing Hub*** *Entreprise*, vous pouvez aussi utiliser des sources de données structurées telles que les tableaux [HubDB](https://developers.hubspot.com/docs) et les [objets personnalisés](https://knowledge.hubspot.com/fr/records/use-custom-objects). Ces données peuvent être filtrées en fonction des propriétés de contact du destinataire.

Par exemple, un site web d'agence immobilière peut demander à ses prospects de remplir un formulaire décrivant leurs besoins en matière de logement. La soumission de formulaire peut alors déclencher un workflow qui envoie au prospect un e-mail avec des maisons susceptibles de l'intéresser.

## Limites d'envoi d'e-mails

Vous pouvez inclure les fonctions CRM HubL [crm\_object](/docs/cms/reference/hubl/functions#crm-object), [crm\_objects](/docs/cms/reference/hubl/functions#crm-objects) et [crm\_associations](/docs/cms/reference/hubl/functions#crm-associations) dans un e-mail programmable, mais tout e-mail qui inclut ces fonctions spécifiques est soumis aux limites suivantes, en fonction du nombre de destinataires à qui vous envoyez l'e-mail :

<table>
  <tbody>
    <tr>
      <td>
        <strong>Nombre total de destinataires</strong>
      </td>

      <td>
        <strong>Nombre maximal de fonctions CRM HubL</strong>
      </td>
    </tr>

    <tr>
      <td>500 000</td>
      <td>1</td>
    </tr>

    <tr>
      <td>250 000</td>
      <td>2</td>
    </tr>

    <tr>
      <td>165.000</td>
      <td>3</td>
    </tr>

    <tr>
      <td>125.000</td>
      <td>4</td>
    </tr>

    <tr>
      <td>100.000</td>
      <td>5</td>
    </tr>
  </tbody>
</table>

L'envoi d'un e-mail qui atteint ou dépasse l'une des limites ci-dessus retardera ou annulera l'envoi de votre e-mail.

Outre les limites indiquées ci-dessus, tenez compte des avertissements supplémentaires énumérés ci-dessous :

* Si vous clonez un e-mail programmable, il ne peut pas être envoyé tant que l'original est encore en état de traitement. Vous devez attendre au moins 1 heure entre chaque envoi d'e-mails.
* Vous ne pouvez pas effectuer d'A/B testing pour un e-mail programmable comprenant une fonction HubL `crm_object`, `crm_objects`, ou `crm_associations`. Les e-mails envoyés à l'aide de ces fonctions ont des temps d'envoi beaucoup plus lents que les autres e-mails, ce qui peut produire des résultats de test inexacts.

## 1. Créer un module d'e-mail programmable

Pour créer le module d'e-mail afin d'accéder à vos données HubDB ou d'objet personnalisé :

* Dans votre compte HubSpot, accédez à **Marketing** > **Fichiers et modèles** > **Outils de conception**.

* Dans l'angle supérieur gauche, cliquez sur **Fichier**, puis sélectionnez **Nouveau fichier**.

* Dans la boîte de dialogue, sélectionnez **Module** pour le type de fichier, puis cliquez sur **Suivant**. Ensuite, sélectionnez la case à cocher **E-mails** et saisissez un **nom** pour le fichier.

* Cliquez sur **Créer**.

* Pour activer la messagerie programmable du module :

  * Dans l'inspecteur à droite, activez l'interrupteur **Activer le module pour la version bêta des e-mails programmables**.

  ![programmable-email-switch0](https://www.hubspot.fr/hubfs/Knowledge_Base_2021/Developer/programmable-email-switch0.png)

* Vous pouvez également activer les e-mails programmables pour un modèle d'e-mail codé en ajoutant `isEnabledForEmailV3Rendering: true` en haut du fichier.

  ![enable-design-manager-template-for-programmable-email](https://knowledge.hubspot.com/hs-fs/hubfs/Imported%20sitepage%20images/enable-design-manager-template-for-programmable-email.png?width=510\&name=enable-design-manager-template-for-programmable-email.png)

Une fois le module créé, vous ajouterez ensuite du code pour accéder aux données de votre CRM. Les exemples suivants ci-dessous montrent comment effectuer des requêtes à partir de différentes sources de données.

### Objets standard

Vous pouvez utiliser les fonctions HubL telles que [crm\_object](/docs/cms/reference/hubl/functions#crm-object), [crm\_objects](/docs/cms/reference/hubl/functions#crm-objects) et [crm\_associations](/docs/cms/reference/hubl/functions#crm-associations) pour interroger des données à partir d'objets standards de votre compte, tels que des contacts, des entreprises ou des produits.

Le code ci-dessous utilise la fonction HubL [`crm_object`](/docs/cms/reference/hubl/functions#crm-object) pour interroger les données d'un produit avec un ID de `2444498793` et restituer le nom, la description et le prix :

```hubl theme={null}
{% set product = crm_object("product", 2444498793, "name,description,price") %}

<div>
  <p>
    <span>Name: </span>
    <span>{{ product.name }}</span>
  </p>
  <p>
    <span>Description: </span>
    <span>{{ product.description }}</span>
  </p>
  <p>
    <span>Price: </span>
    <span>{{ product.price }}</span>
  </p>
</div>
```

### Objets personnalisés

Si vous disposez d'un compte ***Marketing Hub** Entreprise*, vous pouvez interroger les données d'un objet personnalisé que vous avez créé.

Le code ci-dessous récupère les données d'un objet personnalisé nommé *Propriété*, et renvoie les valeurs (par exemple : emplacement, prix) stockées dans les propriétés de l'objet personnalisé.

Notez que l'exemple ci-dessous utilise le nom complet de l'objet personnalisé comme premier argument lors de l'appel de la [fonction HubL](/docs/cms/reference/hubl/functions#crm-objects) `crm_objects`.

* Le nom complet commence par l'ID du compte HubSpot (affichant le préfixe `p`), suivi d'un tiret bas et du nom pluriel en minuscule de l'objet personnalisé (par exemple : `properties`).
* Vous pouvez récupérer le `fullyQualifiedName` d'un objet en effectuant une requête `GET` auprès de [l'API schéma d'objets CRM](https://developers.hubspot.com/docs).

```hubl theme={null}
{% set real_estate_listings = crm_objects("p2990812_properties", "", "listing_name,location, price, address, type") %}

{% for home in real_estate_listings.results %}
    {{ home.address}} <br>
	{{ home.price }} <br>
	<img
	alt="{{ home.name }}"
	src="{{ home.hero_image }}"
	style="outline: none; max-width: 100%;"
	width="260px"
	/>
	<br>
	<hr>
{% endfor %}
```

<Alert type="warning" titleText="Remarque :">
  Si le nom de votre objet personnalisé contient des traits d'union (par exemple : *My-Custom-Object*), ses propriétés ne peuvent <u>pas</u> être restituées dans un e-mail programmable. Vous pouvez recréer l'objet personnalisé en omettant les traits d'union [directement dans votre compte HubSpot](https://knowledge.hubspot.com/fr/object-settings/create-custom-objects) ou vous pouvez utiliser [l'API d'objet personnalisé.](/docs/api-reference/crm-custom-objects-v3/guide)
</Alert>

Pour filtrer les données renvoyées pour chaque destinataire, vous pouvez ajouter un paramètre `query` qui filtrera les résultats selon les propriétés de contact du destinataire. Consulter la [liste complète d'options de filtre](/docs/api-reference/cms-hubdb-v3/guide#filter-returned-rows).

```hubl theme={null}
{% set query = "price__lte="~contact.budget_max|int~"&price__gte="~contact.budget_min|int~"&city="~contact.city"&order=listing_name" %}
{% set real_estate_listings = crm_objects("p2990812_Property", query, "listing_name,location, price, address, type") %}
{% for home in real_estate_listings.results %}

  ...

{% endfor %}
```

### HubDB

Si vous disposez d'un compte ***Marketing Hub*** *Entreprise*, vous pouvez utiliser les données d'un tableau HubDB dans votre e-mail.

Le code ci-dessous utilise la fonction HubL [`hubdb_table_rows`](/docs/cms/reference/hubl/functions#hubdb-table-rows) pour récupérer toutes les données du tableau. Cela répertoriera toutes les propriétés immobilières dans l'e-mail, en affichant les détails de chaque propriété, ainsi que leur image.

```hubl theme={null}
{% set real_estate_listings = hubdb_table_rows(1234567) %}

{% for home in real_estate_listings%}
    {{ home.address}} <br>
	{{ home.price }} <br>
	<img
	alt="{{ home.name }}"
	src="{{ home.hero_image.url }}"
	style="outline: none; max-width: 100%;"
	width="260px"
	/>
	<br>
	<hr>
{% endfor %}
```

Pour filtrer les données renvoyées pour chaque destinataire, vous pouvez ajouter un paramètre `query` qui filtrera les résultats selon les propriétés de contact spécifiques. Consulter la [liste complète d'options de filtre](/docs/api-reference/cms-hubdb-v3/guide#filter-returned-rows).

```hubl theme={null}
{% set query = "price__lte="~contact.budget_max|int~"&price__gte="~contact.budget_min|int~"&persona="~contact.hs_persona.value~"&order=listing_name" %}

{% for home in real_estate_listings %}

	...

{% endfor %}
```

<Alert type="info">
  Dans l'exemple ci-dessus, la propriété de contact *Budget max* est référencée avec `contact.budget_max`, tandis que *Buyer persona* est référencée avec `contact.hs_persona.value`. En effet, *Buyer persona* est une [propriété d'énumération](https://knowledge.hubspot.com/fr/properties/property-field-types-in-hubspot), qui nécessite un élément `.value` supplémentaire pour analyser la valeur de propriété, contrairement aux autres types de propriétés.
</Alert>

## 2. Ajouter le module à un e-mail

Une fois le module publié, vous pourrez désormais l'ajouter au corps de l'e-mail glisser-déposer.

* Dans votre compte HubSpot, naviguez vers **Marketing** > **E-mail**.
* Sélectionnez l'**e-mail** que vous avez créé.
* Dans la barre latérale gauche, sous *Content*, cliquez sur **More**. Trouvez votre module d'e-mail programmable, puis faites-le glisser dans le corps de l'e-mail.

![drag-and-drop-email-editor-more-modules](https://www.hubspot.fr/hubfs/Knowledge_Base_2021/Developer/drag-and-drop-email-editor-more-modules.png)

Si vous avez configuré le module pour filtrer les données selon des propriétés de contact spécifiques, l'aperçu de l'e-mail apparaîtra vide. En effet, l'outil e-mail n'a pas été configuré pour prévisualiser l'e-mail d'un contact spécifique.

Pour prévisualiser l'e-mail d'un contact spécifique :

* En haut à droite, cliquez sur **Actions**, puis sélectionnez **Aperçu**.

![email-actions-menu0](https://www.hubspot.fr/hubfs/Knowledge_Base_2021/Developer/email-actions-menu0.png)

* Sur l'écran suivant, cliquez sur le menu déroulant **Afficher en tant que contact spécifique**, puis sélectionnez un **contact**.

![preview-email-as-specific-contact0](https://www.hubspot.fr/hubfs/Knowledge_Base_2021/Developer/preview-email-as-specific-contact0.png)

Vous ne devriez désormais voir que les données pertinentes pour le destinataire, filtrées par ses propriétés de contact.

![Screenshot of Email Preview](https://f.hubspotusercontent00.net/hubfs/53/preview%20window.png)

Si un modèle d'e-mail ou un module contient du code personnalisé avec un HubL non résolu, un module de variable apparaîtra à sa place.

![placeholder-module-in-programmable-email](https://www.hubspot.fr/hubfs/Knowledge_Base_2023_2024/placeholder-module-in-programmable-email.png)

<Alert type="warning">
  Il est important de toujours disposer de données de secours à envoyer au cas où aucune ligne HubDB ou fiche d'informations d'objet personnalisé ne réponde aux critères définis. Sinon, le destinataire pourrait recevoir un e-mail vide.

  Cette version bêta peut entraîner des problèmes avec les modèles existants. Il est important de tester soigneusement toute modification avant de publier et d'envoyer un e-mail en direct.
</Alert>

## Tutoriels supplémentaires sur HubDB

* [Création de pages dynamiques avec HubDB](https://developers.hubspot.com/docs)
* [Joindre des tableaux HubDB](https://developers.hubspot.com/docs)
* [Comment créer une page d'équipe dynamique avec HubDB](https://developers.hubspot.com/docs)
* [Comment créer des pages dynamiques multi-niveaux via HubDB](https://developers.hubspot.com/docs)

## HubSpot Academy

* [Utiliser HubDB et les objets personnalisés dans le CMS Hub](https://academy.hubspot.com/lessons/other_data_sources_hubdb_and_custom_objects)
