The architecture
Zoho CRM / Desk / Books / Creator
│ (Zoho APIs · bulk read · incremental by modified_time)
▼
Landing / raw layer ────────── Non-Zoho sources
(append-only, source fidelity) (ERP, RTA feeds, payment gateway,
│ spreadsheets, third-party APIs)
▼
Staging / conformed layer
(typed, deduplicated, standardised)
│
▼
Identity resolution ← the hard part
│
▼
Core model (Snowflake)
customer · account · household · interaction ·
transaction · ticket · invoice
│
├──► Metric layer (one definition per measure, versioned)
│ └──► Dashboards / governed BI
│
└──► Retrieval layer for agents
(governed views + document index,
permissions and citation metadata attached)Ingestion: what to know about Zoho APIs
Identity resolution: where the project actually lives
This is 60% of the effort and 90% of the value. The same customer exists as a CRM contact, a Desk requester, a Books customer, and probably three duplicates.
- Deterministic matching first: exact matches on strong identifiers (GSTIN, PAN where lawfully held, registered email, normalised phone)
- Then probabilistic: normalised name plus address plus fuzzy matching, with a scoring threshold
- Then a human queue for the middle band. Do not auto-merge uncertain matches; a wrongly merged customer is far more damaging than an unmerged duplicate
- Persist the survivorship rules, which source wins per field, and version them
- Keep a stable surrogate key that survives re-processing, or every downstream join breaks
The metric layer
One definition per measure, in code, versioned. “Revenue”, “active customer” and “open ticket” each need exactly one definition, and the reason to enforce it isn’t tidiness. It’s that once an AI agent starts answering questions, ambiguity becomes confident misinformation.
The retrieval layer for agents
The part most warehouse builds omit, and the reason “the AI made something up” happens.
Snowflake or Databricks for this?
For a Zoho-centric estate that’s mostly SQL analytics plus an agent retrieval layer, Snowflake is usually simpler and sufficient. Choose Databricks when ML training, streaming or heavy transformation is central. Both are partnerships of ours; the answer follows your workload.
Do you even need this?
Often not yet. If your reporting is entirely within Zoho and volumes are moderate, Zoho Analytics handles it and this architecture is premature. You need a warehouse when you’re combining Zoho with other sources, retaining history beyond operational needs, or building agent retrieval at scale. We’d rather tell you to wait than sell you a platform you’ll under-use.