Chatbot WA Multi Admin: Kolaborasi Tim CS
Setup chatbot WhatsApp dengan multi admin. Bagi chat ke tim, tracking, collision avoidance. Kolaborasi CS yang efisien!
Bisnis makin besar, CS satu tidak cukup!
Tapi satu nomor WA dipakai rame-rame = kacau! Siapa yang handle apa? Ada yang kedobelan?
Solusinya: Multi-admin dengan sistem yang proper!
Masalah Tanpa Sistem Multi-Admin
😫 Siapa yang harus balas chat ini?
😫 Dua orang balas chat yang sama
😫 Ada chat yang terlewat
😫 Tidak tahu siapa yang sudah handle
😫 Tidak bisa track performa per adminFitur Multi-Admin System
1. Chat Assignment
Chat masuk
↓
Auto-assign ke admin yang available
↓
Admin menerima notifikasi
↓
Admin handle sampai selesai2. Manual Pickup
Chat masuk → Pool/Queue
↓
Admin klik "Ambil" untuk claim
↓
Chat locked ke admin tersebut3. Transfer Chat
Admin A: "Chat ini butuh supervisor"
↓
Transfer ke Admin B / Supervisor
↓
Admin B ambil alih4. Collision Avoidance
Admin A sedang ketik reply
↓
Admin B lihat: "Admin A sedang mengetik..."
↓
Tidak ada double replyArsitektur Multi-Admin
┌─────────────────┐
│ WhatsApp │
│ (1 Nomor) │
└────────┬────────┘
│
┌────────▼────────┐
│ Bot Server │
│ (Central) │
└────────┬────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ Admin Panel │ │ Admin Panel │ │ Admin Panel │
│ (Admin 1) │ │ (Admin 2) │ │ (Admin 3) │
└─────────────────┘ └─────────────────┘ └─────────────────┘Model Assignment
Model 1: Round Robin
Chat 1 → Admin 1
Chat 2 → Admin 2
Chat 3 → Admin 3
Chat 4 → Admin 1 (ulang)
...
Pros: Distribusi merata
Cons: Tidak lihat workload actualModel 2: Least Busy
Admin 1: 5 active chats
Admin 2: 3 active chats ← Chat baru ke sini
Admin 3: 4 active chats
Pros: Balance workload
Cons: Butuh tracking real-timeModel 3: Queue/Pool
Semua chat masuk ke pool
Admin claim manual
Yang sudah claim = locked
Pros: Admin ambil sesuai kapasitas
Cons: Butuh kedisiplinanModel 4: Skill-Based Routing
Chat tentang "komplain" → Tim Komplain
Chat tentang "order" → Tim Sales
Chat tentang "teknis" → Tim Support
Pros: Expertise match
Cons: Setup lebih kompleksImplementasi Multi-Admin
Database Schema:
javascript
// Chats
{
chatId: 'customer123',
assignedTo: 'admin1', // null = unassigned
status: 'active', // active, resolved, pending
lastActivity: Date,
history: [
{ from: 'customer', text: 'Hai', time: Date },
{ from: 'admin1', text: 'Ada yang bisa dibantu?', time: Date }
]
}
// Admins
{
adminId: 'admin1',
name: 'Budi',
status: 'online', // online, busy, offline
activeChats: 5,
maxChats: 10
}Assignment Logic:
javascript
async function assignChat(chatId) {
// Get available admins
const admins = await db.admins.find({
status: 'online',
$expr: { $lt: ['$activeChats', '$maxChats'] }
}).sort({ activeChats: 1 });
if (admins.length === 0) {
// No admin available
await queueChat(chatId);
return null;
}
// Assign to least busy
const selectedAdmin = admins[0];
await db.chats.update(chatId, {
assignedTo: selectedAdmin.adminId,
status: 'active'
});
await db.admins.increment(selectedAdmin.adminId, 'activeChats', 1);
// Notify admin
await notifyAdmin(selectedAdmin, chatId);
return selectedAdmin;
}Admin Panel (Web Dashboard):
javascript
// Real-time chat list for admin
io.on('connection', (socket) => {
const adminId = socket.handshake.query.adminId;
// Join admin room
socket.join(`admin:${adminId}`);
// Send assigned chats
const chats = await db.chats.find({ assignedTo: adminId });
socket.emit('chat_list', chats);
// Handle incoming messages
socket.on('send_message', async (data) => {
const { chatId, message } = data;
// Verify ownership
const chat = await db.chats.findOne({
_id: chatId,
assignedTo: adminId
});
if (!chat) {
socket.emit('error', 'Not authorized');
return;
}
// Send via WhatsApp
await sendWhatsAppMessage(chat.phone, message);
// Update history
await db.chats.push(chatId, 'history', {
from: adminId,
text: message,
time: new Date()
});
});
// Transfer chat
socket.on('transfer_chat', async (data) => {
const { chatId, toAdminId } = data;
await transferChat(chatId, adminId, toAdminId);
});
});Dashboard Features
Admin View:
┌─────────────────────────────────────────────────────────────┐
│ 🟢 Admin: Budi (Online) Active: 5/10 chats │
├─────────────────────────────────────────────────────────────┤
│ │
│ 📥 MY CHATS 📋 QUEUE (3) │
│ ───────────── ────────── │
│ 🔵 Siti (2m ago) • Customer A (5m) │
│ 🔵 Ahmad (5m ago) • Customer B (3m) │
│ 🔵 Dewi (10m ago) • Customer C (1m) │
│ ⚪ Rudi (30m ago) │
│ ⚪ Maya (1h ago) [CLAIM] │
│ │
└─────────────────────────────────────────────────────────────┘Supervisor View:
┌─────────────────────────────────────────────────────────────┐
│ SUPERVISOR DASHBOARD 15 Jan 2026 14:30 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 📊 TODAY'S STATS │
│ Total Chats: 150 | Resolved: 120 | Active: 25 | Queue: 5 │
│ │
│ 👥 ADMIN STATUS │
│ ────────────── │
│ 🟢 Budi - 5 active - Avg response: 1.2 min │
│ 🟢 Sari - 7 active - Avg response: 2.0 min │
│ 🟡 Andi - 3 active - Avg response: 3.5 min ⚠️ │
│ 🔴 Dewi - Offline │
│ │
│ ⚠️ ALERTS │
│ • 2 chats waiting > 5 min │
│ • Andi response time high │
│ │
└─────────────────────────────────────────────────────────────┘Metrics per Admin
📊 PERFORMA ADMIN - JANUARI 2026
Admin: Budi
📈 Volume:
- Total chat handled: 450
- Avg per day: 18
⏱️ Response Time:
- First response: 1.2 min
- Resolution time: 8.5 min
⭐ Quality:
- CSAT: 4.5/5
- Escalation rate: 8%
🏆 Ranking: #1 dari 5 adminTips Multi-Admin
1. Set Max Chat per Admin
Jangan overload:
Junior: Max 5 concurrent chats
Senior: Max 8 concurrent chats
Supervisor: Max 3 (lebih banyak oversight)2. Clear Handoff Protocol
Saat transfer/shift change:
1. Summary situasi
2. Apa yang sudah dilakukan
3. Apa yang perlu di-follow up3. Escalation Path
Level 1: Admin → Handle normal
Level 2: Senior → Komplain, diskon request
Level 3: Supervisor → Refund, masalah serius4. Regular Sync
Daily: 15 min standup
Weekly: Review metrics & issues
Monthly: Training & improvementFAQ
Bisa pakai 1 nomor WA untuk banyak admin?
Bisa dengan sistem centralized. Satu nomor connect ke server, admin akses via dashboard. Bukan login WA langsung.
Bagaimana jika admin offline dadakan?
Chat yang assigned akan masuk queue atau auto-reassign ke admin lain yang available.
Platform apa yang support multi-admin?
Balaswa dan beberapa platform lain support multi-admin. Atau bisa build custom dengan arsitektur di atas.
Kesimpulan
Multi-admin = Scale CS tanpa kekacauan!
| Single Admin | Multi-Admin System |
|---|---|
| Kewalahan | Workload terbagi |
| Double reply | Collision avoided |
| No tracking | Performance metrics |
| No escalation | Clear escalation path |
Kolaborasi tim CS yang efisien!