Skip to content

Contrasync WhatsApp Bot - Documentação de Arquitetura

Bot do Contrasync no WhatsApp, hospedado como AWS Lambda + API Gateway HTTP, integrado ao Z-API e ao contrasync-nest-api.


Stack Tecnológico

ComponenteTecnologiaVersãoFinalidade
RuntimeAWS Lambda Node.js20ARM64, 256MB, timeout 30s
Roteador HTTPAPI Gateway HTTP APIv2Webhook do Z-API
IaCAWS CDK2.159.xProvisionamento da stack
Bundleresbuild0.24.xEmpacotamento do Lambda
LinguagemTypeScript5.5.xType-safety
HTTP clientaxios1.7.xZ-API + nest-api
Gateway WhatsAppZ-APIEnvio e recebimento
Testsvitest2.1.x100% coverage threshold
ObservabilityCloudWatch Logs (JSON) + X-RayLogs estruturados e tracing
Backendcontrasync-nest-apiPersistência e regras de negócio (Postgres compartilhado)

Índice de Documentação

DocumentoDescrição
Code StylePadrões obrigatórios herdados do contrasync-nest-api
Project StructureOrganização de arquivos e pastas
LayersFluxo Handler → Service → Adapter → Domain
RoutingRotas HTTP suportadas no Lambda
Connect FlowVinculação via OTP diagrama, estados e exemplos de chat
Z-API IntegrationWebhook, envio, mapper
Meta IntegrationWhatsApp Cloud API: verificação, payload, Graph API, roteamento por provedor
Contrasync API IntegrationEndpoints /whatsapp/bot/* + auth
TestingConvenções e exigência de 100% coverage
DeploymentCDK, env vars, dev server local
Resilience & ObservabilityError boundary, logs JSON, alarms

Leitura Obrigatória

Antes de iniciar qualquer implementação:

  1. Code Style
  2. Layers
  3. Connect Flow
  4. Contrasync API Integration

Fluxo de alto nível

WhatsApp → Z-API → API Gateway → Lambda

                                    ├──► Z-API (envio)
                                    └──► nest-api (/whatsapp/bot/*)

O Lambda é stateless. Todo estado (vínculo, OTP, idempotência) vive no Postgres compartilhado, acessado via API. O bot decide o que responder com base no que o GET /whatsapp/bot/account devolve.

Detalhes em layers.md e connect-flow.md.


Documento atualizado em Maio 2026