Projects

New Installs & Customer Migration over WhatsApp

Production WhatsAppGPONOCRProvisioning

Technicians activate new customers and migrate existing ones from a WhatsApp group: OCR on photos, PPPoE secret, ONU provisioning and ACS tag in one flow.

Problem

A new install needed several people: the technician sent photos, an admin typed the customer in, NOC created the PPPoE secret, registered the ONU on the OLT and tagged it in the ACS. Wrong serials and ports were common and nobody knew which step a job was stuck on. Moving customers to a new OLT or router had the same problem, and finished migrations stayed "open" forever.

My role

Designed the flows and the message wording, set the safety rules, reviewed the code, and handled field issues with technicians during rollout.

Scale

  • Hundreds of installs and migrations through the bot
  • 2 OLT vendors provisioned automatically
  • 500+ open migrations checked on every reconcile run

What I built

  • Technicians post #psb with the ID card photo and the ONU label photo in a dedicated group; the bot answers with one short status per step.
  • OCR (PaddleOCR, Tesseract fallback) reads the ONU serial and ID card; a document check refuses drafts with missing or unreadable photos and says exactly what to resend.
  • The app creates the PPPoE secret on MikroTik, provisions the ONU on ZTE C300 or Huawei MA5608T, and tags the device in GenieACS.
  • When the OLT is busy with another job, the draft is parked and resumed automatically instead of failing silently.
  • Dedicated queue workers for installs, migrations and OCR with their own time limits, so a slow OCR call cannot block an install.
  • Migration flow (#migrasi) moves a customer to a new OLT or router and removes the old ONU only when it is safe.
  • Auto reconciliation marks a migration done when the ONU and PPPoE are both online on the target (database-only, never touches devices); unclear cases go to "needs admin check".
  • A "Mark done" button for admins, with an evidence dialog and a required reason, for cases automation cannot prove.

Architecture

  1. Field

    • Technician (WhatsApp group)
  2. Intake

    • WhatsApp gateway
    • OCR service
  3. App

    • PSB / migration workers
    • Admin panel
  4. Network

    • MikroTik (PPPoE)
    • OLT (ZTE / Huawei)
    • GenieACS (TR-069)
Status replies go back to the same group; admins can retry or mark a job done with a reason.

Outcome

  • An install no longer needs an admin to retype data; the technician gets a clear next step in the chat.
  • Fewer wrong serials and ports, because they are read from the device photo and checked against the OLT.
  • OLT contention became "parked and resumed" instead of a silent stall.
  • Migrations that are really finished close automatically, with evidence stored.
  • Every deploy proves the install and migration WhatsApp paths still work before it is called done.

Screenshots

Demo / test data only. Real customer data never leaves production.

Stack

Laravel queuesEvolution APIPaddleOCRTesseractRouterOS APIZTE C300 CLIHuawei MA5608T CLIGenieACS NBIMySQLRedis

Next project

Outage Detection & Root-Cause Hints