// case · produto · AudioFlow

Ninguém quer ouvir seu áudio de 4 minutos

Como nasceu o AudioFlow — um serviço que transcreve áudios do WhatsApp automaticamente, no seu número pessoal. Um case contado sem jargão: as decisões, o bug que cobrou a mais durante três meses, o muro que o WhatsApp levantou no meio do caminho, e a conta que fecha no fim.

2026-07-29 · ~20 min · leitura para qualquer pessoa
produtointeligência-artificialwhatsappcase-realsaasbastidores

TL;DR — 40 segundos


Você recebe um áudio de quatro minutos. Está numa reunião, no metrô, ao lado de alguém dormindo. Não dá pra ouvir. Você deixa pra depois. Depois vira nunca, e três dias depois alguém pergunta por que você não respondeu.

Esse é um problema pequeno e universal — o tipo que quase todo mundo tem e quase ninguém resolve, porque resolver dá mais trabalho do que parece. O AudioFlow é a minha tentativa de resolver: você conecta seu WhatsApp uma vez, e daí em diante todo áudio que chega volta transcrito em texto, no mesmo chat, sem você fazer nada.

Este texto é o case por trás dele. Não é um manual técnico — escrevi pensando em quem não programa. Mas também não é uma peça de marketing: os erros estão aqui, inclusive um que me custou caro e outro que eu quase reportei errado.


1. A decisão que define o produto inteiro

Existem duas formas de um software conversar com o WhatsApp. A escolha entre elas decide que produto você consegue construir — e essa foi a primeira decisão do AudioFlow.

O caminho oficial: a porta da frente

A Meta (dona do WhatsApp) oferece uma porta oficial chamada WhatsApp Business API. É o que empresas usam pra te mandar aquele "seu pedido saiu para entrega". Funciona bem e é estável.

Só que ela tem um pedágio: exige uma conta comercial, aprovação da Meta, um número separado do seu, e cobrança por conversa. Para uma empresa isso é normal. Para uma pessoa física que só quer ler os próprios áudios, é um bloqueio total — ninguém vai criar uma conta comercial e migrar de número pra transcrever áudio de família.

O caminho que escolhi: a porta lateral

Existe outra forma, e você já usa ela: o WhatsApp Web. Quando você abre o WhatsApp no computador e escaneia aquele QR code, seu celular está autorizando um aparelho companheiro — um dispositivo a mais que enxerga suas conversas.

O AudioFlow entra por aí. Ele se apresenta como mais um aparelho vinculado à sua conta, exatamente como o WhatsApp Web faria. A diferença é que, em vez de desenhar uma tela na sua frente, ele fica esperando áudios chegarem.

Por que isso importa tanto: é a diferença entre "instale este app, crie uma conta comercial e mude de número" e "escaneie um código, pronto". O produto inteiro depende de o usuário poder usar o número que ele já tem.

Essa escolha tem um preço, que eu pago até hoje: não é a porta oficial. Quando o WhatsApp muda alguma coisa, eu descubro junto com todo mundo. Vou voltar nisso na seção 6 — foi lá que levei o maior soco.


2. O que acontece nos segundos entre o áudio e a resposta

Do seu lado é simples: chega áudio, volta texto. Por dentro, uma dúzia de passos acontece em sequência. Vou percorrer todos, porque é aí que moram as decisões interessantes.

  Alguém te manda um áudio
            │
            ▼
  [1] O AudioFlow percebe que chegou algo
            │
            ▼
  [2] Vale a pena transcrever?  ── não ──▶ descarta, custo zero
            │ sim
            ▼
  [3] Áudio vira texto           (Whisper)
            │
            ▼
  [4] Limpeza do texto           (pontuação, correções, filtros)
            │
            ▼
  [5] Áudio longo?  ── sim ──▶  [6] Gera um resumo   (Claude)
            │ não                        │
            ▼                            ▼
  [7] Você ainda tem cota no plano?
            │ sim
            ▼
  [8] Texto volta pro seu WhatsApp
            │
            ▼
  [9] Áudio e texto são apagados. Fica só a duração.

Passo 2 — o filtro que economiza dinheiro

Antes de gastar um centavo, o sistema pergunta: esse áudio deve mesmo ser transcrito? Você configura isso. Pode ignorar áudios muito curtos, ignorar contatos específicos, ignorar grupos, ou transcrever também os áudios que você envia.

Parece detalhe, mas é o que separa um serviço viável de um que queima dinheiro. Cada áudio que passa desse filtro custa dinheiro de verdade. Cada um que é barrado antes custa zero.

Passo 3 — áudio vira texto

Aqui entra o Whisper, um modelo de inteligência artificial especializado em ouvir e escrever o que ouviu. Ele entende mais de 100 idiomas e descobre sozinho qual está sendo falado — você não precisa avisar.

Uso um fornecedor chamado Groq, que roda esse modelo muito rápido e muito barato. Tenho também um segundo fornecedor de reserva, a OpenAI, para o caso de o primeiro cair. Esse arranjo de reserva já me deu uma lição cara — está na seção 5.

Passo 4 — a limpeza

Transcrição crua sai como um bloco só, sem pontuação decente e às vezes sem letra maiúscula. É tecnicamente correto e desagradável de ler.

Então o texto passa por uma faxina: quebra em parágrafos, arruma maiúsculas, aplica correções que você mesmo cadastrou (útil pra nomes próprios e jargão da sua área — se o Whisper sempre escreve o nome do seu chefe errado, você corrige uma vez e nunca mais), e opcionalmente filtra palavrão ou traduz.

Passos 5 e 6 — o resumo

Aqui está a parte que as pessoas mais gostam. Se o áudio passou de 30 segundos, um segundo modelo de IA (o Claude) lê a transcrição e escreve um resumo dos pontos principais.

E tem um detalhe de desenho que parece bobo e não é: o resumo vem antes da transcrição completa na mensagem que você recebe. No celular, isso significa que você lê o essencial sem rolar a tela. Se quiser o texto inteiro, ele está logo abaixo. Inverter essa ordem transformaria o recurso mais útil do produto em algo que ninguém veria.

Passo 7 — a cota

Cada plano dá um tanto de minutos por mês. Antes de enviar a resposta, o sistema confere se você ainda tem saldo. Essa checagem virou um caso à parte — é a seção 4 inteira.

Passo 9 — o que não fica

Depois de te mandar o texto, o áudio e a transcrição são descartados. Não vão pra banco de dados, não vão pra disco, não ficam em lugar nenhum.

O que sobra é o mínimo pra fazer a conta fechar: quanto tempo tinha o áudio, que idioma era, quanto custou, se deu certo. O número de quem te mandou é guardado embaralhado por um processo que só funciona em um sentido — dá pra saber que dois áudios vieram da mesma pessoa, não dá pra descobrir quem é.

Isso não é enfeite de marketing. É uma decisão de arquitetura com consequência prática: mesmo que alguém invada o banco de dados inteiro, não existe uma única mensagem sua pra vazar. O conteúdo simplesmente não está lá.


3. O bug que cobrou a mais durante três meses

Essa é a história mais desconfortável do case, e a mais útil.

Como o erro entrou

O sistema precisa descontar da sua cota o tempo que ele transcreveu. A conta original foi escrita assim: pegue a duração em segundos, divida por 60 pra virar minutos, jogue fora a fração, e some 1.

A intenção era arredondar pra cima — quem usa 90 segundos deveria pagar 2 minutos, não 1. Só que essa fórmula não arredonda pra cima. Ela arredonda pra baixo e depois soma um minuto inteiro. O resultado:

Áudio de verdadeDescontado da sua cotaErro
5 segundos1 minuto12× a mais
30 segundos1 minuto2× a mais
60 segundos exatos2 minutos2× a mais
119 segundos2 minutosok
120 segundos exatos3 minutos1,5× a mais

Repare no caso de 5 segundos. Um "ok, combinado" de cinco segundos consumia um minuto inteiro do plano. No plano gratuito, que dá 30 minutos, trinta áudios curtos zeravam a cota — mesmo que somados dessem dois minutos e meio de áudio real.

Como apareceu

Não foi um usuário reclamando. Foi alguém no plano mais caro olhando o painel e estranhando: o número de minutos consumidos não batia com a sensação de uso. Ele tinha razão. Estava marcando 799 minutos quando o uso real era 423.

Por que ficou três meses vivo

E aqui está a parte que eu não gosto de contar. O bug foi diagnosticado, a correção foi planejada, o banco de dados foi preparado pra receber a contagem certa — e aí parou. A tarefa ficou marcada como "em andamento" por três meses.

Durante todo esse tempo o sistema continuou cobrando errado, porque o preparo do banco não muda nada sozinho: é como comprar a tinta e não pintar a parede. A metade que faltava era exatamente a que importava.

A lição: "em andamento" é o estado mais perigoso de uma tarefa. "Não começado" incomoda e cobra atenção. "Pronto" está resolvido. "Em andamento" parece que alguém está cuidando — e ninguém está.

O conserto — e a armadilha dentro do conserto

Corrigir a fórmula foi a parte fácil: passar a contar segundos reais, arredondando pro segundo mais próximo, sem somar nada.

A parte difícil foi consertar o passado. Todo mundo tinha um número inflado registrado. Era preciso recalcular o consumo de cada pessoa a partir do histórico real.

O plano original era somar a duração de todas as transcrições do ciclo. Antes de executar, eu simulei o resultado — e ainda bem, porque estava errado de novo.

O motivo é sutil. O sistema registra a transcrição antes de checar se você tem cota. Faz sentido: primeiro ele transcreve, depois vê se pode te entregar. Mas isso significa que ficam registradas transcrições que nunca foram cobradas — as que bateram no limite e foram barradas.

Somar tudo cobraria por áudio que a pessoa nunca recebeu. Na simulação, um usuário do plano gratuito apareceria com 65 minutos quando o real cobrado era 11. Seis vezes a mais. E os quinze usuários com consumo seriam prejudicados, sem exceção.

A correção foi somar o histórico com um teto no limite do plano. Assim ninguém entra no modelo novo já estourado por causa de áudio que nunca pagou.

O resultado real

Com a correção no ar, todo mundo recebeu cota de volta:

PlanoEstava marcandoUso realDevolvido
Advanced799 min423 min376 minutos
Business364 min106 min258 minutos
Basic157 min97 min60 minutos
Light115 min57 min58 minutos
Free120 min30 min90 minutos

Ninguém saiu pior. Era o mínimo que se podia fazer — mas levou três meses a mais do que devia.


4. O número que eu quase reportei errado

Essa história é curta e vale mais que a anterior, porque é sobre como a gente se engana medindo.

Enquanto investigava o bug de cobrança, notei uma inconsistência: o sistema tinha 2.200 transcrições registradas, mas só 1.429 eventos de cobrança. Setecentas e setenta e uma transcrições sem cobrança correspondente.

Puxei o fio. Descobri que existem dois caminhos pelos quais um áudio pode ser processado: o caminho principal, robusto, que registra tudo direitinho; e um caminho reserva, mais simples, que entra em ação quando o principal falha. O caminho reserva não registra o evento de cobrança.

Contei quantos áudios do dia tinham ido por cada caminho. Deu 70% pelo caminho reserva. Ou seja: a infraestrutura mais cara e mais bem feita do sistema estava sendo contornada na maior parte do tempo.

Escrevi isso como uma descoberta grave. Estava errado.

O que eu tinha feito de errado

Eu havia contado por dia. Quando refiz a mesma contagem por hora, a história mudou completamente:

HoraCaminho principalCaminho reserva
04:00089
05:004118
09:00 em diante60

Não era um problema crônico. Era uma pane. Um componente da infraestrutura tinha caído duas semanas antes e voltado naquela mesma manhã, depois de um conserto. Tudo que aconteceu antes das 05h era a pane; tudo depois das 09h estava saudável.

Ao somar o dia inteiro, eu misturei a janela quebrada com a janela normal e cheguei num número que descrevia um problema que não existia mais.

A lição: a média esconde o evento. Um número agregado ao longo de um período que contém uma pane não descreve o normal — descreve a pane diluída. Quando um número parecer alarmante, olhe a distribuição no tempo antes de sair contando a história.

Existe um problema real ali embaixo — áudios muito longos ainda estouram um limite técnico e caem no caminho reserva. Mas é raro e afeta só áudio longo, não 70% de nada. Está documentado com a medição certa e vai ser tratado no ritmo que merece.


5. O muro que o WhatsApp levantou no meio do caminho

Lembra que a escolha da "porta lateral" tinha um preço? Chegou a conta.

Por volta de junho de 2026, o WhatsApp passou a exigir passkey pra vincular um aparelho novo. Passkey é aquela autenticação por digital ou reconhecimento facial que substitui senha — a chave fica guardada no seu celular, num compartimento que nem você consegue abrir e copiar.

Do ponto de vista de segurança, é ótimo e era esperado. Do ponto de vista do AudioFlow, é uma parede.

Por que é uma parede de verdade

O problema não é de código, é de desenho do padrão. A regra do passkey diz, em essência: essa chave só pode ser usada numa página que pertença ao whatsapp.com. É exatamente essa regra que impede um site falso de pedir sua digital fingindo ser seu banco.

O AudioFlow não é o whatsapp.com. Então ele não pode pedir. E não adianta gerar uma chave própria — o servidor rejeita, porque a chave tem que ser a que você criou.

O que descobri olhando o resto do mercado

Antes de investir em contornar isso, fui ver como as outras ferramentas do mundo estavam lidando. O resultado foi esclarecedor: todas bateram no mesmo muro, e nenhuma passou por cima.

Todas convergiram pra mesma solução — pedir ao usuário que produza a autorização dentro do próprio site do WhatsApp, com uma extensão de navegador de um clique, e repassar essa autorização pro serviço. Incluindo os fornecedores pagos: um deles, comercial, usa exatamente a mesma técnica e admite no próprio blog que ela não escala pra centenas de números.

Isso mudou minha leitura da situação. O atrito não é uma falha minha — é o teto de todo mundo. A solução do AudioFlow está no mesmo nível do que existe de melhor.

A lição: quando bater num muro, gaste um dia olhando como os outros lidaram com ele antes de gastar um mês tentando derrubá-lo. Se ninguém passou, o problema provavelmente não é seu — e a conversa deixa de ser "como resolvo" e passa a ser "como convivo".

E há um detalhe que salva o produto: a passkey é pedida só no momento de conectar, uma única vez. Depois disso, as reconexões acontecem sozinhas. É um passo a mais no cadastro, não um incômodo diário.


6. A conta: quanto custa transcrever um minuto

Uma das coisas que mais me surpreendeu neste projeto foi como a IA ficou barata.

O custo por minuto de áudio

ItemCusto por minuto
Transcrição (áudio → texto)R$ 0,0034
Resumo (metade dos áudios precisa)R$ 0,0038
TotalR$ 0,0072

Sete milésimos de real. Um minuto de áudio transcrito e resumido por inteligência artificial custa menos de um centavo. Cem minutos custam setenta centavos.

O que isso faz com os planos

PlanoPreçoMinutosCusto de IAMargem
StarterR$ 29,90120R$ 0,8797%
LightR$ 49,90240R$ 1,7496%
BasicR$ 79,90480R$ 3,4796%
ProR$ 149,90960R$ 6,9495%
BusinessR$ 499,903.840R$ 27,7594%

E o plano gratuito, com 30 minutos, custa 22 centavos por mês por pessoa. É barato o bastante pra funcionar como porta de entrada em vez de prejuízo.

Onde o dinheiro realmente vai

Aqui está a virada de chave: o custo da IA é irrelevante. O custo é a infraestrutura ligada.

Quatro dos seis servidores não podem dormir. A conexão com o WhatsApp precisa ficar de pé o tempo todo — se o servidor hiberna, sua sessão cai. Isso significa custo fixo rodando 24 horas por dia, com um usuário ou com mil.

Dá uns 100 reais por mês em servidores, mais o banco de dados. E esses 100 reais existem mesmo com zero clientes.

A conclusão de negócio: num serviço assim, o gargalo nunca é o custo por uso — é a conversão. Cada assinante novo é quase lucro puro, porque o custo variável é ridículo. O que decide se o negócio fecha é quantas pessoas gratuitas viram pagantes, não quantos minutos elas transcrevem.

A armadilha do plano B

Um detalhe que quase virou uma surpresa desagradável. Lembra do fornecedor reserva de transcrição? Ele custa nove vezes mais que o principal.

Enquanto o principal funciona, o reserva nunca é acionado e o custo fica no mínimo. Mas o reserva entra em ação sozinho, em silêncio, sempre que o principal falha. Se metade das transcrições passasse a cair nele, o custo de transcrição quintuplicaria sem que ninguém percebesse — até a fatura chegar.

E já aconteceu algo pior que caro: a chave do fornecedor principal expirou, o reserva assumiu — e assumiu quebrado. Estava configurado errado e devolvia a duração do áudio como zero. Como o sistema pula áudios de duração zero, ele passou a descartar tudo silenciosamente. Dois defeitos se escondendo um atrás do outro: um plano B que ninguém testava, escondido por um plano A que não falhava nunca.

A lição: plano B que nunca é exercitado não é plano B, é suposição. Se ele só roda quando tudo já deu errado, ele vai estragar em silêncio — e você vai descobrir no pior dia possível.


7. Quando a documentação mente

O AudioFlow foi construído com um método em que a especificação vem antes do código: primeiro se escreve o que o sistema deve fazer, depois como, depois se quebra em tarefas pequenas e se implementa uma a uma. Cada tarefa tem um estado — rascunho, em andamento, em revisão, pronto.

Funciona bem. Até parar de funcionar.

Numa auditoria recente, comparei o que a documentação dizia com o que estava efetivamente rodando. O resultado:

Nada disso quebrou o produto. Mas é exatamente o tipo de coisa que faz a próxima pessoa — ou você mesmo daqui a seis meses — perder uma tarde seguindo instruções que não funcionam mais.

A lição: documentação não apodrece devagar e uniformemente. Ela congela numa data. O código continua andando e ninguém avisa o documento. A pergunta que revela isso não é "a documentação está boa?" — é "quando foi a última vez que alguém comparou o que está escrito com o que está rodando?"

A correção foi conferir cada afirmação contra o banco de dados de produção e contra os endereços no ar, não contra o que a tarefa dizia de si mesma. Trabalhoso, e a única forma que funciona.


8. O que fica

O AudioFlow hoje está no ar, transcrevendo áudios de verdade para pessoas de verdade. É um produto pequeno com uma quantidade desproporcional de decisões interessantes por trás.

Se eu tivesse que resumir o que aprendi construindo ele, seria isto:

A escolha técnica que parece detalhe define o produto. Optar pela porta lateral do WhatsApp em vez da porta oficial não foi uma preferência de engenharia — foi o que tornou possível um produto para pessoas físicas. E também o que me deixou exposto quando o WhatsApp mudou as regras. As duas coisas vieram no mesmo pacote.

Erro de cobrança é diferente dos outros erros. Um botão desalinhado incomoda. Um erro de cobrança tira dinheiro ou serviço de alguém que confiou em você. E foi o que ficou mais tempo em aberto, justamente porque não gritava — ninguém abre um chamado dizendo "acho que fui cobrado 4% a mais".

Medir errado é pior que não medir. Não medir deixa você inseguro, e insegurança leva a checar. Medir errado dá confiança — e confiança leva a agir. Eu quase priorizei semanas de trabalho em cima de um número que descrevia uma pane já resolvida.

Nem todo muro é para ser derrubado. A barreira do passkey não tem solução hoje, para ninguém, no mundo inteiro. Reconhecer isso liberou tempo pra trabalhar no que dá pra melhorar de fato.

E, por fim: o custo da inteligência artificial deixou de ser o problema. Menos de um centavo por minuto de áudio processado por dois modelos diferentes. A parte cara de um produto de IA hoje não é a IA — é tudo o que precisa ficar de pé em volta dela.


AudioFlow — transcrição automática de áudios do WhatsApp.
Case escrito em 2026-07-29, com números medidos em produção na mesma data.
Feito em Go e Next.js, rodando na Fly.io.