Skip to content

vcheckk/owly

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Owly

Features · Screenshots · Quick Start · Configuration · API · Tech Stack · Wiki · Roadmap

License Node PRs Welcome TypeScript Next.js PostgreSQL

Owly Demo


What is Owly?

Owly is a self-hosted AI customer support agent that small businesses and individuals can run on their own machines -- completely free. Connect your WhatsApp, Email, and Phone channels, add your business knowledge, and let the AI handle customer inquiries 24/7.


Zero Cost
No monthly fees. You only pay
for AI API usage.



Your Data, Your Server
Everything runs on your machine.
Complete privacy.



Multi-Channel
WhatsApp, Email, and Phone
from a single dashboard.



5-Minute Setup
Docker Compose or npm.
Guided setup wizard.



Features

Multi-Channel Support

Connect all your customer communication channels in one place.

WhatsApp

Connect via QR code scan or Business API. Handles text, images, voice messages, and documents.

Email

IMAP/SMTP with any provider. Branded HTML templates with automatic thread tracking.

Phone

Twilio Voice with OpenAI Whisper (STT) and ElevenLabs (TTS) for natural voice conversations.

Channel Management
Connect and manage all channels from one screen

AI-Powered Conversations

Owly uses OpenAI GPT (extensible to Claude, Ollama) with your knowledge base to provide accurate, on-brand responses. During conversations, the AI can autonomously:

  • Create tickets when customers report problems
  • Route issues to the right department based on expertise matching
  • Send internal emails to notify team members about urgent issues
  • Look up customer history for context-aware support
  • Trigger webhooks to notify external systems
  • Schedule follow-ups for proactive customer care

Conversations
Unified inbox with conversation thread and admin takeover

Customer CRM

Every customer gets a unified profile across all channels -- conversations, notes, tags, and contact history in one place.

Customer Management
Customer profiles with notes, tags, and cross-channel history

Knowledge Base

Train your AI with your business information. Organize entries into categories, set priorities, and test responses before going live.

Knowledge Base Categories
Categories with entry counts and color coding
Knowledge Base Entries
Entries with priority levels and active toggles

Automation Engine

Automate repetitive tasks with rule-based automation, business hours, SLA tracking, and canned responses.

Automation Rules
Auto-route, auto-tag, auto-reply, keyword alerts
Canned Responses
Quick reply templates with shortcuts
Business Hours
Weekly schedule with timezone and offline messages
SLA Rules
Response time targets per channel and priority

Team & Ticket Management

Organize your team into departments, track issues with a full ticket system, and monitor performance.

Team Management
Departments, members, expertise, and availability
Ticket System
Priority levels, assignments, and status tracking

Analytics & Insights

Monitor your support performance with charts, metrics, and team performance tracking.

Analytics Dashboard
Conversation trends, channel breakdown, ticket distribution, and satisfaction scores

Administration & API

Manage users, API keys, webhooks, and explore the full REST API with interactive documentation.

Administration
Multi-admin with roles and API key management
API Documentation
Interactive API docs with live request testing

Dark Mode

Full dark theme with persistent preference, applied across all 19 pages.

Dark Mode
Dark mode dashboard with consistent styling across all components

More Features

Settings
6-tab settings: General, AI, Voice, Phone, Email, WhatsApp
Webhooks
Webhook management with payload preview and testing

Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 16+

Option 1: npm

# Clone the repository
git clone https://github.com/hsperus/owly.git
cd owly

# Install dependencies
npm install

# Set up environment
cp .env.example .env
# Edit .env with your database URL and API keys

# Run database migrations
npx prisma migrate dev

# (Optional) Load sample data with a default admin account
npm run db:seed
# Default login: username=admin, password=admin123

# Start the development server
npm run dev

Option 2: Docker Compose

git clone https://github.com/hsperus/owly.git
cd owly

cp .env.example .env
# Edit .env with your API keys

docker compose up -d

Open http://localhost:3000 -- the setup wizard will guide you through the initial configuration.

Login Page
Clean login page with Owly branding


Configuration

All configuration is done through the admin dashboard -- no config files to edit after initial setup:

Setting Location Description
Business profile Settings > General Name, description, welcome message, tone
AI provider Settings > AI Configuration OpenAI / Claude / Ollama, model, API key
Voice Settings > Voice ElevenLabs API key and voice selection
Phone Settings > Phone Twilio Account SID, auth token, phone number
Email Settings > Email SMTP and IMAP server configuration
WhatsApp Channels > WhatsApp QR code scan or Business API
Team Team Departments, members, expertise areas
SLA SLA Rules Response and resolution time targets
Schedule Business Hours Weekly availability and offline messages
Automation Automation Auto-route, auto-tag, auto-reply rules
Templates Canned Responses Pre-written reply templates
Integrations Webhooks External service connections

API

Owly provides a full REST API. Interactive documentation with live testing is available at /api-docs in the dashboard.

# Send a message and get AI response
curl -X POST http://localhost:3000/api/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key" \
  -d '{"message": "What are your business hours?", "channel": "api"}'

# Response:
# {"conversationId": "...", "response": "We are open Monday to Friday, 9 AM to 6 PM..."}
# Health check
curl http://localhost:3000/api/health
# {"status": "ok", "version": "0.1.0", "database": "connected"}
View all endpoints
Method Endpoint Description
POST /api/chat Send message, get AI response
GET POST /api/conversations List or create conversations
GET PUT DELETE /api/conversations/:id Manage a conversation
POST /api/conversations/:id/messages Add message (admin takeover)
POST /api/conversations/:id/satisfaction Rate conversation (1-5)
POST /api/conversations/:id/notes Add internal note
GET POST /api/customers List or create customers
GET PUT DELETE /api/customers/:id Manage a customer
GET POST /api/tickets List or create tickets
GET PUT DELETE /api/tickets/:id Manage a ticket
GET POST /api/knowledge/categories Knowledge categories
GET POST /api/knowledge/entries Knowledge entries
POST /api/knowledge/test Test AI with a question
GET PUT /api/settings Application settings
GET /api/analytics?period=7d Analytics data
GET /api/export?type=conversations&format=csv Export (CSV/JSON)
GET POST /api/automation Automation rules
GET PUT /api/business-hours Business hours config
GET POST /api/sla SLA rules
GET POST /api/canned-responses Canned responses
GET POST /api/webhooks Webhook management
POST /api/webhooks/test Test a webhook
GET POST /api/admin/users Admin user management
GET POST /api/admin/api-keys API key management
GET /api/activity Activity audit log
GET /api/health Health check

Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript
Database PostgreSQL + Prisma ORM
UI Tailwind CSS
AI OpenAI GPT (extensible to Claude, Ollama)
Voice TTS ElevenLabs
Voice STT OpenAI Whisper
Phone Twilio Voice API
WhatsApp whatsapp-web.js
Auth JWT + bcrypt
Charts Pure CSS/SVG (zero dependencies)
Deployment Docker Compose

Project Structure

owly/
├── prisma/                  # Database schema, migrations, seed
├── public/                  # Static assets (logo)
├── docs/
│   ├── screenshots/         # UI screenshots (20 images)
│   └── wiki/                # Full documentation (25 pages)
├── src/
│   ├── app/
│   │   ├── (auth)/          # Login, setup wizard
│   │   ├── (dashboard)/     # 19 dashboard pages
│   │   └── api/             # 55+ REST API endpoints
│   ├── components/
│   │   ├── layout/          # Sidebar, header
│   │   └── ui/              # 12 reusable components
│   └── lib/
│       ├── ai/              # AI engine, tools, types
│       ├── channels/        # WhatsApp, email, phone
│       └── hooks/           # Theme hook
├── docker-compose.yml
├── Dockerfile
└── .env.example

Documentation

Full documentation is available in the Wiki:


Roadmap

  • Embeddable live chat widget for customer websites
  • WebSocket real-time updates
  • Vector embeddings for semantic knowledge search
  • Visual AI tool builder
  • Public knowledge base (self-service)
  • Customer self-service portal
  • Visual workflow builder
  • Telegram, Instagram, SMS channels
  • Shopify / WooCommerce integration
  • Sentiment analysis
  • Mobile admin (PWA)
  • Multi-tenant / white-label

Contributing

Contributions are welcome! See the Contributing Guide for details.

# Fork, clone, and create a branch
git checkout -b feature/your-feature

# Make changes and commit
git commit -m 'feat: add your feature'

# Push and open a PR
git push origin feature/your-feature

License

MIT License - see LICENSE for details.


Owly
Owly -- AI Customer Support, Made Simple
Built with Next.js, TypeScript, and PostgreSQL

About

Open-source AI-powered customer support agent. Self-hosted, free, multi-channel (WhatsApp, Email, Phone). Built with Next.js, TypeScript, PostgreSQL.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 97.5%
  • JavaScript 1.1%
  • Other 1.4%