Follow-up — Automated re-engagement
Purpose
HUPH's follow-up system sends automated WhatsApp messages to prospects who stop responding at critical points in the admission funnel — e.g. inquired but didn't register, or registered but didn't pay. This page is for marketing staff and counselors who configure follow-up rules and monitor the send queue.
Note: the canonical Bahasa Indonesia version of this page at follow-up.id.md is the source of truth and currently more complete (332 lines covering rules CRUD, queue monitoring, AI highlight generation, weekend blackout, opt-out handling, and templates). This English mirror is a summary; the full English translation is a Pass 2 follow-up.
How follow-up works
Every hour (08:00–17:00 WIB, Monday–Friday) the
followUpEngine cron runs three phases:
- Enqueue — find idle conversations, match against active rules, check lead score (HOT leads skipped — counselor handles; COLD leads capped at 2 follow-ups), confirm no pending follow-up exists, insert into queue
- Send — process the queue: load lead data (name, program),
send via WhatsApp template (
360dialog), mark statussent - Expire — clean up old entries: messages older than 72h
without a reply →
expired; messages with a reply →replied(kept, not expired)
Where in admin
/follow-up— three tabs:- Queue — pending + sent + expired with filters
- Rules — CRUD for follow-up rules (trigger, delay, message template, lead-score gating)
- Stats — KPIs (queue size, send success rate, reply rate)
Critical safeguards
- Weekend blackout — never send Saturday/Sunday
- Opt-out — if user replies STOP / BERHENTI, conversation is permanently excluded from the queue
- Score-aware gating — HOT skip (counselor handles), COLD max 2x re-engagements
- Dedup — unique constraint on (conversation, rule, idempotency window) prevents double-send across cron retries
- AI highlight — Claude Haiku auto-generates a context-aware
one-line summary per lead, threaded into the message template via
the
highlightparameter
Configuration
All knobs are admin-managed via the /follow-up/rules UI. No code
deploy needed for rule changes — the cache TTL is 60s.
See also
- Follow-up (Bahasa Indonesia, full) — the authoritative version for now
- Lead scoring & assignment — how scores gate enqueue
- Escalation — when bot hands off to a human