Rishidocs

Carrinhos abandonados: recuperando vendas

5 min de leituraAtualizado há 4 dias

Carrinhos abandonados: recuperando vendas

O Rishi captura carrinhos abandonados na sua loja e dispara fluxos automáticos de recuperação por WhatsApp. Quando o cliente finaliza a compra (no link de retomada ou direto na loja), os fluxos em andamento são interrompidos automaticamente — sem mensagens desnecessárias.

Esta página cobre o lado CRM da feature: como conectar a loja, como o webhook funciona, quais dados ficam disponíveis, e como montar o fluxo de recuperação.

Se você usa o Checkout Rishi como checkout WooCommerce, a recuperação tem uma rota dedicada de setup — veja Checkout Rishi: recuperação de carrinho abandonado.

Como funciona

O Rishi não consulta sua loja procurando carrinhos abandonados. Quem empurra os dados é um plugin instalado na loja (CartBounty no WooCommerce, plugin do próprio Checkout Rishi, ou qualquer sistema que envie POST pro endpoint).

Fluxo:

  1. Cliente entra no checkout, preenche dados, mas não finaliza.
  2. O plugin detecta o abandono e envia um POST pro webhook do Rishi com os dados do carrinho.
  3. O Rishi salva o carrinho e dispara todos os fluxos ativos com gatilho Carrinho abandonado daquele site.
  4. Os fluxos rodam (mensagens, delays, condições) seguindo a árvore que você desenhou.
  5. Quando o cliente finaliza a compra, o plugin envia outro POST com cart_status: recovered (ou converted). O Rishi interrompe os fluxos em andamento.

Configurando o webhook

Cada site tem uma URL assinada exclusiva pra carrinhos abandonados. Encontre em:

  • CRM → Sites → [seu site] → Configurações (ícone de engrenagem) → seção Webhook de carrinho abandonado, ou
  • CRM → Sites → [seu site] → Carrinhos abandonados → o painel mostra a URL no topo

A URL tem o formato:

https://app.rishi.com.br/api/webhooks/sites/{site_uuid}/abandoned-carts?signature=...&expires=...

Cole essa URL no campo de webhook do plugin de carrinho abandonado da sua loja.

A URL já vem assinada. Você não precisa configurar token separado de autenticação — a assinatura é a credencial. Se a URL vazar, basta gerar uma nova (regenerando a config do site).

Health-check

Plugins como o CartBounty fazem um GET na URL antes de começar a enviar dados, pra confirmar que o endpoint está vivo. O Rishi responde 200 no GET sem efeito colateral.

Formato do payload

O endpoint aceita um array de carrinhos por requisição (batch). Cada item tem o formato:

{
  "id": "123",
  "email": "joao@exemplo.com",
  "phone": "11999998888",
  "name": "João",
  "surname": "Silva",
  "city": "São Paulo",
  "postcode": "01310-100",
  "ip_address": "192.168.1.1",
  "cart_contents": [
    { "product_id": 1, "name": "Camiseta", "qty": 2, "price": 89.90 }
  ],
  "cart_total": "179.80",
  "currency": "BRL",
  "coupon": null,
  "cart_url": "https://loja.com/carrinho?token=abc123",
  "time": "2026-05-02 10:00:00",
  "last_synced": "2026-05-02 10:30:00",
  "cart_status": "abandoned"
}

Status aceitos

O campo cart_status aceita:

Status Efeito no Rishi
abandoned, pending, open Salva e dispara fluxos
recovered, ordered, completed, converted Marca como recuperado e interrompe fluxos em andamento
lost, expired, cancelled, dismissed Marca como perdido sem disparar fluxos

Batch parcialmente inválido

Se um item do batch tem id ausente ou dados inválidos, só esse item é pulado — os demais são processados normalmente. A resposta lista os itens em skipped.

Variáveis disponíveis no fluxo

Quando o gatilho Carrinho abandonado dispara, o trigger_data inclui:

Variável Conteúdo
{{cart_id}} ID interno no Rishi
{{external_id}} ID do carrinho na loja origem
{{cart_total}} Valor numérico (ex: 189.50)
{{cart_total_formatted}} Valor formatado em BRL (ex: R$ 189,50)
{{cart_url}} URL pra retomar o carrinho na loja
{{cart_token}} Querystring do cart_url (ex: ?token=xyz)
{{cart_contents}} Array dos itens
{{customer.first_name}} Primeiro nome
{{customer.last_name}} Sobrenome
{{customer.full_name}} Nome completo
{{customer.email}} E-mail
{{customer.phone}} Telefone
{{customer.city}} Cidade
{{customer.postcode}} CEP

Após um nó Cupom no fluxo, também ficam disponíveis {{coupon.code}}, {{coupon.amount}}, {{coupon.expires_date}}.

Template pronto: 3 toques

A galeria do Flow Builder inclui o template Carrinho Abandonado com 3 toques:

  1. 30 minutos após o abandono — primeira mensagem amigável
  2. 3h30 depois — segunda mensagem com sentido de urgência, com verificação de pedido recente (não envia se o cliente já comprou)
  3. 20h depois — terceira mensagem com cupom de 10% off

Você pode usar como base e personalizar.

Métricas no painel

Acesse CRM → Sites → [seu site] → Carrinhos abandonados ou CRM → Carrinhos abandonados (visão geral de todos os sites).

Os números são dos últimos 15 dias:

Métrica O que conta
Total Carrinhos capturados
Abandonados Ainda não recuperados nem perdidos
Recuperados Inclui status recovered (via link Rishi) e converted (compra direta)
Perdidos Status lost, expired, cancelled, dismissed
Valor recuperado Soma do total dos recuperados/convertidos
Valor potencial Soma do total de todos os carrinhos
Taxa de recuperação recuperados / total em %

E um gráfico diário dos últimos 7 dias com abandonados vs. recuperados (em volume e em R$).

Recovered vs. Converted

Os dois somam nas métricas de recuperação, mas têm semânticas diferentes:

  • Recovered — cliente comprou usando o link de retomada enviado pelo Rishi. Atribuição clara à recuperação.
  • Converted — cliente comprou normalmente, sem clicar no link. Pode ter sido influenciado pelas mensagens, ou voltou por conta própria.

A distinção te ajuda a medir o impacto real das mensagens versus quem teria voltado de qualquer jeito.

Casos de borda

  • Carrinho duplicado — upsert por (site_id, external_id). O mesmo carrinho pode chegar várias vezes; só o primeiro com abandoned dispara o fluxo.
  • Carrinho que já chega como recovered — significa que o cliente comprou antes do plugin sincronizar. O registro é deletado e nenhum fluxo dispara.
  • Carrinhos antigos não aparecem na lista — a tela mostra apenas os últimos 15 dias. O histórico completo existe no banco; fale com o suporte se precisar acessar.
  • URL assinada com expires — links antigos param de funcionar quando o expires passa. Regenere a URL nas configurações se acontecer.
  • Interrupção só cancela execuções running — execuções já completed ou paused não são afetadas pela interrupção.

Setup passo a passo

  1. Conecte o site em Sites (WooCommerce, Checkout Rishi, Payee ou API).
  2. Conecte o WhatsApp — uma instância via QR ou uma conexão Meta.
  3. Copie a URL do webhook em Carrinhos abandonados ou Configurações do site.
  4. Instale o plugin de captura na sua loja (CartBounty pra WooCommerce padrão, ou o plugin do Checkout Rishi se for o caso).
  5. Cole a URL no campo de webhook do plugin.
  6. No Rishi, crie um fluxo com gatilho Carrinho abandonado — use o template pronto ou monte do zero.
  7. Ative o fluxo.

A partir daí, todo carrinho abandonado capturado dispara o fluxo automaticamente.

Próximos passos

Foi útil?