A maioria dos textos técnicos foca num passo só — a normalização, a chamada de LLM, o algoritmo de matching. Mas usuário não experiencia passos. Experiencia um fluxo: solta um arquivo, espera um momento, revisa o resultado, manda a cotação. Vamos andar a importação com IA do ponto de vista do usuário, incluindo os detalhes que fazem a diferença entre ferramenta que parece inteligente e ferramenta que parece demo.
Drop Você arrasta o documento do fornecedor para a página. A zona de drop acende com contorno âmbar — a mesma cor usada em todo o importador para sinalizar 'atenção necessária' ou 'IA trabalhando.' Validação client-side roda antes de um byte tocar o servidor. Checa extensão contra o conjunto permitido (PDF, XLSX, XLS, CSV), confirma que o arquivo está abaixo de 20 MB, e rejeita qualquer outra coisa com mensagem inline que nomeia o problema — 'Arquivos CSV devem ter menos de 20 MB' em vez de 'Arquivo inválido.'
A validação client-side não é só educação. Evita que o usuário espere 30 segundos por um upload só para receber uma rejeição do servidor. Também mantém lixo fora da fila de processamento — nada de binário corrompido, nada de PDF com senha que gastaria uma chamada de LLM antes de falhar. A validação é estrita na fronteira e silenciosa dali para frente: se o arquivo passou no portão, o pipeline assume que é processável.
A zona de drop também aceita colar. Se você tem uma planilha de fornecedor aberta em outra aba, pode copiar as linhas relevantes e colar direto. O handler de paste detecta dados tabulares, normaliza no mesmo formato interno de um upload de arquivo, e roteia para o mesmo pipeline de processamento. Mesmos estágios, mesma tela de revisão, mesmo resultado. O método de entrada não muda o comportamento — o pipeline não se importa como os bytes chegaram.
Processamento Quando o arquivo é enviado, uma tela inteira de progresso toma conta. Esse é o momento onde a maioria das ferramentas de importação perde o usuário. Um spinner com 'Processando...' é honesto mas inútil — não dá sinal nenhum se a coisa está funcionando ou travada. Uma barra de porcentagem é pior — implica precisão que o sistema não tem, e uma barra parada em 73% por 45 segundos parece quebrada mesmo quando está tudo bem.
O Quotery usa ciclagem de estágios por tempo em vez de porcentagem. Seis estágios rodam em sequência: 'Lendo documento,' 'Entendendo contexto,' 'Detectando grupos,' 'Combinando códigos de produto,' 'Inferindo produtos por descrição,' 'Montando cotação.' Cada estágio fica visível por uma duração afinada com o p50 observado de importações reais — mais ou menos 3 a 6 segundos por estágio dependendo do tamanho e complexidade do arquivo. Os estágios não são progresso falso. Correspondem a marcos reais no pipeline: a camada de normalização lê o documento, o LLM raciocina sobre estrutura, o passo de agrupamento identifica seções, o matcher roda contra códigos de produto, o passo de inferência lida com linhas não encontradas, e a montagem final cria os objetos QuoteSection e QuoteLine.
O pacing é honesto mas não literal. Uma importação de 14 linhas pode passar 4 segundos em 'Lendo documento' quando o parse do PDF levou 1.2 segundos, e 4 segundos em 'Combinando códigos' quando o matcher determinístico rodou em 200ms. O tempo extra é buffer — suaviza a variabilidade para que o usuário nunca veja um estágio piscar em 0.3 segundos seguido de uma parada de 15 segundos no próximo. A experiência é consistente mesmo quando o tempo real por baixo é irregular.
Por trás, três chamadas de LLM rodam em sequência durante o processamento. A Call A normaliza o documento em JSON estruturado: identifica seções, agrupa itens de linha, e extrai o texto bruto que o matcher precisa. A Call B roda inferência em linhas que não conseguiram match determinístico — pega uma descrição de produto como 'VENT-450-B 220V INDUSTRIAL' e mapeia para o produto conhecido mais próximo. A Call C gera o banner de resumo (veja o post 14 para o racional completo de design). O usuário nunca vê essas chamadas — vê os estágios ciclando e, eventualmente, o resultado.
Se algo der errado durante o processamento — PDF com senha, arquivo que na verdade é scan de imagem sem texto extraível, XLSX corrompido — a tela de progresso transiciona para um estado de erro com mensagem específica. 'Este PDF está protegido por senha e não pode ser processado' é acionável. 'Falha na importação' não é. Todo caminho de erro no pipeline tem mensagem legível que diz ao usuário o que aconteceu e o que fazer.
Revisão A tela de progresso se dissolve e você cai na Quote nova. A transição é importante: você não cai numa grade bruta de classificação ou num dump JSON. Cai na mesma tela de detalhe de Quote que veria se tivesse montado a cotação manualmente — mesmo layout, mesmos controles, mesmas capacidades de edição. A única diferença é que os dados já estão preenchidos, e um banner gerado por IA aparece acima da tabela de itens.
O banner (coberto em profundidade no post 14) responde a única pergunta que você tem nesse momento: 'O que eu preciso olhar?' Diz algo como 'Importei 14 linhas. 11 bateram limpo, 2 precisam de revisão, e 1 não consegui bater — por favor cheque a linha 9.' O banner é gerado por uma chamada de LLM que recebe apenas contagens de classificação e seu locale — sem nome de produto, sem preço, sem dado de cliente. É limitado a duas frases no máximo e some na navegação.
Cada linha na tabela de itens carrega um chip de classificação. Chips verdes dizem 'Match exato' — o sistema encontrou o produto por código, o preço foi capturado do catálogo de produtos, e a linha está pronta. Chips âmbar dizem 'Decisão da IA — revise' — o matcher determinístico não encontrou match, o LLM fez sua melhor tentativa, e um humano precisa confirmar ou corrigir. Chips vermelhos dizem 'Não encontrado' — nem o matcher nem o LLM conseguiram mapear essa linha para um produto conhecido, e precisa de atenção manual.
As cores dos chips criam hierarquia visual imediata. Você escaneia 14 linhas em menos de 3 segundos e sabe exatamente onde focar. Linhas verdes são visualmente recessivas — estão confirmadas, tão ok, você não precisa pensar nelas. Linhas âmbar e vermelhas puxam o olho. O design diz 'essas são as que precisam de você' sem fazer você ler um nome de produto sequer.
Tocar num chip âmbar abre uma comparação inline: o match sugerido pela IA à esquerda, o texto original do fornecedor à direita, e ações 'Confirmar' ou 'Alterar' abaixo. Se a IA acertou — e acerta mais ou menos 90% das vezes para as linhas que tenta — você toca Confirmar e o chip vira verde. Se errou, você busca o produto correto, seleciona, e o chip atualiza. Linhas vermelhas precisam da mesma busca manual mas sem sugestão para começar.
A experiência de revisão é onde a ferramenta ganha ou perde confiança. Se a IA acerta 90% do tempo mas a UI de revisão faz confirmar esses 90% parecerem trabalho, a ferramenta falhou. Se confirmar um palpite correto da IA é um toque e a UI sai do caminho, a ferramenta se paga. Cada Confirm âmbar é um toque. Cada busca vermelha é um lookup typeahead contra o catálogo de produtos, escopado ao seu tenant, com matching fuzzy em nome e código.
Tempo total Uma importação de 14 linhas com resultados de classificação típicos — digamos 9 verdes, 3 âmbar, 2 vermelhas — leva bem menos de dois minutos do drop ao send. Isso inclui o tempo de processamento (mais ou menos 25-40 segundos dependendo da complexidade do arquivo), o tempo de revisão (confirmar 3 matches âmbar, combinar manualmente 2 linhas vermelhas), e qualquer ajuste pequeno de preço ou quantidade. A mesma tarefa em planilha — digitar 14 códigos de produto, consultar preços, calcular totais de linha, formatar a cotação — leva de vinte a quarenta minutos dependendo da familiaridade com o catálogo.
A economia de tempo compõe com volume. Uma equipe processando 5 cotações de fornecedor por dia economiza mais ou menos 90 minutos diários — o equivalente a um dia inteiro de trabalho por semana recuperado da entrada de dados. Mas a economia mais importante é cognitiva. O importador lida com o trabalho mecânico de transcrição e matching. O humano lida com o trabalho de julgamento de revisão e ajuste. Essa é a divisão certa de trabalho entre uma máquina e uma pessoa que conhece os clientes dela.
