Nexopath Guias True Conversions
— Atualizado em

Magic Link na Nuvemshop: Tentativa Automática de Cupom no Checkout com Menos Exposição

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 adiciona fricção ao checkout. O cupom — que deveria ser um incentivo — pode se tornar mais uma tarefa manual.

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.

O Magic Link público é a URL estável que você compartilha, inclusive em links sem expiração:

https://magiclink.nexopath.com/go/{public-token}

Esse link público aponta para um destino e tem sua configuração guardada no servidor:

  • Código do cupom — o cupom real da Nuvemshop, configurado normalmente no painel da loja.
  • Expiração opcional — data/hora após a qual o link fica Expirado; sem essa regra, ele pode ser permanente.
  • Limite de cliques opcional — número máximo de acessos permitidos; ao alcançá-lo, o link fica Esgotado. Sem limite, ele pode receber cliques ilimitados.

Ao acessar o link público, a pessoa é redirecionada para o destino com um token temporário de checkout:

https://loja.com.br/produto?ml={redeem-token}

O redeem-token é um identificador opaco e temporário, válido por aproximadamente 90 minutos. Ele não carrega nem define a expiração ou o limite de cliques da campanha: essas regras pertencem ao Magic Link público e continuam no servidor.

O Magic Link é uma URL compartilhável: qualquer pessoa que a receba pode acessá-la enquanto estiver ativa e dentro das regras configuradas. Um link com expiração de 7 dias fica Expirado no dia 8; um link com limite de 500 cliques fica Esgotado depois de atingir o limite. O cupom subjacente (FRETE10) continua existindo na Nuvemshop, mas o Magic Link tenta aplicá-lo apenas quando há um redeem-token válido.

Captura do Token no Storefront

Depois que o link público redireciona para a loja com ?ml={redeem-token}, 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ê esse token temporário 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 redeem-token curto do checkout dura aproximadamente 90 minutos no armazenamento e sobrevive à navegação entre páginas até o checkout. Isso é independente de o Magic Link público ser permanente ou não ter limite de cliques.

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 redeem-token e obter o código do cupom — sem consumi-lo.
  3. O backend verifica o token temporário e as regras do Magic Link público associado: ele está ativo, não está Expirado, não está Esgotado e 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 } } }));
});

Quando a aplicação funciona, o comprador vê o desconto no resumo sem precisar digitar o código. Se houver conflito ou falha na aplicação automática, o app pode mostrar um código copiável como alternativa.

Proteção de Margem: Três Camadas

Camada 1: Regras opcionais do link — campanhas de Black Friday podem usar data de expiração e limite de cliques. Também é possível criar links permanentes e sem limite; uma URL compartilhável não identifica a pessoa ou o canal que a acessa.

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 redeem-token é validado contra o banco no checkout, junto das regras do Magic Link público associado (ativo? Expirado? Esgotado? cobrança ativa?). Como o token temporário é um identificador opaco, não há payload no cliente para adulterar: um token inexistente ou já consumido após aplicação bem-sucedida do cupom é rejeitado.

AspectoCupom ManualMagic Link
Input do usuário no checkoutDigitar código + clicar “Aplicar”Tentativa automática; código copiável pode aparecer em caso de falha ou conflito
Risco de vazamentoAlto (código fixo, indexável)A URL é compartilhável; regras opcionais podem limitar sua vigência ou cliques
Relatório disponívelNão se aplicaContagem de cliques por link, sem atribuição de campanha ou pessoa
Dependência de GTMNão é requisito para usar um cupom normalNão é requisito para a tentativa via NubeSDK

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

  • Cliques — quantos acessos o link recebeu.
  • Status — Ativo, Desativado, Esgotado (limite de cliques atingido) ou Expirado (data de expiração passada).

Isso permite comparar o volume de tráfego que cada URL recebeu, sem tratar cliques como pedidos, vendas, receita, conversões, aplicações de cupom ou atribuição individual. Links comuns podem ser editados ou reativados no Magic Link; links gerenciados pelo Parceiros devem ser administrados pelo Parceiros. Para o caso de uso de recuperação de carrinho via WhatsApp e CRM, veja Automações de WhatsApp com Cupom Tentado no Checkout.

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 já houver um cupom diferente aplicado, o Magic Link não o sobrescreve e pode mostrar um código copiável como alternativa.
  • Sem token guardado — se alguém chega à loja sem passar por um link com ?ml= (ou depois de o TTL expirar), não há token no asyncLocalStorage e o app não tenta aplicar o cupom. A URL não autentica nem identifica quem a acessa.

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.