• 12Branches across 2 nurseries
  • 1,640Students
  • 217Classes
  • 1Zoho licence for every user
01

The problem

Two nurseries with twelve branches run on Zoho CRM. Branch staff needed class lists, pickup details and quick edits, without every one of them needing their own Zoho licence.

A full daily sync of the CRM would not scale, and the portal had to stay usable even when the connection to Zoho was not.

02

What I built

  • Scoped access

    Super admin and branch manager roles. Managers see only their own branches and classes.

  • Edit, then save to Zoho

    Changes are made in the portal and written to Zoho only on an explicit save.

  • Live / Offline toggle

    Per-class local copies, synced per branch or class when needed.

  • Printable class lists

    The daily paperwork comes straight out of the portal.

  • Admin without code

    Accounts, coverage, templates, Zoho connection, field permissions, field order and branding.

  • Health panel

    A "needs a look" view and a saved-changes log, so sync problems are seen early.

03

Key decisions

  1. Decision 1
    Zoho stays the master

    The portal never becomes a second database of record; it is a faster window onto Zoho.

  2. Decision 2
    Offline-first

    Sync on demand per class instead of pulling the whole CRM every night, which would not scale and would tie the portal to a third party's uptime.

  3. Decision 3
    Explicit save

    Edits reach Zoho only when someone saves them, so nothing half-finished is written to the CRM.

  4. Decision 4
    Show unsynced data loudly

    Records with unsynced changes stay visible and flagged instead of being folded away.

04

Where it stands

The portal is live and holds 12 branches, 1,640 students and 217 classes across two nurseries (October 2026). One Zoho licence serves every user.

It is early in its rollout: the system is built to serve all twelve branches, and onboarding branch managers is under way. The ceiling is Zoho's API credits, which is exactly why sync is on demand.

05

Stack

Pickup portal on Zoho CRM

App
Standalone PHP and MySQL
CRM
Zoho CRM API (source of truth)
Access
Roles and branch / class scoping
Modes
Live and offline, per-class local copies
My role
Design and development
06

More case studies