nicht funktionierende Prüfung einer Kontakteigenschaft im html Code

JRichter8
Participant

Hallo zusammen,

ich habe einen html Code für eine Mail erstellt, mit welchem eine Eigenschaft beim Kontakt geprüft werden soll. Enthält der Kontakt einen der Werte der Eigenschaft, soll hierfür ein verlinkter Text eingeblendet werden. Enthält er keinen Wert, bzw. einer der Werte ist nicht erfüllt, soll nichts angezeigt werden. 
Leider wird bei der Vorschau eines Testkontaktes, der die Eigenschaften definitv enthält, nichts in der Mail ausgegeben. 
Fehler wie die korrekte Schreibweise der Eigenschaften etc. habe ich bereits mehrfach geprüft. 

Hat jemand eine Idee, wie ich mein Problem lösen kann? Hier ist der Code:

<h2>2. Informationen zu deinen angeforderten Materialien</h2>
<p>
{% if contact.Eigenschaftsbeispiel %}
{% if "Wert1" in contact.Eigenschaftsbeispiel %}
<a href="https://www.platzhalterlink1.de">Broschüre1</a><br>
{% endif %}
{% if "Wert2" in contact.Eigenschaftsbeispiel %}
<a href="https://www.platzhalterlink2.de">Broschüre2</a><br>
{% endif %}
{% if "Wert3" in contact.Eigenschaftsbeispiel %}
<a href="https://www.platzhalterlink3.de">Broschüre3</a><br>
{% endif %}
{% else %}
Keine Materialien angefordert.
{% endif %}
</p>

 

Ich freue mich auf Ideen und Lösungsvorschläge 🙂 

0 Upvotes
4 Accepted solutions
Anton
Solution
Thought Leader | Partner
Thought Leader | Partner

Hi @JRichter8

 

wenn man 

{% if contact.Eigenschaftsbeispiel %}

schreibt, dann gibt die Abfrage meinst nur einen Boolean, also true/false zurück. Kann in manchen Fällen hilfreich sein, kann aber bei auch zu Fehlern führen.

 

{% if "Wert1" in contact.Eigenschaftsbeispiel %}

diese Schreibweise entspricht nicht der HubL Schreibweise, wenn du abfragen "Wenn Eigenschaftbeispiel gleich Wert1 entspricht" willst. 

Die korrekte Schreibweise wäre

{% if contact.Eigenschaftsbeispiel == "Wert1" %}

 

Da du den Code in emails verwenden möchtest, rate ich dazu ein Custom Modul zu erstellen (falls du dies noch nicht gemacht hast) und dann die "Use module for programmable email" Option zu aktivieren. Wenn diese Option deaktiviert bleibt, wird HubSpot die if-statements nicht akzeptieren. 

Bildschirmfoto 2025-03-28 um 09.10.06.png

 

Viele Grüße

Anton

Anton Bujanowski Signature

View solution in original post

mii
Solution
Contributor | Diamond Partner
Contributor | Diamond Partner

In E-Mails hatte ich bei der Boolean Prüfung, wie von Anton beschrieben, im Rückgabewert machmal ein String, wenn die Kontakt-Eigenschaft leer war. Prüfung wie folgend:

{%- set is_lastname = (contact.lastname and contact.lastname != "CONTACT.LASTNAME") -%}

 

View solution in original post

mii
Solution
Contributor | Diamond Partner
Contributor | Diamond Partner

Zusatzinfo: Vermutung, es liegt an der CRM-Eigenschaft, eine Objektprüfung wird nicht gelingen, wenn es sich um ein Mehrfachauswahlfeld handelt. Da in E-Mails nur limitiert mit HubL gearbeitet werden kann. HubL-Filter funktionieren weitesgehend auch nicht in E-Mails. Also mal eben mit dem Filter "|string" aus einem Array ein String machen und über "is string_containing" den Wert prüfen, wird ebenfalls fehlschlagen.

 

Kannst du bei der CRM-Eigenschaft ansetzen? Diese zu einem Textfeld (String) oder einfache Checkbox (Boolean) ändern?

View solution in original post

Anton
Solution
Thought Leader | Partner
Thought Leader | Partner

Hi @JRichter8,

danke für die Infos. Nach genauerer Betrachtung deines Codes ist mir aufgefallen, dass einige Aspekte weiter optimiert werden können. 

Versuche es mal mit folgendem Code:

{% if contact.Eigenschaftsbeispiel == "Wert 1"%}
   <a href="https://www.platzhalterlink1.de">Broschüre1</a><br>
{% elif contact.Eigenschaftsbeispiel == "Wert2" %}
   <a href="https://www.platzhalterlink2.de">Broschüre2</a><br>
{% elif contact.Eigenschaftsbeispiel == "Wert 3" %}
   <a href="https://www.platzhalterlink3.de">Broschüre3</a><br>
{% else %}
   Keine Materialien angefordert.
{% endif %}

 

Was wurde verändert?

  1. Entfernen des ersten if-statements - dies kann zu falschen Ergebnissen führen
  2. Zusammenfassen mehrerer if-statements zu einem - dies macht es leichter und stabiler

 

 

 

Tipp: Für die Entwicklung kannst du auch den |pprint filter nutzen um das Ergebnis leichter/schneller zu sehen.

 

Füge hierfür folgenden Code in dein Modul/template ein:

{{ contact.Eigenschaftsbeispiel|pprint }}

Wichtig: Entferne diesen Code, sobald du das gewünschte Ergebnis hast

 

 

Viele Grüße

Anton

Anton Bujanowski Signature

View solution in original post

8 Replies 8
Anton
Solution
Thought Leader | Partner
Thought Leader | Partner

Hi @JRichter8

 

wenn man 

{% if contact.Eigenschaftsbeispiel %}

schreibt, dann gibt die Abfrage meinst nur einen Boolean, also true/false zurück. Kann in manchen Fällen hilfreich sein, kann aber bei auch zu Fehlern führen.

 

{% if "Wert1" in contact.Eigenschaftsbeispiel %}

diese Schreibweise entspricht nicht der HubL Schreibweise, wenn du abfragen "Wenn Eigenschaftbeispiel gleich Wert1 entspricht" willst. 

Die korrekte Schreibweise wäre

{% if contact.Eigenschaftsbeispiel == "Wert1" %}

 

Da du den Code in emails verwenden möchtest, rate ich dazu ein Custom Modul zu erstellen (falls du dies noch nicht gemacht hast) und dann die "Use module for programmable email" Option zu aktivieren. Wenn diese Option deaktiviert bleibt, wird HubSpot die if-statements nicht akzeptieren. 

Bildschirmfoto 2025-03-28 um 09.10.06.png

 

Viele Grüße

Anton

Anton Bujanowski Signature
JRichter8
Participant

Hallo Anton,

leider bekomme ich auch mit dem veränderten Code keine Lösung. Ein Modul habe ich auch angelegt, aber auch hier wird mir außer der Überschrift in der Kontaktvorschau oder Testmail nichts ausgespielt...
Viele Grüße

0 Upvotes
Anton
Solution
Thought Leader | Partner
Thought Leader | Partner

Hi @JRichter8,

danke für die Infos. Nach genauerer Betrachtung deines Codes ist mir aufgefallen, dass einige Aspekte weiter optimiert werden können. 

Versuche es mal mit folgendem Code:

{% if contact.Eigenschaftsbeispiel == "Wert 1"%}
   <a href="https://www.platzhalterlink1.de">Broschüre1</a><br>
{% elif contact.Eigenschaftsbeispiel == "Wert2" %}
   <a href="https://www.platzhalterlink2.de">Broschüre2</a><br>
{% elif contact.Eigenschaftsbeispiel == "Wert 3" %}
   <a href="https://www.platzhalterlink3.de">Broschüre3</a><br>
{% else %}
   Keine Materialien angefordert.
{% endif %}

 

Was wurde verändert?

  1. Entfernen des ersten if-statements - dies kann zu falschen Ergebnissen führen
  2. Zusammenfassen mehrerer if-statements zu einem - dies macht es leichter und stabiler

 

 

 

Tipp: Für die Entwicklung kannst du auch den |pprint filter nutzen um das Ergebnis leichter/schneller zu sehen.

 

Füge hierfür folgenden Code in dein Modul/template ein:

{{ contact.Eigenschaftsbeispiel|pprint }}

Wichtig: Entferne diesen Code, sobald du das gewünschte Ergebnis hast

 

 

Viele Grüße

Anton

Anton Bujanowski Signature
mii
Solution
Contributor | Diamond Partner
Contributor | Diamond Partner

Zusatzinfo: Vermutung, es liegt an der CRM-Eigenschaft, eine Objektprüfung wird nicht gelingen, wenn es sich um ein Mehrfachauswahlfeld handelt. Da in E-Mails nur limitiert mit HubL gearbeitet werden kann. HubL-Filter funktionieren weitesgehend auch nicht in E-Mails. Also mal eben mit dem Filter "|string" aus einem Array ein String machen und über "is string_containing" den Wert prüfen, wird ebenfalls fehlschlagen.

 

Kannst du bei der CRM-Eigenschaft ansetzen? Diese zu einem Textfeld (String) oder einfache Checkbox (Boolean) ändern?

JRichter8
Participant

Vielen Dank @mii , dein Tipp mit der falschen Eigenschaft Mehrfachauswahlfeld hat mich auf den richtigen Lösungsweg gebracht. Ich baue nun grundlegend die Eigenschaften anders auf und kann über die Eigenschaft "Einzeiliger Text" später die if Anfrage in der Mail als Modul laufen lassen. Danke auch an @Anton , mit dem überarbeiteten Code mit den Einzeiligen Textfeldern funktioniert nun die Abfrage! 😊

JRichter8
Participant

Vielen Dank für deine Rückmeldung! Das ist dann wohl der Kern des Problems.
Wir hatten eine Agentur zur Einführung von Hubspot an unserer Seite, welche uns genau zum dem Einsatz von Mehreren Kontrollkästchen bei der Erstellung unserer Eigenschaften und Personalisierung der Mails geraten hat.

Die Idee der Agentur war, die angefragten Broschüren als Links in einer Eigenschaft von mehreren Kontrollkästchen zu hinterlegen und die Mail zu personalisieren. Das Endergebnis ist natürlich nicht gerade nutzerfreundlich, vor allem nicht, wenn mehrere Broschüren auf einmal angefragt werden.

 

Ich selber wollte also mit der if Bedingung die Nutzerfreundlichkeit herstellen. 

Habt ihr eine Idee, wie ich alternativ personalisierte und anklickbare Links bei den mehreren Kontrollkästchen aufbauen kann?

Ein einfaches Textfeld oder eine einfache Textbox ist in unserem Fall kaum umsetzbar...

0 Upvotes
mii
Solution
Contributor | Diamond Partner
Contributor | Diamond Partner

In E-Mails hatte ich bei der Boolean Prüfung, wie von Anton beschrieben, im Rückgabewert machmal ein String, wenn die Kontakt-Eigenschaft leer war. Prüfung wie folgend:

{%- set is_lastname = (contact.lastname and contact.lastname != "CONTACT.LASTNAME") -%}

 

MiaSrebrnjak
Community Manager
Community Manager

Hi @JRichter8

 

danke für deinen Beitrag! 

Ich wollte ein paar Experten um Hilfe bitten: 

Hi @MatthiasWeber@Anton@mii, habt ihr vielleicht Tipps für @JRichter8? 🙏 Vielen Dank! 

 

Beste Grüße,

Mia, Community Team      


loop Loop Marketing is a new four-stage approach that combines AI efficiency and human authenticity to drive growth.
Learn More

0 Upvotes