🔹 FLOW BOT (berdasarkan code kau)
1. Update masuk dari Telegram
-
Bot terima JSON dari
php://input. -
Extract:
-
chat_id -
firstname -
text -
(juga handle kalau update datang dari
callback_query).
-
2. Handle Special Case
-
User baru join group
-
Bot hantar mesej welcome dalam group.
-
Bot juga cuba hantar DM private welcome.
-
-
Lead Capture Check
-
Panggil
handleLeadCapture()(daripadalead-capture.php). -
Kalau match keyword dari Sheet tab Redirect, terus masuk flow lead capture.
-
3. Session Handler
-
Session user disimpan dalam
sessions.json. -
Ada check:
-
active / not active -
last_activity -
mode→exactataucontains -
Timeout → 5 minit (kalau lebih, sesi auto tamat).
-
4. Commands
-
/start-
Kalau ada param → terus treat param tu sebagai keyword.
-
Kalau tiada param → bagi menu default (butang "Cek Kekosongan").
-
-
/end-
Tamatkan sesi user.
-
-
/stat-
Hantar statistik: total chat, private, group.
-
-
/notifythem(admin only)-
Masuk mode broadcast → mesej seterusnya akan dihantar kepada semua user.
-
-
/endgroupall-
Clear semua sesi group dari
sessions.json.
-
5. Greeting / Activate
-
Kalau user taip keyword tertentu:
-
mula, husna, /husna→ mode exact (jawapan direct ikut keyword penuh). -
hai, salam, hello, carian, /carian→ mode contains (lebih fleksibel, keyword mengandungi perkataan).
-
6. Search Flow (processSearch)
-
Ambil data dari Google Sheet (tab default
Sheet1). -
Normalise keywords.
-
Bandingkan dengan input user:
-
Kalau match → kumpul semua row.
-
Kalau tak match → reply fallback “tak ada jawapan, sila ke menu/live admin”.
-
-
Kalau match:
-
Gantikan
{firstname}dalam mesej reply. -
Kalau row ada gambar (col 5) → hantar photo message.
-
Kalau ada butang (col 3 & 4) → buat inline keyboard.
-
Kalau banyak result → tambah butang
Ke Menu.
-
7. Lead Capture Flow (handleLeadCapture)
-
Step 0: Keyword trigger → bot tanya nak confirm → user perlu
/start. -
Step 1: Bot minta nama.
-
Step 2: Bot minta nombor WhatsApp → validate format.
-
Step 3:
-
Simpan ke Google Sheet tab Leads (nama, phone, prefix).
-
Hantar mesej “thank you” custom dari sheet Redirect.
-
Notify admin dengan mesej + link wasap follow-up.
-
Reset sesi lead capture.
-
8. Callback Query Handling
-
Kalau callback dari group:
-
Kalau bukan admin → suruh user buka DM.
-
Tukar channel ke private DM.
-
Pastikan session aktif.
-
-
Kalau callback dalam DM:
-
Cuba handle lead capture dulu.
-
Kalau bukan → fallback ke search.
-
9. Admin Features
-
Hanya user ID dalam array
isAdmin()yang dapat akses:-
/notifythem(broadcast ke semua user). -
/endgroupall.
-
🔹 Ringkas (High-Level Journey)
-
User masuk / start → Bot greet / bagi menu.
-
User tanya keyword → Bot cari dalam Sheet → reply + button/gambar.
-
Kalau trigger lead → Masuk flow capture data (nama, phone).
-
Data lead → Save ke Sheet → Notify admin.
-
Admin boleh broadcast / clear session bila perlu.
-
Sesi auto tamat kalau idle > 5 minit.