Chatbot WA untuk Klinik & Apotek
Setup chatbot WhatsApp untuk klinik dan apotek. Pendaftaran online, cek jadwal dokter, order obat. Tingkatkan pelayanan kesehatan!
Pelayanan kesehatan yang lebih accessible!
Chatbot memudahkan pasien daftar online, cek jadwal dokter, dan order obat tanpa harus telepon atau antri.
Use Cases
Klinik:
🏥 UNTUK KLINIK:
- Pendaftaran online
- Cek jadwal dokter
- Reminder appointment
- Info layanan & harga
- Hasil lab (dengan autentikasi)
- Follow-up pasienApotek:
💊 UNTUK APOTEK:
- Cek ketersediaan obat
- Order/pesan obat
- Resep online (tebus resep)
- Konsultasi apoteker
- Reminder minum obat
- Delivery obatTemplate Messages - Klinik
Greeting Klinik:
🏥 KLINIK [NAMA]
Selamat datang di Klinik [NAMA]!
Layanan kami:
1️⃣ Daftar Berobat
2️⃣ Jadwal Dokter
3️⃣ Info Layanan & Biaya
4️⃣ Cek Status Antrian
5️⃣ Hasil Lab (Pasien Terdaftar)
6️⃣ Hubungi Kami
Ketik angka untuk pilih!
📞 Darurat? Call 021-xxx-xxxxJadwal Dokter:
👨⚕️ JADWAL DOKTER
Pilih poliklinik:
1️⃣ Umum
2️⃣ Gigi
3️⃣ Anak
4️⃣ Kandungan
5️⃣ Kulit & Kelamin
6️⃣ THT
Ketik angka atau nama poli!Detail Jadwal:
👨⚕️ JADWAL DOKTER UMUM
dr. Budi Santoso, Sp.PD
━━━━━━━━━━━━━━━━━━━━
Senin : 08:00 - 12:00 ✅
Selasa : 08:00 - 12:00 ✅
Rabu : LIBUR
Kamis : 14:00 - 18:00 ✅
Jumat : 08:00 - 12:00 ✅
Sabtu : 08:00 - 11:00 ✅
dr. Ani Wijaya
━━━━━━━━━━━━━━━━━━━━
Senin : 14:00 - 18:00 ✅
Selasa : 14:00 - 18:00 ✅
Rabu : 08:00 - 12:00 ✅
Kamis : LIBUR
Jumat : 14:00 - 18:00 ✅
Sabtu : LIBUR
Mau daftar?
Ketik: DAFTAR [NAMA DOKTER] [TANGGAL]Pendaftaran Online:
📝 PENDAFTARAN ONLINE
Mau berobat ke poli apa?
Dengan dokter siapa?
Tanggal kapan?
Format:
DAFTAR
Poli: [Umum/Gigi/Anak/dll]
Dokter: [Nama Dokter / Siapa saja]
Tanggal: [Tanggal]
--
Nama Pasien: [Nama Lengkap]
No. RM: [Jika sudah pernah berobat]
NIK: [Jika pasien baru]
Tgl Lahir: [DD/MM/YYYY]
No HP: [No HP]
Atau ketik FORM untuk dibantu step-by-step.Konfirmasi Pendaftaran:
✅ PENDAFTARAN BERHASIL!
No. Registrasi: REG-20260217-001
📋 Detail Kunjungan:
━━━━━━━━━━━━━━━━━━━━
Nama: [NAMA PASIEN]
No. RM: 12345
Tanggal: Senin, 17 Feb 2026
🏥 Poli: Umum
👨⚕️ Dokter: dr. Budi Santoso, Sp.PD
⏰ Jam: 08:00 - 12:00
🔢 No. Antrian: 5
📍 Alamat Klinik:
Jl. Sehat No. 123, Jakarta
⚠️ PENTING:
- Datang 15 menit sebelum jadwal
- Bawa KTP/kartu identitas
- Bawa kartu BPJS (jika pakai)
- Gunakan masker
Ketik BATAL untuk cancel.Reminder Appointment:
⏰ REMINDER KUNJUNGAN
Hai [NAMA]!
Jangan lupa jadwal berobat BESOK:
📅 Senin, 17 Feb 2026
⏰ 08:00 - 12:00 WIB
👨⚕️ dr. Budi Santoso, Sp.PD
🏥 Klinik [NAMA]
No. Antrian: 5
Akan hadir?
- Ketik HADIR untuk konfirmasi
- Ketik RESCHEDULE untuk ubah jadwal
- Ketik BATAL untuk cancel
Terima kasih! 🙏Template Messages - Apotek
Greeting Apotek:
💊 APOTEK [NAMA]
Selamat datang!
Layanan kami:
1️⃣ Cek Ketersediaan Obat
2️⃣ Order Obat (Tanpa Resep)
3️⃣ Tebus Resep Dokter
4️⃣ Konsultasi Apoteker
5️⃣ Delivery Obat
6️⃣ Jam Buka & Lokasi
Ketik angka untuk pilih!
⚠️ Darurat? Hubungi IGD terdekatCek Ketersediaan:
🔍 CEK KETERSEDIAAN OBAT
Ketik nama obat yang dicari:
Contoh:
- "Paracetamol"
- "Amoxicillin 500mg"
- "Vitamin C 1000"
Atau ketik kategori:
- DEMAM - Obat demam
- BATUK - Obat batuk
- VITAMIN - Suplemen
- MAAG - Obat lambungHasil Pencarian:
🔍 HASIL PENCARIAN: Paracetamol
Ditemukan 3 produk:
1️⃣ Paracetamol 500mg (10 tab)
💰 Rp 5.000
📦 Stok: ✅ Ready
2️⃣ Panadol Extra (10 tab)
💰 Rp 15.000
📦 Stok: ✅ Ready
3️⃣ Sanmol Sirup 60ml
💰 Rp 18.000
📦 Stok: ✅ Ready
Mau order?
Ketik: ORDER [NOMOR] [JUMLAH]
Contoh: ORDER 1 2Tebus Resep:
📋 TEBUS RESEP DOKTER
Untuk tebus resep, kirim:
1. Foto resep dokter (jelas, lengkap)
2. Nama pasien
3. Alamat delivery / ambil sendiri
⚠️ Syarat:
- Resep masih berlaku (< 3 hari)
- Foto resep jelas terbaca
- Ada tanda tangan & stempel dokter
Kirim foto resep sekarang!Konfirmasi Resep:
✅ RESEP DITERIMA
Resep atas nama: [NAMA PASIEN]
Dari: dr. [NAMA DOKTER]
Obat yang diresepkan:
━━━━━━━━━━━━━━━━━━━━
- Amoxicillin 500mg (3x1) - 15 kapsul
Rp 45.000
- Paracetamol 500mg (3x1) - 10 tablet
Rp 5.000
- Omeprazole 20mg (1x1) - 10 kapsul
Rp 35.000
━━━━━━━━━━━━━━━━━━━━
Total: Rp 85.000
Ongkir: Rp 10.000
━━━━━━━━━━━━━━━━━━━━
TOTAL: Rp 95.000
Konfirmasi order?
- Ketik OK untuk lanjut
- Ketik AMBIL jika mau ambil sendiriReminder Minum Obat:
💊 REMINDER MINUM OBAT
Hai [NAMA]!
Waktunya minum obat:
⏰ 08:00 (Setelah makan)
━━━━━━━━━━━━━━━━━━━━
- Amoxicillin 500mg (1 kapsul)
- Paracetamol 500mg (1 tablet)
- Omeprazole 20mg (1 kapsul)
━━━━━━━━━━━━━━━━━━━━
Sudah minum?
- Ketik SUDAH
- Ketik SKIP + alasan (jika tidak bisa)
Semoga lekas sembuh! 🙏Implementation
Doctor Schedule System:
javascript
const doctorSchedules = {
'dr_budi': {
name: 'dr. Budi Santoso, Sp.PD',
poli: 'umum',
schedule: {
monday: { start: '08:00', end: '12:00', slots: 20 },
tuesday: { start: '08:00', end: '12:00', slots: 20 },
wednesday: null, // OFF
thursday: { start: '14:00', end: '18:00', slots: 20 },
friday: { start: '08:00', end: '12:00', slots: 20 },
saturday: { start: '08:00', end: '11:00', slots: 15 }
}
}
};
async function getAvailableSlots(doctorId, date) {
const doctor = doctorSchedules[doctorId];
const dayName = getDayName(date).toLowerCase();
const daySchedule = doctor.schedule[dayName];
if (!daySchedule) {
return { available: false, reason: 'Dokter libur' };
}
const bookings = await db.appointments.count({
doctorId,
date,
status: 'confirmed'
});
const remaining = daySchedule.slots - bookings;
return {
available: remaining > 0,
remaining,
schedule: daySchedule
};
}Medicine Inventory:
javascript
async function searchMedicine(query) {
const results = await db.medicines.find({
$or: [
{ name: { $regex: query, $options: 'i' } },
{ genericName: { $regex: query, $options: 'i' } },
{ category: { $regex: query, $options: 'i' } }
],
stock: { $gt: 0 }
}).limit(10);
return results.map(med => ({
id: med._id,
name: med.name,
price: med.price,
stock: med.stock > 10 ? 'Ready' : `Sisa ${med.stock}`,
requiresPrescription: med.requiresPrescription,
dosage: med.dosage
}));
}Prescription Validation:
javascript
async function validatePrescription(imageUrl) {
// OCR or manual review
const prescription = {
doctorName: 'dr. Andi',
patientName: 'Budi',
date: '2026-02-15',
medicines: [
{ name: 'Amoxicillin 500mg', qty: 15, dosage: '3x1' }
],
isValid: true
};
// Check validity (< 3 days)
const prescriptionDate = new Date(prescription.date);
const daysSince = (Date.now() - prescriptionDate) / (1000 * 60 * 60 * 24);
if (daysSince > 3) {
return { valid: false, reason: 'Resep sudah expired (> 3 hari)' };
}
return { valid: true, prescription };
}Privacy & Compliance
⚠️ PENTING - DATA KESEHATAN:
- Semua data pasien RAHASIA
- Tidak dibagikan ke pihak ketiga
- Sesuai UU Kesehatan & HIPAA-equivalent
- Pasien bisa request hapus data
- Enkripsi untuk data sensitif
Untuk hasil lab/rekam medis:
- Verifikasi identitas wajib
- OTP atau password
- Tidak dikirim tanpa permintaanBest Practices
DO ✅
- Fast response (kesehatan = urgent)
- Clear disclaimer (bukan pengganti dokter)
- Easy emergency contact
- Reminder appointment
- Privacy & data protection
- Validasi resep ketatDON'T ❌
- Diagnosa via chatbot
- Kirim data tanpa verifikasi
- Resep tanpa validasi
- Ignore emergency keywords
- Simpan data sembaranganFAQ
Apakah legal konsultasi via WA?
Ya, untuk konsultasi umum. Untuk diagnosa dan resep, tetap butuh tatap muka atau telemedicine resmi.
Bagaimana handle emergency?
Auto-detect keywords (darurat, emergency, sesak nafas) dan langsung redirect ke nomor emergency.
Perlu verifikasi untuk hasil lab?
Wajib! OTP atau password. Data kesehatan sangat sensitif.
Kesimpulan
Healthcare + Chatbot = Better Access!
| Tradisional | Dengan Chatbot |
|---|---|
| Telepon/antri daftar | Daftar online |
| Tidak tau antrian | Real-time queue |
| Lupa minum obat | Auto reminder |
| Harus ke apotek | Delivery available |
Improve patient experience with automation!