Zum Inhalt springen

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

  1. Erstellen Sie mithilfe einer Punchh-Gutscheinkampagne eine Kampagne zur dynamischen Gutscheingenerierung, wie in der folgenden Abbildung dargestellt.
  2. 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.

Das Formular zum Erstellen einer Gutscheinkampagne in Punchh.

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.

Beispielbestätigungsnachricht nach erfolgreicher Generierung eines Gutscheincodes.

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:

  1. Hängen Sie {{jwt}} an die URL für die dynamische Generierung an, die Sie zuvor erstellt haben.
  2. Fügen Sie .png nach dem Token in der URL-Zeichenkette hinzu.
  3. Betten Sie Ihren Link in ein HTML-<img>-Tag ein.
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Gerenderte Ausgabe des Gutscheincode-Bild-Tags.

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.
New Stuff!