βTurn dead leads into revenue with autonomous, multi-channel engagement.β
FollowUpAI is an enterprise-grade autonomous agent system designed to automate the most painful part of sales: The Follow-Up. It intelligently orchestrates communication across Email and WhatsApp, using state-of-the-art LLMs (Llama-3 via Groq) to personalize content, detect intent, and recover stalled pipelines without human intervention.
Sales teams lose 48% of leads simply because they donβt follow up enough. Manual follow-ups are tedious, unpersonalized, and hard to scale. Leads go βcoldβ and revenue is left on the table.
FollowUpAI acts as a tireless SDR (Sales Development Representative).
The application follows a Micro-Service Ready architecture, separating the API layer from the background worker layer to ensure scalability and fault tolerance.
graph TD
subgraph "Frontend Layer (Vercel)"
Web[Next.js 14 Dashboard]
Components[Shadcn UI + Tailwind]
end
subgraph "API Layer (Render / Cloud Run)"
API[FastAPI Server]
Auth[OAuth2 + JWT Service]
end
subgraph "Worker Layer (Async)"
Broker[Redis Message Broker]
Worker[Taskiq Worker Process]
LangGraph[LangGraph State Machine]
end
subgraph "Data Persistence"
DB[(PostgreSQL)]
end
subgraph "External Providers"
Groq[Groq Llama-3 API]
Tavily[Tavily Search API]
Resend[Resend Email API]
Twilio[Twilio WhatsApp API]
end
Web -->|HTTPS/JSON| API
API -->|Write/Read| DB
API -->|Enqueue Task| Broker
Broker -->|Consume| Worker
Worker -->|Execute Agent| LangGraph
LangGraph -->|Inference| Groq
LangGraph -->|Research| Tavily
LangGraph -->|Send| Resend
LangGraph -->|Send| Twilio
Worker -->|Update Status| DB
We chose βBoring Technologyβ for infrastructure and βBleeding Edgeβ for AI.
| Component | Technology | Why We Chose It |
|---|---|---|
| Backend | FastAPI | Python offers the best AI ecosystem. FastAPI provides async concurrency and auto-generated docs. |
| Frontend | Next.js 14 | React Server Components for performance; standard for modern web apps. |
| Database | PostgreSQL | Relational data integrity is critical for CRM data. (Neon Tech for Serverless). |
| Queue | Redis + Taskiq | Decouples heavy AI processing from the specialized user-facing API. |
| AI Model | Llama-3 (Groq) | Near-instant inference speed (~800 t/s) is crucial for real-time agent loops. |
| Orchestration | LangGraph | Provides cyclic graph capability (Loops) which standard RAG chains lack. |
git clone https://github.com/Aisenh037/FollowUpAI.git
cd FollowUpAI
cd backend
python -m venv venv
# Windows
.\venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your API Keys (Groq, Resend, etc.)
cd frontend
npm install
cp .env.example .env.local
npm run dev
Visit http://localhost:3000 to see the app!
This project is optimized for βServerlessβ Deployment.
DB-Less Blueprint.See RENDER_VERCEL_DEPLOY.md for the step-by-step guide.
The core logic resides in backend/agents. We use a State Graph:
LeadStatus (New, Researching, Contacted, Waiting, Replied).research_lead, draft_email).if reply_received -> stop_sequence).This determinism ensures the AI never goes βrogueβ and always follows business rules.
FollowUpAI/
βββ backend/
β βββ agents/ # LangGraph Agent Logic
β βββ routes/ # FastAPI Endpoints
β βββ services/ # Business Logic (Email, DB)
β βββ models/ # SQLAlchemy Database Models
β βββ main.py # App Entrypoint
β βββ worker.py # Taskiq Worker Entrypoint
βββ frontend/
β βββ app/ # Next.js App Router Pages
β βββ components/ # Reusable UI Components
β βββ lib/ # API Clients & Utilities
β βββ types/ # TypeScript Interfaces
βββ docker-compose.yml # Local Dev Orchestration
Built with β€οΈ by Karan as a demonstration of advanced AI Engineering.