Pular para o conteúdo
Carlos Morais.
Trabalhos

Startup de IA conversacional

Plataforma omnichannel com IA e WhatsApp

Empresas conectavam o WhatsApp delas à plataforma e passavam o contexto do negócio. A IA respondia os clientes dessas empresas, buscava dados em sistemas externos quando precisava, e as empresas disparavam campanhas para milhares de contatos.

Em 30 segundos

  • Full-stack numa startup que atendia os clientes de outras empresas com IA no WhatsApp.
  • Construí do zero o sistema de campanhas em massa (planilha, fila no BullMQ, status por contato) e mantive os webhooks de mensagens.
  • Cerca de 5 empresas, ~100 atendimentos por dia e picos de 1.000 mensagens.
Quando
abr 2025 — jan 2026
Papel
Desenvolvedor de Software · full-stack
Escala
~5 empresas · ~100 interações/dia, picos de 1.000
Stack
Next.js, React, NestJS, PostgreSQL, BullMQ, OpenAI, WhatsApp Cloud API

Contexto

Uma startup de IA conversacional que vendia atendimento automatizado para outras empresas. O canal principal era o WhatsApp, pela API oficial da Meta; havia também um chat próprio e um painel de onde a equipe da empresa cliente podia falar com os clientes dela.

Atendíamos cerca de cinco empresas por vez, sempre com provas de conceito novas em andamento.

O problema

Cada empresa tem o próprio tom, as próprias regras e os próprios sistemas. A IA precisava responder como aquela empresa, e às vezes com dados que só existem nos sistemas dela, como um pedido ou um cadastro, sem expor ao modelo mais do que o necessário.

E campanhas em massa no WhatsApp têm regras próprias: mensagens fora da conversa só por template aprovado, a janela de 24 horas, limites de envio e o status de entrega de cada mensagem voltando depois, por webhook.

Minha parte

Trabalhei nas duas pontas, frontend e backend, e peguei problemas de DevOps quando foi preciso. Quando cheguei, a integração com o WhatsApp já estava sendo construída: dei manutenção nos webhooks e no envio de mensagens. O sistema de campanhas eu construí do zero.

  • Campanhas: importação de planilha, disparo em massa em segundo plano e status de entrega por contato.
  • Manutenção dos webhooks de mensagens e do envio de respostas pelo WhatsApp.
  • Participação nos servidores MCP que ligavam a IA a mais de 10 APIs externas.
  • Apoio ao sistema de IA configurável por empresa: atendimento, geração de leads e automação de fluxos.

Decisões técnicas

Tudo começa num webhook

A Meta entrega cada mensagem recebida por webhook. O backend identifica a empresa, monta a resposta com o contexto dela e responde pela API oficial. A IA levava de 10 segundos a um minuto por resposta.

Campanha é um job longo e controlado

A planilha importada vira um único job na fila (BullMQ) com todos os destinatários. Ele envia com alguns segundos de intervalo, grava cada envio no banco e segue para o próximo. Os webhooks de status marcam depois quem recebeu e quem não recebeu.

Os templates de marketing saem pela Marketing Messages Lite API da Meta, feita para esse tipo de envio.

A janela de 24 horas no banco

A última interação de cada contato fica registrada. Dentro da janela, a resposta é livre; fora dela, só por template, e o template reabre a janela para a conversa continuar.

MCP num serviço separado

Quando começamos, o MCP ainda era novo e não havia servidores prontos para o que precisávamos. Para cada API externa, estudávamos o formato dela e escrevíamos as ferramentas num serviço MCP próprio, em outro servidor: o backend fala com ele pela rede, e a lógica de cada integração fica fora do motor de conversa.

A IA não escolhe de quem são os dados

Quem está falando já é conhecido pelo número do WhatsApp. As ferramentas usam esse número, enviado nos headers, para buscar os dados nas APIs; o modelo recebe só o necessário para responder, e dados sensíveis ficam de fora do prompt.

Arquitetura

As mensagens chegam da Meta por webhook e o motor de conversa responde com o contexto da empresa, consultando a OpenAI e o serviço MCP, que roda em outro servidor e fala com as APIs externas. As campanhas passam por uma fila BullMQ e saem pela API de marketing da Meta.

Resultado

A plataforma atendia cerca de cinco empresas, com uns 100 atendimentos por dia no total e picos de 1.000 mensagens. O sistema de campanhas que construí do zero entrou em uso para as empresas dispararem para listas inteiras de contatos.