O problema
E-commerce opera em janelas de intenção curtas. Um cliente com dúvida sobre prazo de entrega, disponibilidade de tamanho ou política de troca que não recebe resposta em minutos tem alta probabilidade de abandonar a compra e ir para o concorrente que responde mais rápido.
O canal com maior taxa de abertura e menor fricção para o consumidor brasileiro é o WhatsApp. Mas WhatsApp não escala bem com atendimento humano: cada conversa exige atenção individual, o histórico de contexto some quando o atendente muda, e o custo por interação cresce linearmente com o volume.
As soluções existentes no mercado resolviam metade do problema: bots com fluxo de botões que funcionam para cenários previsíveis e travam em qualquer variação. O consumidor rapidamente aprende a digitar “falar com humano” para escapar do fluxo.
A Nouvaris projetou a Nouva para resolver a outra metade: atendimento em linguagem natural, com raciocínio sobre contexto, acesso a dados reais do pedido e do catálogo, e capacidade de conduzir uma conversa de vendas, não só responder perguntas de suporte.
A arquitetura
Por que LangGraph
A decisão de usar LangGraph em vez de um agente ReAct tradicional foi arquitetural, não de preferência de framework.
Atendimento de e-commerce tem estados claramente distintos: identificação do cliente, consulta de pedido, resolução de problema, upsell, escalamento. Cada estado tem ferramentas diferentes disponíveis, critérios de transição diferentes, e nível de autonomia diferente. Modelar isso como um grafo de estados finitos torna o comportamento auditável e previsível: qualquer interação pode ser rastreada nó a nó.
Um agente ReAct puro num prompt longo cometia erros de julgamento em sequências longas de conversa: oferecia desconto antes de consultar o status do pedido, escalava para humano sem tentar resolver. O grafo elimina essa classe de erro por design.
# Estrutura simplificada do grafo de atendimento
graph = StateGraph(ConversationState)
graph.add_node("identify_customer", identify_customer_node)
graph.add_node("classify_intent", classify_intent_node)
graph.add_node("resolve_support", resolve_support_node)
graph.add_node("conduct_sale", conduct_sale_node)
graph.add_node("escalate_human", escalate_human_node)
graph.add_conditional_edges(
"classify_intent",
route_by_intent,
{
"support": "resolve_support",
"sales": "conduct_sale",
"complex": "escalate_human",
}
)
A Nouva se conecta ao Shopify e à VTEX via webhooks e APIs REST. Em tempo real, o agente tem acesso a:
- Status e localização de pedidos (incluindo integração com Correios e transportadoras)
- Estoque por variante (tamanho, cor, modelo)
- Histórico de compras do cliente
- Política de troca e devolução configurada pela loja
- Catálogo de produtos com atributos completos
Essa integração é o que diferencia a Nouva de um chatbot com FAQ: ela responde “seu pedido saiu de Curitiba ontem às 14h e a previsão da transportadora é amanhã até 18h”, não “seu pedido está em processamento”.
Módulo de vendas
O módulo de vendas foi o mais trabalhoso de calibrar. A linha entre suporte proativo e pressão de venda é fina, e cruzá-la gera atrito: o consumidor percebe e responde mal.
A lógica implementada: o agente oferece produto relacionado ou upsell somente após resolver completamente a demanda original. A oferta é contextualizada no histórico de compras e no que o cliente acabou de dizer, não num script genérico. Se o cliente demonstra urgência ou insatisfação, o módulo de vendas é desativado para aquela sessão.
Para recuperação de carrinho abandonado, o agente dispara uma conversa proativa (com consentimento do cliente, conforme opt-in configurado pela loja) com acesso ao conteúdo exato do carrinho. Não “você esqueceu algo”, mas “você deixou o tênis Nike Air Max 90 no carrinho, ainda tem 2 pares no tamanho 42”.
Escalamento estruturado
Quando o agente identifica um cenário fora do seu escopo (reclamação com tom agressivo, problema logístico sem previsão de resolução, solicitação de reembolso acima do limite de autonomia configurado), ele executa o escalamento com handoff completo de contexto:
O atendente humano recebe um resumo estruturado da conversa, a intenção classificada, as ferramentas já consultadas e o tom emocional estimado. O cliente nunca precisa repetir o problema.
Resultados
A taxa de 87% de resolução autônoma foi medida sobre uma amostra de 3.200 conversas reais nas primeiras oito semanas em produção, com validação por auditoria manual de 10% da amostra. Conversas resolvidas autonomamente incluem desde rastreamento de pedido até trocas processadas sem intervenção humana dentro dos critérios configurados pela loja.
O ganho em conversão de carrinho abandonado (2,3×) é a métrica que mais gera interesse dos lojistas, mas também a que tem maior variância entre contas: depende da qualidade do catálogo, do ticket médio e do perfil do cliente. O número reportado é a mediana sobre as contas ativas no período.
A Nouva está em produção e em desenvolvimento contínuo. Novas integrações (Bling, Tiny, WooCommerce) e o módulo de voz estão no roadmap.