Generación dinámica de código con Punchh
Un código de cupón es un código único que puede ser utilizado por un solo usuario (ya sea de uso único o múltiple). El marco Punchh genera códigos de cupón, que pueden procesarse dentro de una aplicación móvil o en el sistema de punto de venta (TPV).
Esta integración está mantenida por Punchh.
Sobre la integración
Utilizando el marco de cupones Punchh y Braze, puedes lograr los siguientes escenarios:
- Generar un código de cupón cuando el invitado haga clic en un enlace de generación de cupón en un correo electrónico: el código del cupón se generará dinámicamente y se mostrará en una página web.
- Generar un código de cupón cuando el invitado abra un correo electrónico: el código del cupón se generará dinámicamente y se mostrará como una imagen dentro del correo electrónico.
Integración de la generación dinámica de códigos de cupón
Paso 1: Crear una campaña de cupones
- Utilizando una campaña de cupones Punchh, crea una campaña de cupones de generación dinámica como se muestra en la siguiente imagen.
- El marco de cupones Punchh generará los siguientes parámetros para permitir la generación dinámica de cupones:
- Token dinámico de generación de cupones: se trata de un token de seguridad generado por el sistema para la encriptación.
- URL de generación de cupones dinámicos: esta URL se incrustará en el correo electrónico como enlace o imagen, según requiera la empresa.

Paso 2: Generar firma y construir URL
La biblioteca JWT.IO descodifica, verifica y genera tokens web JSON, un método abierto RFC 7519 estándar del sector para representar reclamaciones de forma segura entre dos partes.
Los siguientes nombres ClaimType pueden utilizarse para garantizar la unicidad de los invitados y los cupones:
campaign_id: representa el ID de Campaign Punchh generado por el sistema.email: representa la dirección de correo electrónico del usuario.first_name: captura el nombre del usuario.last_name: captura el apellido del usuario.
Para utilizar la API de código de cupón dinámico de Punchh, debe construirse un token JWT. Añade la siguiente plantilla Liquid al dashboard de Braze en el cuerpo del mensaje del canal que deseas utilizar:
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 %}
Sustituye lo siguiente:
| Marcador de posición | Descripción |
|---|---|
DYNAMIC_COUPON_GENERATION_TOKEN |
Tu token de generación de cupones dinámicos. |
CAMPAIGN_ID |
Tu ID de Campaign. |
Paso 3: Añadir el código del cupón al cuerpo del mensaje
Enlace a la página web de Punchh
Para enlazar con una página web alojada en Punchh, añade {{jwt}} a la URL de generación dinámica que creaste anteriormente. Tu enlace debe ser similar al siguiente:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX?sign={{jwt}}
Cuando un usuario haga clic en la URL del cupón, será redirigido a una página web alojada en Punchh, donde se mostrará el cupón generado.

Extracción de código mediante JSON como texto sin formato
Para devolver una respuesta JSON, añade {{jwt}} a la URL de generación dinámica que creaste anteriormente y, a continuación, añade .json después del token en la cadena de URL. Tu enlace debe ser similar al siguiente:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}}
A continuación, puedes aprovechar el Contenido conectado para insertar el código como texto sin formato en el cuerpo de cualquier mensaje. Por ejemplo:
1
2
{% connected_content https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}} :save punchh_coupon %}
{{punchh_coupon.coupon}}
Enlazar una imagen dentro del contenido de un correo electrónico
Para enlazar el código del cupón dentro de una imagen:
- Añade
{{jwt}}a la URL de generación dinámica que creaste anteriormente. - Añade
.pngdespués del token en la cadena de URL. - Inserta tu enlace en una etiqueta HTML
<img>.
1
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Mensajes de error
| Código de error | Mensaje de error | Descripción |
|---|---|---|
coupon_code_expired |
This promo code has expired | El código se utiliza después de su fecha de caducidad configurada. |
coupon_code_success |
Congratulations, Promo Code Applied Successfully. | El código se utiliza correctamente. |
coupon_code_error |
Please enter a valid promo code | El código utilizado no es válido. |
coupon_code_type_error |
Incorrect coupon type. This coupon can only be redeemed at %{coupon_type}. |
Cuando un código que se supone que debe utilizarse en el TPV se utiliza en la aplicación móvil, se producirá este error. |
usage_exceeded |
The usage for this coupon code’s campaign is full. Please try next time. | El uso del código supera el número de usuarios autorizados a utilizarlo. Por ejemplo, si la configuración del dashboard permite que un código sea utilizado por 3000 usuarios y el número de usuarios supera los 3000, se producirá este error. |
usage_exceeded_by_guest |
This promo code has already been processed. | El uso del código por un usuario supera el número de veces que un usuario puede utilizarlo. Por ejemplo, la configuración del dashboard permite que un mismo código sea utilizado tres veces por un usuario. Si se utiliza más veces, se producirá este error. |
already_used_by_other_guest |
This promo code has already been used by some other guest. | Otro usuario ya ha utilizado el código. |