Ir para o conteúdo

Geração de código dinâmico com Punchh

Um código de cupom é um código exclusivo que pode ser usado por um único usuário (uso único ou múltiplo). A estrutura Punchh gera códigos de cupom, que podem ser processados em um app móvel ou no sistema de ponto de venda (POS).

Essa integração é mantida pela Punchh.

Sobre a integração

Usando o framework de cupons da Punchh e a Braze, você pode alcançar os seguintes cenários:

  • Gerar um código de cupom quando o convidado seleciona um link de geração de cupom em um e-mail: O código de cupom é gerado dinamicamente e exibido em uma página web.
  • Gerar um código de cupom quando o convidado abre um e-mail: O código de cupom é gerado dinamicamente e exibido como uma imagem dentro do e-mail.

Integrando a geração dinâmica de códigos de cupom

Etapa 1: Criar uma campanha de cupom

  1. Usando uma campanha de cupom Punchh, crie uma campanha de geração dinâmica de cupom conforme mostrado na imagem a seguir.
  2. O framework de cupons do Punchh gera os seguintes parâmetros para possibilitar a geração dinâmica de cupons:
    • Token de geração dinâmica de cupom: É um token de segurança gerado pelo sistema para criptografia.
    • URL de geração dinâmica de cupom: Essa URL é incorporada no e-mail como um link ou imagem, conforme a necessidade do negócio.

O formulário para criar uma campanha de cupom no Punchh.

Etapa 2: Gerar assinatura e construir URL

A biblioteca JWT.IO decodifica, verifica e gera JSON web tokens, um método aberto e padrão da indústria (RFC 7519) para representar declarações de forma segura entre duas partes.

Os seguintes nomes de ClaimType podem ser usados para garantir a unicidade de convidados e cupons:

  • campaign_id: representa o ID de Campaign gerado pelo sistema Punchh.
  • email: representa o endereço de e-mail do usuário.
  • first_name: captura o nome do usuário.
  • last_name: captura o sobrenome do usuário.

Para usar a API de código de cupom dinâmico do Punchh, é necessário construir um token JWT. Adicione o seguinte modelo Liquid ao seu dashboard da Braze no corpo da mensagem do canal que você deseja usar:

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

Substitua os seguintes valores:

Placeholder Descrição
DYNAMIC_COUPON_GENERATION_TOKEN Seu token de geração dinâmica de cupom.
CAMPAIGN_ID Seu ID de Campaign.

Etapa 3: Anexar código de cupom ao corpo da mensagem

Vincular a uma página web do Punchh

Para vincular a uma página web hospedada pelo Punchh, adicione {{jwt}} à URL de geração dinâmica que você criou anteriormente. Seu link deve ser semelhante ao seguinte:

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

Quando um usuário selecionar a URL do cupom, ele será redirecionado para uma página web hospedada pelo Punchh, onde o cupom gerado será exibido.

Exemplo de mensagem de confirmação após um usuário gerar com sucesso um código de cupom.

Extrair o código via JSON como texto simples

Para retornar uma resposta JSON, adicione {{jwt}} à URL de geração dinâmica que você criou anteriormente e, em seguida, adicione .json após o token na string da URL. Seu link deve ser semelhante ao seguinte:

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

Você pode então alavancar o Conteúdo Conectado para inserir o código como texto simples em qualquer corpo de mensagem. Por exemplo:

{% connected_content https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}} :save punchh_coupon %}
{{punchh_coupon.coupon}}

Vincular uma imagem dentro do conteúdo de e-mail

Para vincular o código de cupom dentro de uma imagem:

  1. Adicione {{jwt}} à URL de geração dinâmica que você criou anteriormente.
  2. Adicione .png após o token na string da URL.
  3. Incorpore seu link em uma tag HTML <img>.
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Saída renderizada da tag de imagem do código de cupom.

Mensagens de erro

Código de erro Mensagem de erro Descrição
coupon_code_expired Este código promocional expirou O código é utilizado após a data de expiração configurada.
coupon_code_success Parabéns, código promocional aplicado com sucesso. O código é utilizado com sucesso.
coupon_code_error Insira um código promocional válido O código utilizado é inválido.
coupon_code_type_error Tipo de cupom incorreto. Este cupom só pode ser resgatado em %{coupon_type}. Quando um código que deveria ser usado no PDV é usado no app móvel, esse erro ocorre.
usage_exceeded O uso do código de cupom desta Campaign atingiu o limite. Tente novamente na próxima vez. O uso do código excede o número de usuários permitidos para utilizá-lo. Por exemplo, se a configuração do dashboard permite que um código seja usado por 3.000 usuários e o número de usuários excede 3.000, esse erro ocorre.
usage_exceeded_by_guest Este código promocional já foi processado. O uso do código por um usuário excede o número de vezes que um usuário pode utilizá-lo. Por exemplo, a configuração do dashboard permite que um único código seja usado três vezes por um usuário. Se for usado mais do que isso, esse erro ocorre.
already_used_by_other_guest Este código promocional já foi usado por outro convidado. Outro usuário já utilizou o código.
New Stuff!