Existe uma versão do pitch de agência de automação com IA que é majoritariamente verdadeira, e outra que é majoritariamente hype, e o que separa as duas é um passo pouco glamouroso no meio.
A parte verdadeira: hoje dá para construir um agente de IA funcionando para um cliente em uma tarde. Isso é genuinamente novo. Dois anos atrás esse mesmo agente era um projeto de dois meses.
A parte que nenhum curso inclui: depois de construir, alguém precisa conectar o WhatsApp daquele cliente, e é aí que o cronograma vai embora. Verificação do Meta Business, um número que não esteja já no app comum, um webhook, aprovação de template. Três semanas de pingue-pongue de email com um cliente que perdeu a senha de um Business Manager criado pela agência anterior.
Construir em um dia, fazer onboarding em três semanas. Essa proporção é o negócio inteiro, e é o motivo de tantas dessas agências travarem em quatro clientes.
O que é de fato uma agência de automação com IA
Tire a marca e é um integrador de sistemas para uma categoria nova de sistema. Você pega um processo de negócio que hoje roda em cima de uma pessoa lendo mensagens, e substitui a parte rotineira por um agente que lê as mesmas mensagens e chama os mesmos sistemas internos.
O trabalho não é treinar modelo. É:
- Descobrir qual processo vale a pena automatizar, o que é uma conversa de negócio.
- Escrever o prompt e as regras, o que se parece mais com redigir uma descrição de cargo do que com programar.
- Ligar as tools nos sistemas que o cliente já tem, o que é integração normal.
- Colocar no canal que os clientes do seu cliente já usam.
- Ficar por perto para consertar quando a realidade chegar.
Os dois últimos são onde as agências ganham ou perdem, e nenhum deles é glamouroso.
Os três modelos de receita
Não são excludentes, e quase toda agência acaba rodando dois.
Fee por projeto. Preço fechado para construir e lançar um agente. Limpo, fácil de vender, e acaba. O risco é escopo: um agente cujas tools encostam num ERP legado não é o mesmo projeto que um que responde a partir de um PDF, e um preço único para os dois é como se perde um trimestre.
Retainer. Mensal, cobrindo hospedagem, monitoramento, ajuste de prompt e mudanças. Número menor, negócio melhor. A versão honesta dessa linha é que agentes precisam de manutenção: a política de trocas do seu cliente muda, a API de um fornecedor se mexe, os clientes começam a perguntar algo que ninguém previu.
Revenda. Você tem a conta da plataforma, seu cliente te paga um valor mensal que inclui o consumo dele, e você fica com a diferença. Esse é o que compõe, e é o que tem a armadilha operacional: se você não consegue ver o gasto por cliente, um disparo descontrolado de um cliente come a margem dos outros nove.
Um exemplo com a aritmética à vista, em vez de um múltiplo prometido. Digamos que você cobre USD 400 por mês de um cliente por um agente de suporte no WhatsApp. Seus custos diretos são o plano da plataforma, os tokens do modelo e as cobranças por mensagem da Meta. Na Zavu, o Pro custa USD 20 por mês e inclui USD 20 de crédito de uso; o WhatsApp é cobrado nas tarifas da Meta repassadas, sem taxa de plataforma por conversa, e você pode rodar o agente com a sua própria chave da OpenAI ou Anthropic a custo. Para um cliente com alguns milhares de conversas por mês, o custo direto é dezenas de dólares, não centenas.
O número que decide se essa diferença sobrevive não está nessa lista. É quantas horas você gastou no onboarding.
O muro do onboarding
Este é o passo que decide se uma agência faz quatro clientes ou quarenta.
Para colocar um agente no WhatsApp de um cliente, o negócio do cliente precisa estar conectado a uma WhatsApp Business Account, e só o cliente pode autorizar isso. O que significa, pela via manual:
Multiplique por cada cliente. Isso não é problema de tecnologia, é problema de permissão, e é por isso que "construímos o seu agente essa semana" vira silenciosamente "lançamos mês que vem".
O link que resolve
A solução é parar de ficar no meio. Você manda um link para o cliente. Ele abre, autoriza com a Meta na conta dele, e o sender conectado aparece no seu projeto.
TypeScriptimport Zavudev from "@zavudev/sdk" const zavu = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY }) const { invitation } = await zavu.invitations.create({ clientName: "Clinica Andes", clientEmail: "ops@clinicaandes.com.br", connectionType: "whatsapp_waba", expiresInDays: 14, allowedPhoneCountries: ["BR"], }) // Você manda invitation.url para o cliente. Esse é todo o seu onboarding.
Você nunca toca no Business Manager dele. Ele nunca te manda uma senha. Quando termina, o convite vai para completed e carrega o senderId mais o connectedAccount com o número e o nome verificado que ficou ligado, então o seu sistema sabe que o cliente está no ar sem ninguém conferir na mão.
Assine invitation.status_changed e o pipeline inteiro fica visível: pending ao enviar, in_progress quando ele começa, completed quando funciona, failed quando não. Esse último é o útil. O failed carrega um failureReason sobre o qual você pode agir em vez de adivinhar:
failureReason | O que aconteceu de fato | O que dizer ao cliente |
|---|---|---|
fb_cancelled | Fechou o diálogo da Meta | Nada quebrou, o link continua valendo |
fb_not_authorized | Negou uma permissão | Precisa aceitar todas |
signup_abandoned | Começou e não terminou | Normalmente travado na verificação de negócio |
meta_no_pages | Não administra nenhuma Página do Facebook | Só para conexões de Página, precisa criar uma |
Um convite que falhou continua utilizável, então "tenta o link de novo" é uma resposta real e não uma desculpa.
Duas coisas para saber antes de montar um processo em cima disso. Um convite conecta um canal: para fazer onboarding de um cliente no WhatsApp e na Página do Facebook dele, você cria dois convites, e cada um se completa no próprio sender. E para Páginas do Facebook especificamente, uma Página só pode estar conectada a um projeto Zavu por vez, então se você herda um cliente de outra agência, conectar a Página dele traz ela para você e desconecta a anterior. Esse é o comportamento que você quer ao ganhar uma conta e o que precisa avisar quando um cliente está testando dois fornecedores ao mesmo tempo.
Ver cada cliente separadamente
O modelo de revenda morre em silêncio quando você não consegue responder "quanto o cliente sete me custou mês passado". Sub-contas são a primitiva para isso: uma por cliente, cada uma com as próprias API keys e com um teto de gasto.
TypeScriptconst { subAccount } = await zavu.subAccounts.create({ name: "Clinica Andes", externalId: "crm_8842", creditLimit: 25000, // em centavos, ou seja USD 250 }) // A API key é devolvida uma única vez, na criação. Guarde agora.
Três coisas que isso compra.
O teto é aplicado, não é aviso. Quando uma sub-conta atinge o creditLimit, as mensagens dela são bloqueadas. Um cliente que importa uma lista de 40.000 linhas e clica em enviar não consegue gastar a sua margem, porque o teto é real.
O gasto é atribuível. O zavu.subAccounts.getBalance(id) devolve o totalSpent daquele cliente junto com o teto, que é o que você precisa para faturar, e o que você precisa para perceber que o consumo do cliente três triplicou antes da renovação e não depois.
A cobrança fica num lugar só. Os custos caem no saldo do time pai, então você recarrega uma vez e todos os clientes consomem dali. Seus clientes nunca veem uma fatura da plataforma, que é exatamente o ponto da revenda.
Coloque em externalId o que o seu CRM chama aquele cliente e a conciliação deixa de ser planilha.
Uma restrição para desenhar em volta: API keys de sub-conta não podem administrar sub-contas. Essas chamadas precisam de uma key do pai e devolvem 403 caso contrário, o que está correto (a key de um cliente não deveria conseguir listar os seus outros clientes) e vale saber antes de arquitetar um dashboard para clientes.
Construir rápido para conseguir cotar preço fechado
Preço fechado só funciona se a construção for previsível. O fluxo que torna previsível é aquele em que você não escreve o código.
terminalnpx skills add zavudev/zavu-skills npx zavudev@latest login npx zavudev agents catalog
As skills ensinam essa API ao seu coding agent, então ele para de inventar endpoint e para de ignorar a janela de 24 horas. O catálogo lista agentes prontos para suporte, captação de leads e agendamento, e o npx zavudev agents pull coloca um deles no seu repositório como código editável que é seu, com prompt e tools já escritos.
Dali, cada cliente é um prompt sobre um ponto de partida que já funciona:
> Pegue este agente de agendamento e adapte para uma clínica odontológica. A disponibilidade vem do Google Calendar do nosso cliente. As confirmações saem em português. Nunca agendar dentro das duas horas anteriores a um horário. Deploye e teste com "tem horário na quinta à tarde?"
E depois, antes de encostar nos clientes do seu cliente:
terminalnpx zavudev agents test --agent <agentId> --message "tem horário na quinta à tarde?"
Isso roda o agente real e devolve o que ele diria, sem entregar nada e sem cobrar nada. Para uma agência isso é a demo: você consegue mostrar ao cliente o agente dele respondendo as perguntas dele antes de o WhatsApp dele estar sequer conectado, o que move a venda para antes do onboarding.
Quanto cobrar
Não vamos publicar uma tabela de preços para o seu mercado, porque não o conhecemos. Mas a estrutura que sobrevive é consistente:
Cobre pelo processo, não pelo agente. "Um agente de IA" não tem preço âncora e convida à comparação com uma ferramenta de chatbot de USD 29. "A sua recepção responde toda mensagem em menos de um minuto, sete dias por semana, e agenda direto na sua agenda" é comparado com o que custa uma recepcionista.
Separe construção de operação. Um fee único de construção mais um mensal que cobre consumo, monitoramento e mudanças. Agentes precisam de manutenção, e um modelo sem linha recorrente transforma cada correção numa discussão.
Coloque o consumo no mensal, com um teto que você realmente aplica. É toda a razão de existir do creditLimit. Você pode prometer "até 5.000 conversas incluídas" e cumprir.
Cobre menos do segundo cliente do que do primeiro. O seu primeiro agente num vertical custa a descoberta. A quinta clínica odontológica é um fork da quarta, e a margem mora ali. As agências que compõem fazem isso ficando específicas, não ficando grandes.
Limites honestos
Onde esse modelo não funciona, dito sem rodeios.
Se o processo do cliente não está escrito em lugar nenhum, você não está automatizando, está consultando. Cobre isso separado ou vai fazer de graça.
Se o cliente não consegue entrar no próprio Meta Business Manager, nenhum link resolve. O convite te tira do meio, mas alguém do lado do cliente ainda precisa conseguir autorizar. Qualifique isso na ligação de venda.
Uma agência de um agente é um freelancer com logo. O modelo compõe pela repetição dentro de um vertical. Se cada cliente é de uma indústria diferente, cada construção é a primeira construção.
E o agente precisa ser bom de verdade. Uma agência que entrega um agente confiante e errado perde o cliente e a indicação. Os modos de falha são conhecidos e na maior parte evitáveis, e conhecê-los é uma parte real do que você está vendendo.
Continue lendo
- Como criar um agente de IA: o fluxo, do setup às falhas em produção.
- Agente de IA vs chatbot: a conversa a ter com um cliente que pediu um chatbot.
- O que é um agente de IA: a definição, para quando um cliente pergunta o que está comprando.
- Evolution API vs a API oficial do WhatsApp: por que a via não oficial é um passivo quando um cliente está te pagando.
- Preço por mensagem do WhatsApp: a linha de custo que você está remarcando.