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 realisieren:
- Generieren Sie einen Gutscheincode, wenn der Gast in einer E-Mail auf einen Link zur Gutscheingenerierung klickt: Der Gutscheincode wird dynamisch generiert und auf einer Webseite angezeigt.
- Generieren Sie einen Gutscheincode, wenn der Gast eine E-Mail öffnet: Der Gutscheincode wird dynamisch generiert und als Bild in der E-Mail angezeigt.
Integration der dynamischen Gutscheincode-Generierung
1. Schritt: Gutscheinkampagne erstellen
- Erstellen Sie mit einer Punchh-Gutscheinkampagne eine dynamische Generierungs-Gutscheinkampagne, wie in der folgenden Abbildung gezeigt.
- Das Punchh-Coupon-Framework generiert die folgenden Parameter, um die dynamische Gutscheingenerierung zu ermöglichen:
- Token zur dynamischen Gutscheingenerierung: Dies ist ein vom System generiertes Sicherheits-Token für die Verschlüsselung.
- URL zur dynamischen Gutscheingenerierung: Diese URL wird als Link oder Bild in die E-Mail eingebettet, je nach Bedarf des Unternehmens.

2. Schritt: Signatur generieren und URL konstruieren
Die Bibliothek JWT.IO dekodiert, überprüft und generiert JSON-Web-Tokens, eine offene, dem Industriestandard RFC 7519 entsprechende Methode zur sicheren Darstellung von Claims zwischen zwei Parteien.
Die folgenden ClaimType-Namen können verwendet werden, um die Eindeutigkeit von Gästen und Gutscheinen zu gewährleisten:
campaign_id: steht für die vom System generierte Punchh-Campaign-ID.email: steht für 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 dynamische Gutscheincode-API von Punchh zu nutzen, muss ein JWT-Token erstellt werden. Fügen Sie die folgende Liquid-Vorlage in Ihrem Braze-Dashboard in den Nachrichtentext des Kanals ein, den Sie verwenden möchten:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{% 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 zur dynamischen Gutscheingenerierung. |
CAMPAIGN_ID |
Ihre Campaign-ID. |
3. Schritt: Gutscheincode an den Nachrichtentext anhängen
Verlinkung zur Punchh-Webseite
Um einen Link zu einer von Punchh gehosteten Webseite zu erstellen, fügen Sie {{jwt}} an die dynamische Generierungs-URL an, die Sie zuvor erstellt haben. Ihr Link sollte ähnlich wie der folgende aussehen:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX?sign={{jwt}}
Wenn Nutzer:innen auf die Gutschein-URL klicken, werden sie auf eine von Punchh gehostete Webseite weitergeleitet, auf der der generierte Gutschein angezeigt wird.

Code über JSON als reinen Text extrahieren
Um eine JSON-Antwort zurückzugeben, fügen Sie {{jwt}} an die dynamische Generierungs-URL an, die Sie zuvor erstellt haben, und fügen Sie dann .json nach dem Token in den URL-String ein. Ihr Link sollte ähnlich wie der folgende aussehen:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}}
Sie könnten dann Connected-Content nutzen, um den Code als reinen Text in jeden Nachrichtentext einzufügen. Zum Beispiel:
1
2
{% connected_content https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}} :save punchh_coupon %}
{{punchh_coupon.coupon}}
Gutscheincode als Bild in E-Mail-Inhalte einbinden
So verknüpfen Sie den Gutscheincode mit einem Bild:
- Fügen Sie
{{jwt}}an die dynamische Generierungs-URL an, die Sie zuvor erstellt haben. - Fügen Sie
.pngnach dem Token in den URL-String ein. - Betten Sie Ihren Link in einen HTML-
<img>-Tag ein.
1
<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 Verfallsdatum 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 verwendet 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 übersteigt die Anzahl der Nutzer:innen, die ihn verwenden dürfen. Wenn die Dashboard-Konfiguration beispielsweise die Verwendung eines Codes durch 3.000 Nutzer:innen zulässt und die Anzahl der Nutzer:innen 3.000 übersteigt, wird dieser Fehler angezeigt. |
usage_exceeded_by_guest |
This promo code has already been processed. | Die Nutzung des Codes durch eine Nutzer:in übersteigt die Anzahl der möglichen Nutzungen. Die Dashboard-Konfiguration erlaubt es beispielsweise, dass ein einzelner Code dreimal von einer Nutzer:in verwendet werden kann. Wird er häufiger verwendet, tritt dieser Fehler auf. |
already_used_by_other_guest |
This promo code has already been used by some other guest. | Eine andere Nutzer:in hat den Code bereits verwendet. |