OLO AI is a modern outbound calling platform built to eliminate wasted agent time and maximize sales efficiency. Evolving from a basic on-premises screener, OLO AI is now a full-featured telephony engine powered by Retell AI and Groq.
It operates in two distinct modes:
- Screener Mode: The AI acts as a silent filter. It calls leads, navigates voicemails/busy signals, and the exact second a real human answers, it instantly bridges the call to a live agent.
- AI Agent Mode: The AI acts as a fully autonomous sales representative. Armed with a dynamic Knowledge Base, it holds complete conversations, handles objections, and transfers only the highly qualified "hot" leads to human closers.
sequenceDiagram
participant Manager
participant System as OLO AI Backend
participant Retell as Retell AI API
participant Groq as Groq (LLM)
participant Agent as Live Agent (WebSocket)
participant Client as Lead / Customer
Manager->>System: Upload Leads & Start Campaign
loop For each pending lead
System->>Retell: Initiate Call (Screener or AI Agent Mode)
Retell-->>Client: Dials Number
Client-->>Retell: Answers Call
alt Mode: Screener
Retell->>System: Webhook (Human Detected)
System->>Agent: WebSocket: 🔴 LIVE HUMAN Alert
Agent->>Retell: Bridges to call
Agent->>Client: Live Conversation
else Mode: AI Agent
Retell->>Client: Full AI Conversation
alt AI determines lead is Hot
Retell->>Agent: Transfer Call to Human Closer
end
end
Retell->>System: Call Ended Webhook (Transcript & Audio)
System->>Groq: Classify Transcript & Extract Insights
Groq-->>System: JSON Disposition (Interested, Callback, DNC)
System->>System: Apply Status Rules (e.g., Schedule Callback)
end
- Screener Mode: Agents never hear a voicemail again. The system auto-dials through lead lists and only connects the agent when a human says "Hello."
- AI Agent Mode: Full voice conversations powered by Retell AI. The AI handles the entire pitch and objection handling based on your dynamic Knowledge Base.
After every call (whether AI-handled or agent-handled), the full transcript is sent to Groq's lightning-fast LLMs. The system automatically classifies the call outcome (Interested, Not Interested, DNC) and can even extract specific dates and times to automatically schedule callbacks.
Managers can upload scripts, pricing, company info, and objection-handling techniques into the Knowledge Base. This data is dynamically injected into the Retell AI prompt, ensuring the bot always has the latest product information.
Live WebSockets (Socket.io) connect the backend to the agent's browser. When a human is detected or a transfer is initiated, the agent's screen flashes red with a LIVE HUMAN alert containing all relevant lead notes and details.
Rules engine automatically routes leads post-call based on Groq's classification. (e.g., If DNC, add to blacklist; if Voicemail, skip for 7 days; if Callback, add to the scheduled Callback Queue).
- Frontend: React 19, Vite, TailwindCSS, Zustand, Recharts.
- Backend: Node.js, Fastify, TypeScript.
- Database: PostgreSQL with Prisma ORM.
- Queue / Background Jobs: Redis + BullMQ (Handles concurrent dialing and webhook processing).
- Real-Time Communications: Socket.io.
- AI & Telephony: Retell AI SDK (Voice AI), Groq SDK (Post-call analysis), RingCentral SDK (Telephony / Agent Bridging).
- Node.js (v20+)
- PostgreSQL Database
- Redis Server (for BullMQ)
- API Keys for Retell AI, Groq, and RingCentral
Create a .env in the backend/ directory:
DATABASE_URL="postgresql://user:password@localhost:5432/olo"
REDIS_URL="redis://localhost:6379"
RETELL_API_KEY="your_retell_key"
GROQ_API_KEY="your_groq_key"
RC_CLIENT_ID="your_rc_client_id"
RC_CLIENT_SECRET="your_rc_client_secret"
JWT_SECRET="your_secret_key"cd backend
npm install
npm run prisma:generate
npm run prisma:migrate
npm run devcd frontend
npm install
npm run devVisit http://localhost:5173 to access the Manager Dashboard and Agent Interface.