Ir al contenido

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.

Acerca de la integración

Usando el marco de cupones de Punchh y Braze, puedes lograr los siguientes escenarios:

  • Generar un código de cupón cuando el usuario selecciona un enlace de generación de cupón en un correo electrónico: El código de cupón se genera dinámicamente y se muestra en una página web.
  • Generar un código de cupón cuando el usuario abre un correo electrónico: El código de cupón se genera dinámicamente y se muestra como una imagen dentro del correo electrónico.

Integración de la generación dinámica de códigos de cupones

Paso 1: Crear una campaña de cupones

  1. Usando una campaña de cupones de Punchh, crea una campaña de generación dinámica de cupones como se muestra en la siguiente imagen.
  2. El framework de cupones de Punchh genera los siguientes parámetros para habilitar la generación dinámica de cupones:
    • Token de generación dinámica de cupones: Este es un token de seguridad generado por el sistema para el cifrado.
    • URL de generación dinámica de cupones: Esta URL se incorpora en el correo electrónico como un enlace o imagen, según lo requiera el negocio.

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

Paso 2: Generar la firma y construir la URL

La biblioteca JWT.IO decodifica, verifica y genera tokens web JSON, un método abierto y estándar de la industria RFC 7519 para representar claims de forma segura entre dos partes.

Los siguientes nombres de ClaimType pueden usarse para garantizar la unicidad de invitados y cupones:

  • campaign_id: representa el ID de la Campaign de 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 usar la API de código de cupón dinámico de Punchh, se debe construir un token JWT. Agrega la siguiente plantilla Liquid en tu panel de Braze en el cuerpo del mensaje del canal que desees utilizar:

{% 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 %}

Reemplaza lo siguiente:

Marcador de posición Descripción
DYNAMIC_COUPON_GENERATION_TOKEN Tu token de generación dinámica de cupones.
CAMPAIGN_ID Tu ID de Campaign.

Paso 3: Agregar el código de cupón al cuerpo del mensaje

Enlazar a una página web de Punchh

Para enlazar a una página web alojada en Punchh, agrega {{jwt}} a la URL de generación dinámica que creaste anteriormente. Tu enlace debería ser similar al siguiente:

https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX?sign={{jwt}}

Cuando un usuario selecciona la URL del cupón, es redirigido a una página web alojada en Punchh, donde se muestra su cupón generado.

Ejemplo de mensaje de confirmación después de que un usuario genera exitosamente un código de cupón.

Extraer el código vía JSON como texto plano

Para obtener una respuesta JSON, agrega {{jwt}} a la URL de generación dinámica que creaste anteriormente, luego agrega .json después del token en la cadena de la URL. Tu enlace debería ser similar al siguiente:

https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}}

Luego podrías aprovechar el contenido conectado para insertar el código como texto plano en cualquier cuerpo de mensaje. Por ejemplo:

{% 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 correo electrónico

Para enlazar el código de cupón dentro de una imagen:

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

Resultado renderizado de la etiqueta de imagen del código de cupón.

Mensajes de error

Código de error Mensaje de error Descripción
coupon_code_expired Este código promocional ha expirado El código se usa después de su fecha de expiración configurada.
coupon_code_success Felicitaciones, código promocional aplicado con éxito. El código se usa correctamente.
coupon_code_error Introduce un código promocional válido El código utilizado no es válido.
coupon_code_type_error Tipo de cupón incorrecto. Este cupón solo se puede canjear en %{coupon_type}. Cuando un código que debería usarse en el punto de venta se usa en la aplicación móvil, se produce este error.
usage_exceeded El uso de la Campaign de este código de cupón está completo. Inténtalo la próxima vez. El uso del código excede el número de usuarios autorizados para usarlo. Por ejemplo, si la configuración del panel permite que un código sea usado por 3000 usuarios y el número de usuarios excede los 3000, se produce este error.
usage_exceeded_by_guest Este código promocional ya ha sido procesado. El uso del código por un usuario excede el número de veces que un usuario puede usarlo. Por ejemplo, la configuración del panel permite que un solo código sea usado tres veces por un usuario. Si se usa más de esa cantidad, se produce este error.
already_used_by_other_guest Este código promocional ya ha sido usado por otro invitado. Otro usuario ya ha usado el código.
New Stuff!