01

What I build on Zoho

  • Form-to-lead pipelines

    Contact, quote and booking forms that create or update Zoho records with validated, mapped fields instead of a raw email.

  • Portals on top of Zoho

    Standalone PHP apps where Zoho stays the source of truth, with roles, scoped access and printable views for your staff.

  • Sync that scales

    Per-branch or per-record sync and local working copies, so you are not pulling the whole CRM every night.

  • Admin, not code

    Field permissions, field order, templates and connection settings in an admin screen, so changes don't need a developer.

  • Visible failures

    Change logs and a "needs a look" health panel. When a record fails to sync, someone sees it the same day.

02

How I build it

  1. Step 1
    Map who owns what

    Which fields live in Zoho, which in the website, and which direction each one flows. Most sync bugs are ownership bugs.

  2. Step 2
    Connect securely

    A Zoho API client with OAuth 2.0. Tokens stay on the server and refresh on their own; nothing secret reaches the browser.

  3. Step 3
    Build the flow

    Validation, field mapping, duplicate checks and retries. The API call is the easy part; the edge cases are the job.

  4. Step 4
    Make failures visible

    Logs, a sync status per record and a health view, so a failed write is a notice, not a lost customer.

  5. Step 5
    Hand over

    Admin settings for the things that change, plus a recorded video guide for your team.

03

In production

Client names are redacted to protect their systems. The work and the numbers are real.

  • Live · Standalone PHP on Zoho CRM

    Pickup portal for a nursery group

    A PHP and MySQL application on the Zoho CRM API, with Zoho as the source of truth. Built to serve 12 branches across two nurseries: 1,640 students in 217 classes (October 2026). Branch managers see only their own branches and classes, edit, and explicitly save back to Zoho.

    It works offline-first: each class can keep a local copy and sync on demand, because a full daily sync of the CRM would not scale. One Zoho licence serves every user.

    • Zoho CRM API
    • PHP
    • MySQL
    • Offline mode
    • Role-based access

    Read the case study →

  • Teaching

    Zoho CRM Advanced Topics

    A 10-video series on my YouTube channel, alongside a Vtiger CRM series. I explain this work for a living, too.

04

Technical notes

Zoho CRM · integration sheet

API
Zoho CRM REST API from PHP (cURL or the WordPress HTTP API)
Auth
OAuth 2.0, server-side token storage and refresh
Platforms
WordPress and WooCommerce sites, or standalone PHP and MySQL apps
Data rules
One owner per field, explicit save or scheduled sync, duplicate checks before insert
Limits
Designed around Zoho API credits: fewer, smarter calls instead of full re-syncs
05

Quick answers

Web-to-lead form or API integration?

Zoho's own web forms are fine for a simple contact form. An API integration is worth it when you need validation, custom field mapping, duplicate checks, updates to existing records, or data flowing back to the website.

Can you connect an existing WordPress site?

Yes. The integration is a small plugin or a few hooks on your current forms; your theme and content stay as they are.

What happens if Zoho is unreachable or a write fails?

The failure is logged with the data that was sent, and it shows up in a status view instead of disappearing. Calls are kept to a minimum so you stay well inside your API credits.

Do you build apps that run on Zoho data?

Yes. The pickup portal above is one: a separate PHP application where Zoho stays the master record and staff work in a simpler, faster screen.

06

Related