Dynamische Code-Generierung mit Punchh
Ein Gutscheincode ist ein eindeutiger Code, der von einer einzelnen Nutzer:in verwendet werden kann (entweder einmalig oder mehrfach). Das Punchh-Framework generiert Gutscheincodes, die in einer mobilen App oder am Point-of-Sale (POS)-System verarbeitet werden können.
Diese Integration wird von Punchh gepflegt.
Über die Integration
Mit dem Punchh-Coupon-Framework und Braze können Sie die folgenden Szenarien umsetzen:
- Einen Coupon-Code generieren, wenn der Gast einen Link zur Coupon-Generierung in einer E-Mail auswählt: Der Coupon-Code wird dynamisch generiert und auf einer Webseite angezeigt.
- Einen Coupon-Code generieren, wenn der Gast eine E-Mail öffnet: Der Coupon-Code wird dynamisch generiert und als Bild innerhalb der E-Mail angezeigt.
Integration der dynamischen Gutscheincode-Generierung
Schritt 1: Gutscheinkampagne erstellen
- Erstellen Sie mithilfe einer Punchh-Gutscheinkampagne eine Kampagne zur dynamischen Gutscheingenerierung, wie in der folgenden Abbildung dargestellt.
- Das Punchh-Gutschein-Framework generiert die folgenden Parameter, um die dynamische Gutscheingenerierung zu ermöglichen:
- Token für die dynamische Gutscheingenerierung: Dies ist ein systemgeneriertes Sicherheits-Token für die Verschlüsselung.
- URL für die dynamische Gutscheingenerierung: Diese URL wird je nach Geschäftsanforderung als Link oder Bild in die E-Mail eingebettet.

Schritt 2: Signatur generieren und URL erstellen
Die JWT.IO-Bibliothek dekodiert, verifiziert und generiert JSON-Web-Tokens – eine offene, branchenübliche RFC-7519-Methode zur sicheren Darstellung von Ansprüchen zwischen zwei Parteien.
Die folgenden ClaimType-Namen können verwendet werden, um die Eindeutigkeit von Gästen und Gutscheinen sicherzustellen:
campaign_id: Repräsentiert die systemgenerierte Punchh-Campaign-ID.email: Repräsentiert die E-Mail-Adresse der Nutzer:in.first_name: Erfasst den Vornamen der Nutzer:in.last_name: Erfasst den Nachnamen der Nutzer:in.
Um die Punchh-API für dynamische Gutscheincodes zu verwenden, muss ein JWT-Token erstellt werden. Fügen Sie das folgende Liquid-Template in Ihrem Braze-Dashboard in den Nachrichtentext des gewünschten Kanals ein:
{% assign header = '{"alg":"HS256","typ":"JWT"}' | base64_encode | replace: '=', '' | replace: '+', '-' | replace: '/', '_' %}
{% capture payload_raw %}
{
"campaign_id": "CAMPAIGN_ID",
"email": "{{${email_address}}}",
"first_name": "{{${first_name}}}",
"last_name": "{{${last_name}}}"
}
{% endcapture %}
{% assign payload = payload_raw | replace: ' ', '' | replace: '\n', '' | base64_encode | replace: '=', '' | replace: '+', '-' | replace: '/', '_' %}
{% assign unsigned_token = header | append: "." | append: payload %}
{% assign secret = "DYNAMIC_COUPON_GENERATION_TOKEN" %}
{% assign signature_raw = unsigned_token | hmac_sha256_base64: secret %}
{% assign signature = signature_raw | replace: '=', '' | replace: '+', '-' | replace: '/', '_' %}
{% assign jwt = unsigned_token | append: "." | append: signature %}
Ersetzen Sie Folgendes:
| Platzhalter | Beschreibung |
|---|---|
DYNAMIC_COUPON_GENERATION_TOKEN |
Ihr Token für die dynamische Gutscheingenerierung. |
CAMPAIGN_ID |
Ihre Campaign-ID. |
Schritt 3: Gutscheincode an den Nachrichtentext anhängen
Verlinkung zu einer Punchh-Webseite
Um auf eine von Punchh gehostete Webseite zu verlinken, fügen Sie {{jwt}} an die URL für die dynamische Generierung an, die Sie zuvor erstellt haben. Ihr Link sollte in etwa wie folgt aussehen:
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX?sign={{jwt}}
Wenn Nutzer:innen die Gutschein-URL auswählen, werden sie zu einer von Punchh gehosteten Webseite weitergeleitet, auf der der generierte Gutschein angezeigt wird.

Code als Klartext über JSON extrahieren
Um eine JSON-Antwort zurückzugeben, hängen Sie {{jwt}} an die URL für die dynamische Generierung an, die Sie zuvor erstellt haben, und fügen Sie dann .json nach dem Token in der URL-Zeichenkette hinzu. Ihr Link sollte in etwa wie folgt aussehen:
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}}
Sie können dann Connected-Content nutzen, um den Code als Klartext in jeden Nachrichtentext einzufügen. Zum Beispiel:
{% connected_content https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}} :save punchh_coupon %}
{{punchh_coupon.coupon}}
Bild innerhalb von E-Mail-Inhalten verlinken
So verlinken Sie den Gutscheincode in einem Bild:
- Hängen Sie
{{jwt}}an die URL für die dynamische Generierung an, die Sie zuvor erstellt haben. - Fügen Sie
.pngnach dem Token in der URL-Zeichenkette hinzu. - Betten Sie Ihren Link in ein HTML-
<img>-Tag ein.
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Fehlermeldungen
| Fehlercode | Fehlermeldung | Beschreibung |
|---|---|---|
coupon_code_expired |
This promo code has expired | Der Code wird nach dem konfigurierten Ablaufdatum verwendet. |
coupon_code_success |
Congratulations, Promo Code Applied Successfully. | Der Code wurde erfolgreich verwendet. |
coupon_code_error |
Please enter a valid promo code | Der verwendete Code ist ungültig. |
coupon_code_type_error |
Incorrect coupon type. This coupon can only be redeemed at %{coupon_type}. |
Wenn ein Code, der am POS eingelöst werden soll, in der mobilen App verwendet wird, tritt dieser Fehler auf. |
usage_exceeded |
The usage for this coupon code’s campaign is full. Please try next time. | Die Nutzung des Codes überschreitet die Anzahl der Nutzer:innen, die ihn verwenden dürfen. Wenn die Dashboard-Konfiguration beispielsweise erlaubt, dass ein Code von 3.000 Nutzer:innen verwendet wird, und die Anzahl der Nutzer:innen 3.000 überschreitet, tritt dieser Fehler auf. |
usage_exceeded_by_guest |
This promo code has already been processed. | Die Nutzung des Codes durch eine:n Nutzer:in überschreitet die Anzahl der erlaubten Verwendungen. Wenn die Dashboard-Konfiguration beispielsweise erlaubt, dass ein einzelner Code dreimal von einer Person verwendet wird, und er häufiger eingelöst wird, tritt dieser Fehler auf. |
already_used_by_other_guest |
This promo code has already been used by some other guest. | Eine andere Person hat den Code bereits verwendet. |