The open-source, self-hostable WhatsApp CRM.
Note
OpenConduit is under active development and not yet production-ready. APIs, database schemas, and features may change. Star or watch the repo to follow progress.
OpenConduit is a WhatsApp CRM you can run on your own server. It connects to the WhatsApp Business API through providers like Meta Cloud API, 360dialog, or Twilio, and gives you a clean interface to manage conversations, contacts, and leads.
Built for freelancers, agencies, and local businesses who already use WhatsApp as their primary channel. No per-seat pricing, no data leaving your infrastructure, no vendor lock-in.
- WhatsApp Integration · Send and receive messages through Meta Cloud API, 360dialog, or Twilio
- Contact Management · Organize contacts with tags, notes, and pipeline stages
- Conversation History · Full chat interface with delivery receipts and read status
- Lead Pipeline · Track contacts from New Lead through to Converted
- Auto-Tagging · Automatically tag contacts based on inbound message keywords
- Follow-up Reminders · Set reminders with due dates and overdue alerts
- Quick Reply Templates · Reusable message snippets accessible while composing
- Role-Based Access · Admin and Agent roles with scoped permissions
- 24h Session Window · Visual indicator and enforcement of WhatsApp's messaging policy
- Compliance · Opt-in consent tracking, template-only broadcasts, full data export
- No Telemetry · Zero data sent anywhere. Fully self-contained.
- A Linux VPS or any machine that can run Docker (Ubuntu 22.04+ recommended)
- A registered domain name with DNS pointing to your server
- A WhatsApp Business API provider account (360dialog, Meta Cloud API, or Twilio)
- Docker and Docker Compose installed
git clone https://github.com/growvth/openconduit.git
cd openconduit
cp .env.example .envEdit .env with your configuration:
DATABASE_URL=postgresql://openconduit:your-db-password@db:5432/openconduit
JWT_SECRET=generate-a-random-64-character-string-here
PUBLIC_URL=https://crm.yourdomain.comStart the stack:
docker compose up -dThis brings up the API server, PostgreSQL database, Redis, the web frontend, and a Caddy reverse proxy with automatic TLS.
Open https://crm.yourdomain.com in your browser.
admin@openconduit.dev |
|
| Password | admin123 |
Change the default password immediately after your first login.
- Go to Settings in the sidebar
- Select your WhatsApp provider and enter your API credentials
- Copy the Webhook URL shown on the settings page
- Paste it into your provider's dashboard as the callback URL
- Click Test Connection to verify
Messages will start flowing in as soon as the webhook is registered.
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Yes |
JWT_SECRET |
Random string for signing auth tokens (64+ chars) | Yes |
PUBLIC_URL |
Your public-facing URL (used for webhook registration) | Yes |
REDIS_URL |
Redis connection string | No (defaults to redis://localhost:6379) |
CORS_ORIGIN |
Allowed CORS origin for development | No |
PORT |
API server port | No (defaults to 3000) |
WhatsApp provider credentials are configured through the Settings UI after deployment, not through environment variables.
See CONTRIBUTING.md for development setup, coding standards, and how to submit changes.
If you discover a security vulnerability, please do not open a public issue. Use GitHub's private vulnerability reporting instead. See SECURITY.md for full details.