Work project
CRM Snapshots
Zoho CRM modules in PostgreSQL, ready to analyze
A service that bulk-copies Zoho CRM modules into PostgreSQL so they can be analyzed with SQL outside the CRM, and logs every run.

What it is about
To analyze the CRM with SQL, the service exports each module with Zoho's Bulk Read API and loads it into PostgreSQL. Each run empties the module's table and fills it again, so the database always holds the latest copy.
It started in 2025 as one script per module and in 2026 became a FastAPI service with authentication and metrics.
What it does
- Uses Zoho's Bulk Read API to request each module's export, wait for the ZIP file, unpack it and load the CSV into PostgreSQL.
- Covers the modules an institution's analysis needs, among them leads, deals, contacts, campaigns, notes and users.
- Every run lands in a log table with the module, the date, the client and its status.
- The current version is a FastAPI API with key authentication and Prometheus metrics, deployed in Docker.
How it works
From the CRM to PostgreSQL
Data flows from Zoho to the service and from the service to PostgreSQL.
Zoho CRM
- Bulk Read API per module
- ZIP exports with CSV
Service
- FastAPI API
- Key authentication
- Prometheus metrics
PostgreSQL
- One table per module
- A record of every run
- Queries and dashboards
Decisions and their costs
Bulk exports instead of queries
The regular API makes you page through a module record by record.
One record per run
Without a record, knowing how fresh each copy is means reading the logs.
Stack
Pick a technology to see the projects that use it.




