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 a estrutura de cupom Punchh e a Braze, você pode realizar os seguintes cenários:
- Gerar um código de cupom quando o convidado clicar em um link de geração de cupom em um e-mail: o código do cupom será gerado dinamicamente e exibido em uma página da web.
- Gerar um código de cupom quando o convidado abrir um e-mail: o código do cupom será gerado dinamicamente e mostrado como uma imagem no e-mail.
Integração da geração de código de cupom dinâmico
Etapa 1: Criar uma campanha de cupons
- Usando uma campanha de cupom Punchh, crie uma campanha de cupom de geração dinâmica, conforme mostrado na imagem a seguir.
- A estrutura de cupons do Punchh gerará os seguintes parâmetros para ativar a geração dinâmica de cupons:
- Token de geração de cupom dinâmico: esse é um token de segurança gerado pelo sistema para criptografia.
- URL de geração de cupom dinâmico: esse URL será incorporado ao e-mail como um link ou imagem, conforme exigido pela empresa.

Etapa 2: Gerar a assinatura e construir o URL
A biblioteca JWT.IO decodifica, verifica e gera JSON web tokens, um método RFC 7519 aberto e padrão do setor para representar declarações de forma segura entre duas partes.
Os seguintes nomes ClaimType podem ser usados para garantir a exclusividade de convidados e cupons:
campaign_id: representa o ID da campanha Punchh gerado pelo sistema.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 da Punchh, um token JWT deve ser construído. Adicione o seguinte modelo Liquid ao seu dashboard da Braze no corpo da mensagem do canal que deseja usar:
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 %}
Substitua o seguinte:
| Espaço reservado | Descrição |
|---|---|
DYNAMIC_COUPON_GENERATION_TOKEN |
Seu token de geração de cupom dinâmico. |
CAMPAIGN_ID |
Seu ID de campanha. |
Etapa 3: Anexar o código do cupom ao corpo da mensagem
Vinculando à página web da Punchh
Para criar um link para uma página da web hospedada pela Punchh, adicione {{jwt}} ao URL de geração dinâmica que você criou anteriormente. Seu link deve ser semelhante ao seguinte:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX?sign={{jwt}}
Quando um usuário clicar no URL do cupom, ele será redirecionado para uma página da web hospedada pela Punchh, onde o cupom gerado será exibido.

Extraindo o código via JSON como texto simples
Para retornar uma resposta JSON, acrescente {{jwt}} ao URL de geração dinâmica que você criou anteriormente e, em seguida, adicione .json após o token na string do URL. Seu link deve ser semelhante ao seguinte:
1
https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}}
Você pode então aproveitar o Conteúdo conectado para inserir o código como texto simples em qualquer corpo de mensagem. Por exemplo:
1
2
{% connected_content https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.json?sign={{jwt}} :save punchh_coupon %}
{{punchh_coupon.coupon}}
Vinculando uma imagem no conteúdo do e-mail
Para vincular o código do cupom em uma imagem:
- Acrescente
{{jwt}}ao URL de geração dinâmica que você criou anteriormente. - Adicione
.pngapós o token na string do URL. - Incorpore seu link em uma tag HTML
<img>.
1
<img src="https://fakebrandz.punchh.com/request_coupons/7xY3bL9jRfZ1pA6mc8qD2eS4vT5wX.png?sign={{jwt}}">

Mensagens de erro
| Código de erro | Mensagem de erro | Descrição |
|---|---|---|
coupon_code_expired |
This promo code has expired | O código é usado após a data de expiração configurada. |
coupon_code_success |
Congratulations, Promo Code Applied Successfully. | O código é usado com sucesso. |
coupon_code_error |
Please enter a valid promo code | O código usado é inválido. |
coupon_code_type_error |
Incorrect coupon type. This coupon can only be redeemed at %{coupon_type}. |
Quando um código que deveria ser usado no POS é usado no app móvel, esse erro ocorre. |
usage_exceeded |
The usage for this coupon code’s campaign is full. Please try next time. | O uso do código excede o número de usuários autorizados a usá-lo. Por exemplo, se a configuração do dashboard permitir que um código seja usado por 3.000 usuários e o número de usuários exceder 3.000, esse erro ocorrerá. |
usage_exceeded_by_guest |
This promo code has already been processed. | O uso do código por um usuário excede o número de vezes que ele pode usá-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 ocorrerá. |
already_used_by_other_guest |
This promo code has already been used by some other guest. | Outro usuário já usou o código. |