Cube Yogi
Cube Yogi
Leader in AI, Drone, Robotics & Digitization
Jains Connect Bridge App | Case Study | CubeYogi
Case Studies

Jains Connect now reads and writes Zoho CRM through one secure bridge.

CubeYogi built a custom middleware API for Jain Irrigation Systems. It lets the Jains Connect app get, create, update and search CRM records, with role-based access and a request log, while Zoho credentials stay on the server.

The Bridge API connecting the Jains Connect app to Zoho CRM An illustration of a suspension bridge over a river. A phone labelled Jains Connect sits on the left bank and a database labelled Zoho CRM on the right bank. Small glowing packets cross the bridge in both directions. Jains Connect mobile app Zoho CRM v8 Leads, notes, files, users Bridge API Node.js + Express
21
endpoints across Leads, Notes, Attachments and Users
2
token tiers: user (24 hours) and admin (15 minutes)
500
team emails can be fetched in a single batch lead call
20 MB
per file when uploading attachments to a record

A global irrigation company with a CRM its teams need on the move.

Jain Irrigation Systems Ltd. is an Indian multinational based in Jalgaon, Maharashtra, best known for micro-irrigation and its "more crop per drop" philosophy.

Jains Connect is the app through which Jains works with its Zoho CRM. It needed a dependable, controlled way to reach CRM data, so CubeYogi built the layer in between.

Client
Jain Irrigation Systems Ltd.
Headquarters
Jalgaon, Maharashtra, India
Website
jains.com
CRM
Zoho CRM v8 (India data centre)
Delivered
Jains Connect Bridge App (REST API, v1.1)
Drip-irrigated crop rows
Illustration: drip-irrigated crop rows.

The app needed the CRM, but the CRM could not be handed to the app.

Secure access without shared keys

Putting Zoho OAuth credentials inside a mobile app is a risk. Jains needed every call to be authenticated against a real CRM user, with no CRM secrets on the device.

Different people, different powers

Most users should create, read and update. Only admins should delete leads, remove files or manage users. The rule had to be enforced by the server, not trusted to the app.

Zoho's raw API is not app-friendly

Lookup IDs, module names and v8 response shapes add work for every screen. The app needed plain requests such as "leads for this user" or "assign this lead to john@…".

The whole lead, not just a row

Teams work with notes, attached files, history and search on the same record. All of it had to be reachable from the app through one consistent interface.

Not a thin proxy. A bridge that understands Jains' data and roles.

One login, role decided by Zoho

A single call checks the user's email in the Jains_User module and issues a token matching their role. No separate user database to keep in sync.

Short-lived admin tokens

Admin and Super Admin tokens expire in 15 minutes and use a separate signing secret. Admin-only routes re-check the role as a second line of defence.

Emails instead of IDs

Assign a lead or set a reporting manager by email. The API resolves it to the right Zoho lookup record behind the scenes.

Three ways to fetch leads

By lead ID, for one Jains user, or for a batch of 2 to 500 users at once with results grouped by email and invalid addresses reported back.

Zoho-grade search

Criteria search with equals, contains, starts_with, between, and/or and more, so the app can filter by city, status, source or date range without new backend work.

Clear, consistent errors

Missing fields, wrong IDs, unknown users and Zoho faults come back with readable messages and standard 400, 401, 404 and 500 codes.

One bridge between the app and Zoho CRM v8.

The Jains Connect app only ever talks to the Bridge API. The bridge authenticates, enforces roles, calls Zoho on the app's behalf and logs what happened.

Architecture of the Jains Connect Bridge AppThe Jains Connect app sends HTTPS requests with a bearer token to the Bridge API. The Bridge API contains authentication, routes, role guards and an activity log. It calls Zoho CRM v8 over server-side OAuth.Jains ConnectMobile appHolds only ashort-lived tokenHTTPS + JSONBearer JWTZoho API v8server-side OAuthBridge APINode.js + ExpressAuthenticationRoutesRole guardsActivity logAPI key check, role lookup, JWT issueLeads, Notes, Attachments, UsersUser and admin endpoints kept apartZoho CRM v8India data centreLeadsJains_UserNotes and Attachments
  1. Log in once

    The app sends the system API key and the user's email to /auth/login.

  2. Check the role

    The bridge looks the user up in Zoho and reads their User_Role.

  3. Receive a token

    Normal users get a 24-hour token. Admins get a 15-minute admin token.

  4. Call an endpoint

    Each request carries only the bearer token. No keys travel again.

  5. Zoho does the work

    The bridge calls Zoho v8 and returns clean JSON or a streamed file.

  6. Activity is logged

    Requests are recorded, with logs kept in Zoho CRM for the last 7 days.

Every endpoint, grouped by what the team does with it.

13 endpoints are open to every signed-in user. 8 are reserved for admins. An admin token works on all of them.

GET/getLeads

Fetch by lead ID, for one Jains user, or for 2 to 500 users in one batch.

User
POST/createLead

Create a lead, optionally assigned to a user by email.

User
PUT/updateLead/:id

Update any field, including status, email and assignee.

User
GET/searchByCriteria

Zoho criteria search with and/or, up to 10 conditions.

User
GET/leadTimeline/:id

Full activity history for a lead, with old and new field values.

User
GET/leadCount

Total number of leads in the CRM.

User
GET/deletedLeads

Leads currently in the CRM recycle bin, with who deleted them and when.

User
DELETE/deleteLeads?ids=

Bulk delete up to 100 leads in one call.

Admin

What the app can do now.

Jains Connect works with live CRM data through a single interface, and each person gets exactly the access their role allows.

Everyone works from live CRM data

Leads, notes, files and history are read and written in Zoho CRM itself, so there is no second copy of the data to reconcile.

Access matches the role

Normal users get a 24-hour token for everyday work. Delete and user-management actions need a short-lived admin token and a second role check.

Managers see whole teams at once

The batch lead call returns leads for up to 500 users in one response, grouped by email, with any invalid addresses listed.

Mistakes can be traced and recovered

Lead timelines show who changed what, the recycle bin list shows what was deleted and when, and requests are logged for the last 7 days.

New screens need little backend work

Search by city, status, source or date range already works through a single criteria endpoint, so the app can add filters without a new release of the bridge.