Open-Source Cold Email & Warmup Platform
Warmbly 是開源的冷郵件平台:溫暖您的收件箱、發送活動、並對每個回覆進行分流。可在我們的雲端運行或自行託管整個系統。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A production-ready WhatsApp Business management platform built with Next.js 14, MySQL, and Meta WhatsApp Cloud API — similar to AiSensy.
| Feature | Description |
|---|---|
| Multi-tenant | Each user gets their own workspace with separate API credentials |
| Chat Inbox | WhatsApp Web-style chat UI with real-time polling |
| Bulk Campaigns | Send template messages to thousands of contacts |
| CRM Contacts | Manage leads with tags, status, and CSV import |
| Templates | Create & submit templates for Meta approval |
| Chatbot | Rule-based auto-reply by keyword/pattern |
| Analytics | Delivery rates, read rates, conversion charts |
| Webhook | Receive messages & status updates from Meta in real-time |
whatsapp-saas/
├── app/
│ ├── api/
│ │ ├── auth/ login, signup, logout
│ │ ├── webhook/ Meta webhook handler
│ │ ├── contacts/ CRUD + CSV import
│ │ ├── messages/ conversation history
│ │ ├── templates/ CRUD + Meta submission
│ │ ├── campaigns/ CRUD + launch (bulk send)
│ │ ├── chatbot/ CRUD rules
│ │ ├── analytics/ summary + chart data
│ │ └── workspace/ settings
│ ├── dashboard/ Analytics overview
│ ├── inbox/ Chat UI
│ ├── contacts/ CRM
│ ├── campaigns/ Bulk campaigns
│ ├── templates/ Template manager
│ ├── chatbot/ Chatbot rules
│ ├── analytics/ Full analytics
│ ├── settings/ Workspace config
│ ├── login/
│ └── signup/
├── lib/
│ ├── db.ts MySQL connection pool
│ ├── auth.ts JWT + bcrypt helpers
│ ├── whatsapp.ts Meta API wrapper
│ └── utils.ts Shared utilities
├── types/index.ts TypeScript interfaces
├── middleware.ts Auth route protection
├── schema.sql MySQL schema
└── .env.local.example Environment template
cd whatsapp
npm install
mysql -u root -p < schema.sql
cp .env.local.example .env.local
# Edit .env.local with your MySQL credentials and Meta API keys
https://your-domain.com/api/webhook
messages, message_deliveries, message_readsnpm run dev
# Open http://localhost:3000
http://localhost:3000/signupPOST /api/auth/signup { name, email, password, workspaceName }
POST /api/auth/login { email, password }
POST /api/auth/logout
POST /api/send-message { contactId, type, text } OR { contactId, type:'template', templateName, language, components }
GET /api/messages?contactId=X&limit=50
GET /api/contacts?page=1&limit=20&search=X&status=new
POST /api/contacts { name, phone, email, city, source, tags, status }
PUT /api/contacts/:id
DEL /api/contacts/:id
POST /api/contacts/import (multipart/form-data, file=CSV)
GET /api/templates
POST /api/templates { name, language, category, body_text, ... }
GET /api/campaigns
POST /api/campaigns { name, template_id, contact_ids, scheduled_at }
POST /api/campaigns/:id/launch
GET /api/chatbot
POST /api/chatbot { trigger_type, trigger_value, response_type, response_text, priority }
PUT /api/chatbot/:id
DEL /api/chatbot/:id
GET /api/analytics
GET /api/webhook?hub.mode=subscribe&hub.verify_token=X&hub.challenge=Y
POST /api/webhook (receives messages and status updates)
# Signup
curl -X POST http://localhost:3000/api/auth/signup \
-H "Content-Type: application/json" \
-d '{"name":"Test User","email":"[email protected]","password":"password123","workspaceName":"My Business"}'
# Send message (use token from signup response)
curl -X POST http://localhost:3000/api/send-message \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"contactId":1,"type":"text","text":"Hello from API!"}'
# Import contacts CSV
curl -X POST http://localhost:3000/api/contacts/import \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "[email protected]"
name,phone,email,city,source
John Doe,919876543210,[email protected],Mumbai,website
Jane Smith,919123456789,[email protected],Delhi,manual
npm i -g vercel
vercel --prod
Set environment variables in Vercel dashboard.
npm run build
npm start
# Or use PM2:
pm2 start npm --name "wa-saas" -- start
Use PlanetScale, Railway, or AWS RDS for MySQL in production.
Built with ❤️ using Next.js + Meta WhatsApp Cloud API