Skip to content

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

  1. 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.
  2. 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.

El formulario para crear una campaña de cupones en Punchh.

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.

Ejemplo de mensaje de confirmación después de que un usuario genere con éxito un código de cupón.

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:

  1. Añade {{jwt}} a la URL de generación dinámica que creaste anteriormente.
  2. Añade .png después del token en la cadena de URL.
  3. Inserta tu enlace en una etiqueta HTML <img>.
1
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Salida renderizada de la etiqueta de imagen del código del cupón.

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