Nexopath Guias True Conversions
— Atualizado em

Magic Link na Nuvemshop: Cupons Automatizados no Checkout Sem Vazamento de Margem

O Problema: Duas Falhas Simultâneas no Fluxo de Cupons

Operações de e-commerce na Nuvemshop enfrentam um conflito estrutural entre conversão e proteção de margem quando usam cupons promocionais.

Falha 1: Fricção no Checkout

O fluxo padrão de cupom exige que o comprador:

  1. Lembre o código do cupom visto no anúncio.
  2. Navegue até o checkout.
  3. Encontre o campo de cupom (frequentemente colapsado ou pouco visível em mobile).
  4. Digite o código manualmente.
  5. Clique em “Aplicar”.

Cada etapa é um ponto de abandono. Dados de mercado indicam que 30-40% dos usuários mobile abandonam o checkout quando precisam interagir com campos de texto adicionais. O cupom — que deveria ser um incentivo — se torna fricção.

Uma parcela desses usuários abre uma nova aba, pesquisa “[nome da loja] cupom” no Google, e cai em um site agregador de cupons. Se encontra um código genérico válido, aplica. Se não encontra, abandona o carrinho. A loja perdeu a conversão ou a margem.

Falha 2: Vazamento de Cupons Genéricos

Cupons com código fixo (ex: FRETEGRATIS, 10OFF) são indexáveis. Sites como Pelando, Cuponomia e similares coletam e publicam esses códigos — as rotas de entrada do código nesses agregadores são mais numerosas do que parece. O resultado:

  • Visitantes que não viram o anúncio e não teriam desconto passam a usá-lo. O cupom subsidia tráfego orgânico que já converteria sem incentivo.
  • A margem por pedido cai em segmentos que o media buyer não planejou descontar.
  • O cálculo de CAC e POAS fica contaminado: o custo real do cupom não é atribuído à campanha que o gerou.

O cenário extremo: uma campanha com ROAS aparente de 5x que, após contabilizar o vazamento de cupons para tráfego orgânico, opera com margem negativa.

O Nexopath Magic Link resolve ambas as falhas com uma abordagem que separa o veículo de entrega (o link) do mecanismo de aplicação (o checkout). O comprador não precisa ver, lembrar ou digitar um código de cupom.

Geração do Token

Cada link promocional carrega um token opaco no query parameter:

https://loja.com.br/produto?ml=ojZwNabBrF9xWDr3EtVsn

O token é um identificador aleatório (nanoid) — ele não carrega o cupom nem as regras dentro de si. Quem guarda essa informação é o servidor: cada token está associado, no banco de dados, a um registro de resgate com:

  • Código do cupom — o cupom real da Nuvemshop, configurado normalmente no painel da loja.
  • Expiração absoluta — data/hora após a qual o token é inválido, independentemente de quantas vezes foi acessado.
  • Limite de cliques — número máximo de acessos permitidos para aquele link.

Como o token é opaco e toda a validação acontece no servidor, adulterar a URL não dá acesso a nada: um token que não existe no banco é simplesmente rejeitado.

O ponto crítico: mesmo que alguém extraia e publique a URL completa em um site de cupons, o token expira. Um link gerado para uma campanha de 7 dias para de funcionar no dia 8. Um link com limite de 500 usos para de funcionar no uso 501. O cupom subjacente (FRETE10) continua existindo na Nuvemshop, mas sem o token válido, ninguém consegue aplicá-lo automaticamente.

Captura do Token no Storefront

Quando o visitante acessa a URL com ?ml=, o app do Magic Link roda num Web Worker isolado (NubeSDK) — sem acesso ao DOM, a window ou ao sessionStorage da página. Ele lê o token da query e o guarda no asyncLocalStorage do NubeSDK, o único armazenamento compartilhado entre vitrine e checkout:

// Contexto de vitrine (Web Worker, via NubeSDK)
const token = state.location.queries.ml;
if (token) {
  await storage.setItem("ml_token", token, TTL);
}

Três decisões técnicas nesse trecho:

  1. asyncLocalStorage em vez de cookie ou sessionStorage — o checkout da Nuvemshop roda em domínio próprio (iframe + Web Worker) e não enxerga cookies ou storage da vitrine. O asyncLocalStorage é a ponte oficial que a plataforma compartilha entre os dois contextos para o mesmo app.
  2. Salvo cedo, no carregamento — o token é guardado assim que a vitrine carrega, não no clique de “Comprar agora” (que redireciona na hora e perderia a corrida).
  3. TTL — o token expira do armazenamento junto com a validade do link, e sobrevive à navegação entre páginas até o checkout.

Aplicação Silenciosa no Checkout via NubeSDK

A Nuvemshop expõe o NubeSDK — um ambiente seguro de Web Worker que permite apps autorizados interagirem com o checkout sem acesso direto ao DOM do formulário de pagamento.

Quando o comprador chega ao checkout, o fluxo é:

  1. No evento checkout:ready, o app lê o ml_token do asyncLocalStorage.
  2. Consulta o backend do Nexopath (GET /api/redeem/preview) para validar o token e obter o código do cupom — sem consumir o token.
  3. O backend verifica no banco: o token existe, não expirou, o limite não estourou, a cobrança está ativa.
  4. Se válido, o app dispara coupon:add para aplicar o cupom ao carrinho.
  5. Quando o cupom é aplicado com sucesso, o app consome o token de uso único (POST /api/redeem). Se a aplicação falha (regra de carrinho, valor mínimo), o token é preservado para uma próxima tentativa.
// Pseudocódigo simplificado do fluxo NubeSDK (contexto de checkout)
nube.on("checkout:ready", async () => {
  const token = await storage.getItem("ml_token");
  if (!token) return;

  const res = await fetch(`${API}/api/redeem/preview?token=${token}`);
  if (!res.ok) return; // 422 = token morto, 403 = cobrança inativa
  const { coupon_code } = await res.json();

  nube.send("coupon:add", () => ({ cart: { coupon: { code: coupon_code } } }));
});

O comprador vê o desconto aparecer no resumo do pedido sem ter digitado nada — sem campo de cupom para preencher, sem etapa adicional. O código do cupom aparece no resumo (é um cupom real da Nuvemshop), mas o comprador nunca precisou conhecê-lo ou digitá-lo.

Proteção de Margem: Três Camadas

Camada 1: Expiração temporal — cada token tem um expires_at absoluto. Campanhas de Black Friday geram tokens que expiram no dia seguinte. Não existe cupom “eterno” circulando na internet.

Camada 2: Limite de cliques — o limite é contabilizado no backend do Nexopath, não na Nuvemshop. Isso permite controle granular: 500 cliques para a campanha do Google, 300 para a do Meta, cada um com seu link independente — mesmo que ambos usem o mesmo cupom subjacente. É a mesma mecânica usada para calibrar links por influenciador pelo tamanho da audiência de cada creator.

Camada 3: Validação server-side — cada token é validado contra o banco a cada acesso (existe? expirou? limite estourou? cobrança ativa?). Como o token é um identificador opaco, não há payload no cliente para adulterar: um token inexistente ou já usado é rejeitado.

AspectoCupom ManualMagic Link
Input do usuário no checkoutDigitar código + clicar “Aplicar”Nenhum (aplicação automática)
Risco de vazamentoAlto (código fixo, indexável)Baixo (token expirável com limite de uso)
Atribuição por campanhaImpossível (mesmo código para todas)Por link (cada campanha tem seu token e contagem de cliques)
Taxa de resgate15-25% (típica para cupons manuais)60-80% (sem fricção de input)
Dependência de GTMGeralmente sim (para injetar campo)Não (script nativo via API)
Compatibilidade PCIDepende da implementaçãoGarantida (NubeSDK opera fora do contexto de pagamento)

Como cada campanha usa um link próprio, o painel do Nexopath mostra, por link:

  • Cliques — quantos acessos o link recebeu.
  • Status — ativo, esgotado (limite de cliques atingido) ou expirado.

Isso permite comparar o volume de tráfego que cada canal — cada influencer, cada anúncio — gerou, sem misturar origens sob um mesmo código. Para estimar o desconto concedido e a receita por campanha, cruze esses cliques com os pedidos no painel da Nuvemshop. Para o caso de uso de recuperação de carrinho com desconto pré-aplicado via WhatsApp e CRM, veja Automações de WhatsApp com Desconto Pré-Aplicado.

Limitações

  • Checkout headless — lojas com checkout totalmente customizado (headless, fora da Nuvemshop) não usam NubeSDK. O Magic Link funciona apenas com o checkout nativo da Nuvemshop.
  • Múltiplos cupons — a Nuvemshop permite apenas um cupom por pedido. Se o comprador já tiver um cupom aplicado manualmente, o Magic Link não sobrescreve. O app detecta essa condição e não tenta aplicar.
  • Sem token guardado — se o comprador chega à loja sem nunca ter passado por um link com ?ml= (ou depois de o TTL expirar), não há token no asyncLocalStorage e o desconto não é aplicado. É o comportamento esperado: o desconto é para quem chegou pelo link.

Próximo Passo

O Nexopath Magic Link está na Nuvemshop App Store. O free trial de 14 dias inclui criação ilimitada de links e acesso completo ao painel. O setup leva menos de 5 minutos: instale, configure o primeiro link no painel, e use a URL gerada nos seus anúncios.