← Back to journal

A Boarding House Does Not Need a Super App. It Needs a Billing Workflow That Lives in WhatsApp.

A practical guide to automating boarding house inquiries, room availability, tenant billing, QRIS payment links, reminders, and owner escalation through WhatsApp.

The admin work is small until it becomes constant

A boarding house rarely breaks because of one difficult task. It breaks because of repeated small tasks: answering room prices, explaining facilities, checking vacancies, sending payment reminders, confirming transfers, and remembering who is overdue.

That is exactly the kind of workflow a chat-based agent can absorb if the backend is structured correctly.

Do not build a super app first

Prospective tenants do not want to install an app just to ask for room availability. Existing tenants do not want a portal just to check their invoice. WhatsApp is already the behavior. The system should meet users there.

The mistake is treating WhatsApp as the whole system. It is only the interface. The real product is the database, billing logic, payment status, reminder scheduler, and escalation flow behind it.

Boarding house WhatsApp billing workflow architecture.
Boarding house billing workflow: lead intake, property database, invoice service, QRIS payment, receipt, and escalation.

Separate leads from tenants

Leads ask about price, facilities, location, availability, and survey schedule. Tenants ask about invoices, payment status, payment method, due date, and extensions. Mixing both into one generic bot creates confusion.

A serious workflow identifies the sender, decides whether they are a lead or tenant, loads the correct state, and routes to the right module.

type ConversationRoute =
  | { type: 'lead_inquiry'; fields: ['roomType', 'budget', 'surveyDate'] }
  | { type: 'tenant_billing'; tenantId: string; invoiceId?: string }
  | { type: 'owner_escalation'; reason: string }

Room inventory should be queryable, not manually remembered

The agent should not tell a lead “we may have rooms” because the admin remembers something. It should query room inventory: room type, price, occupancy status, promo, deposit requirement, and survey availability.

A simple room table is enough for the MVP. The point is not enterprise complexity. The point is avoiding manual answers that drift from reality.

Billing is a state machine

Monthly billing should have states: draft, issued, sent, pending payment, paid, overdue, disputed, waived. Once those states exist, reminders become predictable and owner escalation becomes controlled.

H-3 reminder, due-date reminder, H+1 overdue reminder, H+5 owner escalation. That cadence can remove a lot of manual admin work.

const reminderPlan = [
  { offsetDays: -3, template: 'gentle_due_soon' },
  { offsetDays: 0, template: 'invoice_due_today' },
  { offsetDays: 1, template: 'overdue_followup' },
  { offsetDays: 5, template: 'owner_escalation' }
]

QRIS closes the loop

Manual transfer confirmation is where admin time disappears. A better flow generates the invoice, sends a QRIS or payment link, receives a gateway callback, marks the invoice paid, and sends a receipt automatically.

The owner should see exceptions: failed payment, mismatch amount, overdue tenant, disputed charge. Routine payments should not require manual attention.

async function sendMonthlyInvoice(tenantId) {
  const invoice = await invoices.createForTenant(tenantId)
  const payment = await qris.createPayment({
    amount: invoice.amount,
    reference: invoice.id
  })

  await whatsapp.send(tenant.phone, formatInvoice(invoice, payment.qrUrl))
}

Escalation is part of the product

The agent should not approve discounts, extend payment deadlines, or handle sensitive complaints alone. It should summarize the case and notify the owner or staff member.

Good automation handles routine work and protects judgment-heavy work. The handoff should include tenant identity, room, invoice status, request summary, and recommended next action.

The MVP that actually ships

Start with lead FAQ, room inventory, tenant database, invoice generation, QRIS/payment link, payment callback, reminder scheduler, and escalation. Add dashboard and multi-property support only after the first property workflow is reliable.

A boarding house does not need a super app. It needs fewer forgotten follow-ups, fewer manual payment confirmations, and a cleaner operating rhythm.