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

# E-Mails mit programmierbaren Inhalten erstellen

<Alert type="warning">
  Diese Funktion steht derzeit in der Betaversion zur Verfügung. Durch die Nutzung dieser Funktionalität erklären Sie sich mit den [Entwickler-Beta-Bedingungen](https://legal.hubspot.com/hubspot-beta-terms) einverstanden. Dieser Leitfaden bezieht sich auf Funktionen, die nur im Rahmen der Betaversion verfügbar sind. [Melden Sie sich in Ihren Vorlagen oder Modulen für die Betaversion an.](https://knowledge.hubspot.com/de/marketing-email/create-programmable-emails)
</Alert>

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

Verwendung von programmierbaren Inhalten zur Personalisierung von E-Mails mit Daten aus Ihrem HubSpot-Account mithilfe von HubL.

Die Datenquellen, die Sie in E-Mails mit programmierbaren Inhalten verwenden können, hängen von Ihrem HubSpot-Abonnement ab:

* Mit einem ***Marketing Hub*** *Professional*-Abonnement können Sie Daten von Standard-CRM-Objekten wie Kontakten, Unternehmen und Produkten verwenden.
* Mit einem ***Marketing Hub*** *Enterprise*-Abonnement können Sie auch strukturierte Datenquellen wie [HubDB-Tabellen](https://developers.hubspot.com/docs) und [benutzerdefinierte Objekte](https://knowledge.hubspot.com/de/records/use-custom-objects) verwenden. Diese Daten können nach den Kontakteigenschaften des Empfängers gefiltert werden.

Auf einer Immobilien-Website könnten Interessenten beispielsweise ein Formular ausfüllen und die Kriterien für Ihre Wohnungssuche angeben. Die Formulareinsendung könnte dann einen Workflow auslösen, durch den Interessenten eine E-Mail mit Angeboten zugesendet wird, die passen könnten.

## Limits für den E-Mail-Versand

Sie können die CRM-HubL-Funktionen[crm\_object](/cms/reference/hubl/functions#crm-object), [crm\_objects](/cms/reference/hubl/functions#crm-objects) und [crm\_associations](/cms/reference/hubl/functions#crm-associations) in programmierbare E-Mail-Inhalte aufnehmen, aber jede E-Mail, die diese spezifischen Funktionen enthält, unterliegt den folgenden Beschränkungen, die von der Anzahl der Empfänger abhängen, an die Sie senden:

<table>
  <tbody>
    <tr>
      <td>
        <strong>Empfänger insgesamt</strong>
      </td>

      <td>
        <strong>Maximale Anzahl an CRM-HubL-Funktionen</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>

Das Versenden einer E-Mail, die eines der oben genannten Limits erreicht oder überschreitet, führt zu einer Verzögerung oder einem Abbruch des Versands Ihrer E-Mail.

Zusätzlich zu den oben genannten Limits sollten Sie die unten aufgeführten zusätzlichen Vorbehalte beachten:

* Wenn Sie eine E-Mail mit programmierbaren Inhalten klonen, kann sie nicht gesendet werden, solange sich das Original noch in einem Bearbeitungszustand befindet. Sie sollten zwischen jedem Versenden einer E-Mail mindestens eine Stunde warten.
* Sie können keinen A/B-Test für eine programmierbare E-Mail durchführen, die eine `crm_object`-, `crm_objects`- oder `crm_associations`-HubL-Funktion enthält. E-Mails, die mit diesen Funktionen gesendet werden, haben deutlich langsamere Sendezeiten als andere E-Mails, was zu ungenauen Testergebnissen führen kann.

## 1. Ein Modul mit programmierbaren E-Mail-Inhalten erstellen

So erstellen Sie das E-Mail-Modul für den Zugriff auf Ihre HubDB- oder benutzerdefinierten Objektdaten:

* Gehen Sie in Ihrem HubSpot-Account zu **Marketing** > **Dateien und Vorlagen** > **Design-Manager**.

* Klicken Sie oben links auf **Datei** und wählen Sie dann **Neue Datei** aus.

* Wählen Sie im Dialogfeld **Modul** für den Dateityp aus und klicken Sie dann auf **Weiter**. Aktivieren Sie dann das Kontrollkästchen **E-Mails** und geben Sie einen **Namen** für die Datei ein.

* Klicken Sie auf **Erstellen**.

* So aktivieren Sie programmierbare E-Mail-Inhalte für das Modul:

  * Aktivieren Sie im Inspektor auf der rechten Seite den Schalter **Modul für programmierbare E-Mail-Inhalte (Beta) aktivieren**.

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

* Sie können programmierbare E-Mail-Inhalte auch für eine E-Mail-Code-Vorlage aktivieren, indem Sie `isEnabledForEmailV3Rendering: true` am Anfang der Datei hinzufügen.

  ![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)

Mit dem erstellten Modul fügen Sie dann Code hinzu, um auf Daten aus Ihrem CRM zuzugreifen. In den folgenden Beispielen wird veranschaulicht, wie Abfragen aus verschiedenen Datenquellen durchgeführt werden.

### Standardobjekte

Sie können HubL-Funktionen wie [crm\_object](/cms/reference/hubl/functions#crm-object), [crm\_objects](/cms/reference/hubl/functions#crm-objects) und [crm\_associations](/cms/reference/hubl/functions#crm-associations) verwenden, um Daten von Standardobjekten in Ihrem Account wie Kontakten, Unternehmen oder Produkten abzufragen.

Der folgende Code verwendet die HubL-Funktion [`crm_object`](/cms/reference/hubl/functions#crm-object), um die Daten von einem Produkt mit der ID von `2444498793` abzufragen und den Namen, die Beschreibung und den Preis darzustellen:

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

### Benutzerdefinierte Objekte

Wenn Sie über einen ***Marketing Hub** Enterprise*-Account verfügen, können Sie Daten von einem benutzerdefinierten Objekt abfragen, den Sie in Ihrem Account erstellt haben.

Der folgende Code ruft Daten von einem benutzerdefinierten Objekt mit dem Namen *Eigenschaften* ab und gibt dabei Werte (z. B. Standort, Preis) zurück, die in den Eigenschaften des benutzerdefiniertes Objekts gespeichert sind.

Beachten Sie bitte, dass im folgenden Beispiel der vollständig qualifizierte Name des benutzerdefinierten Objekts als erstes Argument beim Aufrufen der [HubL-Funktion](/cms/reference/hubl/functions#crm-objects) `crm_objects` verwendet wird.

* Der vollständig qualifizierte Name beginnt mit der HubSpot-Account-ID (mit dem Präfix `p`), gefolgt von einem Unterstrich und dem kleingeschriebenen Pluralnamen des benutzerdefinierten Objekts (z. B. `properties`).
* Sie können den `fullyQualifiedName` eines Objekts abrufen, indem Sie eine `GET`-Anfrage an die [CRM-Objekte-Schema-API](https://developers.hubspot.com/docs) durchführen.

```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="Hinweis:">
  Wenn der Name Ihres benutzerdefinierten Objekts Bindestriche enthält (z. B. *Mein-benutzerdefiniertes-Objekt*), können die Eigenschaften <u>nicht</u> in einer E-Mail mit programmierbaren Inhalten dargestellt werden. Sie können das benutzerdefinierte Objekt ohne die Bindestriche [direkt in Ihrem HubSpot-Account](https://knowledge.hubspot.com/de/object-settings/create-custom-objects) neu erstellen, oder Sie können die [„Benutzerdefiniertes Objekt“-API](/api-reference/crm-custom-objects-v3/guide) verwenden.
</Alert>

Um die zurückgegebenen Daten für jeden Empfänger zu filtern, können Sie einen `query`-Parameter hinzufügen, der die Ergebnisse nach den Kontakteigenschaften des Empfängers filtert. Zeigen Sie die [vollständige Liste der Filteroptionen](/api-reference/cms-hubdb-v3/guide#filter-returned-rows) an.

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

Wenn Sie einen ***Marketing Hub*** *Enterprise*-Account haben, können Sie Daten aus einer HubDB-Tabelle in Ihrer E-Mail verwenden.

Der folgende Code verwendet die HubL-Funktion [`hubdb_table_rows`](/cms/reference/hubl/functions#hubdb-table-rows), um alle Daten aus der Tabelle abzurufen. Dadurch werden alle Immobilien in der E-Mail aufgelistet, wobei die Details zu jeder Immobilie zusammen mit ihrem Bild ausgegeben werden.

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

Um die zurückgegebenen Daten für jeden Empfänger zu filtern, können Sie einen `query`-Parameter hinzufügen, der die Ergebnisse nach den angegebenen Kontakteigenschaften filtert. Zeigen Sie die [vollständige Liste der Filteroptionen](/api-reference/cms-hubdb-v3/guide#filter-returned-rows) an.

```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">
  Im obigen Beispiel wird auf die Kontakteigenschaft *Budget max* mit `contact.budget_max` verwiesen, während auf *Persona* mit `contact.hs_persona.value` verwiesen wird. Dies liegt daran, dass *Persona* eine [Enumerationseigenschaft](https://knowledge.hubspot.com/de/properties/property-field-types-in-hubspot) ist, die einen zusätzlichen `.value` benötigt, um den Wert der Eigenschaft zu analysieren, was bei anderen Eigenschaftstypen nicht der Fall ist.
</Alert>

## 2. Das Modul zu einer E-Mail hinzufügen

Wenn das Modul veröffentlicht ist, fügen Sie es nun zum Text der Drag-&-Drop-E-Mail hinzu.

* Gehen Sie in Ihrem HubSpot-Account zu **Marketing** > **E-Mail**.
* Wählen Sie die **E-Mail** aus, die Sie erstellt haben.
* Klicken Sie in der linken Seitenleiste unter *Inhalte* auf **Mehr**. Suchen Sie nach Ihrem Modul für programmierbare E-Mail-Inhalte und ziehen Sie es in den E-Mail-Text.

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

Wenn Sie das Modul eingerichtet haben, um Daten nach bestimmten Kontakteigenschaften zu filtern, wird die E-Mail-Vorschau leer angezeigt. Dies liegt daran, dass das E-Mail-Tool nicht für die Vorschau der E-Mail durch einen bestimmten Kontakt eingerichtet wurde.

So zeigen Sie in einer Vorschau an, wie die E-Mail für einen bestimmten Kontakt aussehen wird:

* Klicken Sie oben rechts auf **Aktionen** und wählen Sie dann **Vorschau** aus.

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

* Klicken Sie im nächsten Bildschirm auf das Drop-down-Menü **Vorschau der Seite für einen bestimmten Kontakt anzeigen** und wählen Sie dann einen **Kontakt** aus.

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

Sie sollten jetzt nur die für den Empfänger relevanten Daten sehen, gefiltert nach dessen Kontakteigenschaften.

![Screenshot der E-Mail-Vorschau](https://f.hubspotusercontent00.net/hubfs/53/preview%20window.png)

Wenn eine E-Mail-Vorlage oder ein E-Mail-Modul benutzerdefinierten Code mit nicht aufgelöstem HubL enthält, wird stattdessen ein Platzhalter-Modul angezeigt.

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

<Alert type="warning">
  Es ist wichtig, immer über Fallback-Daten zu verfügen, die gesendet werden können, falls es keine HubDB-Zeilen oder Datensätze für benutzerdefinierte Objekte gibt, die die von Ihnen festgelegten Kriterien erfüllen. Andernfalls erhält der Empfänger möglicherweise eine leere E-Mail.

  Diese Betaversion kann Probleme mit vorhandenen Vorlagen verursachen. Sie sollten unbedingt alle Änderungen gründlich testen, bevor Sie eine E-Mail veröffentlichen und live schalten.
</Alert>

## Weitere Tutorials rund um HubDB

* [Erstellen von dynamischen Seiten mit HubDB](https://developers.hubspot.com/docs)
* [Zusammenführen mehrerer HubDB-Tabellen](https://developers.hubspot.com/docs)
* [Erstellen einer dynamischen Seite für Teammitglieder mithilfe von HubDB](https://developers.hubspot.com/docs)
* [Erstellen von dynamischen Seiten mit mehreren Ebenen mithilfe von HubDB](https://developers.hubspot.com/docs)

## HubSpot Academy

* [Verwenden von HubDB und benutzerdefinierten Objekten in CMS Hub](https://academy.hubspot.com/lessons/other_data_sources_hubdb_and_custom_objects)
