UGC Reactions from Real Creators
Real creator library videos at $11 and images at $8. Custom production from $25/video with a $250 minimum. Commercial licensing included.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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