A robust WhatsApp messaging automation system focused on high performance, resilience, and operational control. Built with NestJS, Prisma, and PostgreSQL.
-
Audience Management: Full CRUD for contacts and lists, with CSV import support.
-
Broadcast Campaigns: Create bulk messaging campaigns with progressive, human-like scheduling using configurable delays.
-
Automation Engine (Flows): Build sequential message flows with smart delays between steps.
-
Resilient Dispatch Engine:
- Background workers for asynchronous processing.
- Provider abstraction layer (Mock provider and ready support for WPPConnect / Evolution API).
- Retry system with exponential backoff (1 min → 5 min → 15 min).
-
Full Operational Control:
- Pause and Cancel: Immediate interruption of dispatches at the database level.
- Observability: Administrative endpoints to monitor pending, processed, and failed queue items.
- Audit Trail: Detailed logs for every send attempt (
SendLog).
- Backend: NestJS
- Database: PostgreSQL + Prisma ORM
- Validation: class-validator + ValidationPipe
- Logging: Winston / Nest Logger
- Scripts: SQL scripts for auditing and test seed data
- Node.js (v18+)
- Docker (for the database) or a local PostgreSQL instance
# 1. Install dependencies
npm install
# 2. Set up the environment
cp .env.example .env # Adjust the connection variables
# 3. Start the database (if using Docker)
docker-compose up -d
# 4. Run migrations
npx prisma migrate dev# Development mode
npm run start:dev
# Production mode
npm run start:prodDevelopment was divided into incremental phases, documented in the links below:
- Sprint 1: Contact Base and Import
- Sprint 2: Campaign Engine and Queue
- Sprint 3: Workers and Resilience
- Sprint 5: Control and Observability
The project includes a ready-to-use requests.http file for the REST Client VSCode extension, with example API calls.
This project is private and intended for educational and development purposes.