Skip to main content
Zoho is where the office works. Every customer, account, lead, property and piece of equipment is typed or converted there, and the engine keeps a copy of every mirrored module in Supabase; the list is on Sync rules by module. Which side wins for each kind of record is on Who is the source of truth.

What Zoho tells us

Zoho sends the engine a notification for every create, edit and delete in a watched module. Each notification carries the module, the operation and the record’s id, nothing else; the engine reads the record back from Zoho and applies it. The engine has no say in how long Zoho holds a notification before sending it. How the trip works, and why it never loops, is on How sync works.

What Zoho owns

Zoho does not hold quotes, stock lists, tasks, notes or app users. Those live only in Supabase; see Names.

Fields Zoho has that we do not carry

A mirrored module may declare a short list of fields the engine ignores on purpose. The lead’s list holds the name halves a computed full name already covers, the record-lock block, the coordinates the imagery step writes itself, and Zoho’s own activity and conversion stamps. A weekly check compares Zoho’s field list with the mirror. A module with an ignore list fails the check the moment a field appears that is neither carried nor ignored; a module without one is reported, not failed. The check runs from the repository on GitHub and reads Zoho’s field metadata only, never a record.