Nove integrações externas em produção.
A plataforma da IRB não é uma ilha. Ela conversa com nove sistemas externos para entregar a experiência completa — todos configurados, testados e operando.
Mapa das integrações
| Integração | Tipo | O que faz | Status |
|---|---|---|---|
| Klingo | API REST externa | Agenda, pacientes, marcações, atendimentos — sistema-mãe clínico | Ativa |
| UAZAPI | Gateway WhatsApp | Envio e recebimento de mensagens, mídia, botões interativos | Ativa |
| Asaas | Gateway de pagamento | PDV, cobranças, PIX, cartão, assinaturas | Ativa |
| OpenAI | LLM principal | gpt-4o-mini para a IA conversacional | Ativa |
| Anthropic Claude | LLM fallback | Substituto automático quando OpenAI falha | Ativa |
| PostgreSQL | Banco relacional | Banco principal — pacientes, médicos, agendas, financeiro | Ativa |
| MongoDB | Banco documental | Conversas, histórico de mensagens, dados não-estruturados | Ativa |
| Redis | Cache + filas | BullMQ (workers), cache de sessão, rate limiting | Ativa |
| REINF / eSocial | Webservice gov | Envio fiscal de eventos R-1000, R-1050, R-4010 | Ativa |
Decisões de arquitetura
Klingo — migração para API externa
Em 26 de fevereiro, a integração migrou da API interna (formato AQL) para a API externa oficial da Klingo. Isso garante:
- Endpoints documentados oficialmente
- Estabilidade contratual
- Suporte oficial da Klingo
- Compatibilidade futura
WhatsApp — migração para UAZAPI
Em 24 de fevereiro, o gateway WhatsApp migrou de Evolution API para UAZAPI (saraiva.uazapi.com). Motivos:
- Maior estabilidade
- Suporte completo a botões interativos
- Webhook confiável
- Custos previsíveis
IA — estratégia dual com fallback
A IA usa OpenAI como modelo principal e Claude como fallback automático. Se a OpenAI retorna erro 5xx, estouro de quota, ou timeout, a requisição é reencaminhada para Claude transparentemente. O paciente nunca percebe.
Filas — BullMQ + Redis
Tudo que é assíncrono (envio de WhatsApp, sincronização com Klingo, processamento de áudio) passa por filas BullMQ. Isso desacopla a API da latência dos serviços externos e permite retries automáticos.
Credenciais e configuração
Todas as credenciais ficam em variáveis de ambiente, nunca em código. O arquivo .env.example documenta cada variável necessária. A IRB tem cópia completa do .env de produção em local seguro.
Webhook health
A API expõe um endpoint /api/health que verifica em tempo real:
- Conexão com PostgreSQL
- Conexão com MongoDB
- Conexão com Redis
- Status do UAZAPI
- Disponibilidade da Klingo
Útil para monitoramento externo (Uptime Robot, status pages).