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