Zoho CRM is fast out of the box. When it starts to feel slow, the cause is almost always one of two things: the network path between your office and Zoho, or automation your account has added over time that runs every time someone saves a record. Both are fixable, and Zoho gives you the tools to tell which one you're dealing with.
This is the diagnosis we run first on every Zoho rescue engagement, and most of it you can do yourself in an afternoon.
First, figure out which kind of slow you have
"The CRM is slow" can mean several different things. Before changing anything, pin down what is slow, for whom, and when.
| What you notice | Most likely cause | Where to look |
|---|---|---|
| Every page is slow, for everyone in the office | Network route to Zoho | zohostatus.com, then a traceroute |
| Only one person is slow | That person's browser, extensions, or connection | A private window with extensions off |
| Slow at the same time every day | ISP congestion, or a scheduled job in your account | Your scheduled functions and integrations |
| Pages open fine, but saving a record hangs | Automation running on save | Workflow Usage report and function logs |
Integrations stall or fail with TOO_MANY_REQUESTS |
Integrations sharing the same API limit | The integration's error log |
The fourth row is the one we see most. It's also the most encouraging, because everything that causes it lives inside your own account and is under your control.
When everything is slow: check the network first
Start at zohostatus.com, where Zoho publishes the live status of every service. If everything there is green, the CRM itself is running normally and the delay is somewhere between you and Zoho.
Zoho publishes a slowness troubleshooting guide for its partners, and the steps work for anyone:
- Write down whether all pages are slow or only some, and which actions.
- Note the time of day and whether it repeats.
- Find your ISP and public IP address.
- Run a traceroute to your Zoho domain (crm.zoho.com in the US) and to
js.zohocdn.com, which serves the CRM's scripts. - Run
nslookupon the same domains. - If you're behind a corporate firewall or proxy, confirm the Zoho domains are allowed.
That gives your IT person or ISP exactly what they need. A traceroute that stalls at a particular hop shows where the delay is.
It also helps to know which data center your account lives in. Zoho runs regional data centers (zoho.com in the US, zoho.eu in Europe, and others). If your team works far from the one your account uses, that distance adds a little to every request.
If only one person is slow, have them open the CRM in a private window with extensions disabled. If that fixes it, the cause is on their machine.
When saving a record is slow, look at your automation
This is the case people misread. Records open quickly, but clicking Save takes five, ten, or twenty seconds. Zoho's servers are fine. Your account is doing the work you've asked it to do on every save, and some of that work can usually be trimmed or moved.
Zoho documents exactly what runs when a record is saved, and in what order:
- Assignment rules
- Review process
- Scoring rules
- Workflow rules
- Approval process
- Blueprint
- Scoring rules again
- CommandCenter
Inside each workflow rule, field updates run first. Then tags, email notifications, and tasks. Then webhooks, custom functions, and other actions run in parallel.
That transparency matters, because it means you can trace a slow save step by step. Two things are worth knowing as you do. A field update can trigger another workflow in the same module, and that one can trigger another, so one save can run more rules than anyone expects. And Zoho's limits are generous: Enterprise allows 125 workflow rules per module with 75 active, according to the feature list. That room is what lets teams automate so much, and it also means an account can accumulate a lot of automation before anyone notices.
Custom functions are where the seconds go
Workflow rules on their own run quickly. When a save is slow, the time usually goes into custom functions, especially ones that call other systems or loop through related records.
Zoho publishes the run-time limits for functions by how they're triggered:
| Triggered from | Time limit |
|---|---|
| Workflow, Blueprint, or approval | 30 seconds |
| Button, related list, validation rule, or REST API | 10 seconds |
| Schedule | 15 minutes |
A function attached to a workflow can hold up the save for as long as it runs. Here is a pattern we find in a lot of inherited accounts: a workflow on the Accounts module that copies a field down to every related deal whenever the account is edited.
//
// RUNS ON EVERY ACCOUNT EDIT: PUSH THE ACCOUNT TIER DOWN TO ALL RELATED DEALS
//
accountMp = zoho.crm.getRecordById("Accounts",accountIdInt);
tierStr = ifnull(accountMp.getJSON("Account_Tier"),"");
dealsLst = zoho.crm.getRelatedRecords("Deals","Accounts",accountIdInt,1,200);
for each deal in dealsLst
{
// ONE API CALL PER DEAL, ALL INSIDE THE 30 SECOND WINDOW
updateMp = Map();
updateMp.put("Account_Tier",tierStr);
updateResp = zoho.crm.updateRecord("Deals",deal.getJSON("id"),updateMp);
}
With three deals this is instant. With 150 deals it makes 152 calls every time anyone edits the account, including when they only fixed a typo in the phone number. Each of those calls also uses an API credit, because Zoho counts Deluge integration tasks the same as the equivalent API call.
Zoho gives you good options for fixing it:
- Set the workflow to fire only when the field that matters changes, not on every edit.
- If the work doesn't need to happen while the user waits, move it to a scheduled function, which gets 15 minutes instead of 30 seconds.
- Ask whether the copy is needed at all. A lookup field or a report often answers the same question without moving any data.
Integrations share one pool of API calls
Every integration connected to your CRM, from your accounting sync to your marketing tool to your own scripts, draws on the same API limits. Zoho caps how many calls each connected app can have running at once, and the cap grows with your edition:
| Edition | Concurrent API calls |
|---|---|
| Free | 5 |
| Standard / Starter | 10 |
| Professional | 15 |
| Enterprise / Zoho One | 20 |
| Ultimate / CRM Plus | 25 |
Heavier calls, such as searches from a function, bulk updates of more than 10 records, and lead conversions, have a separate cap of 10 on every edition. If an integration goes over, Zoho returns a TOO_MANY_REQUESTS error and the integration has to retry. There's no per-minute limit, so this only shows up when a tool sends a big burst at once. Spreading those bursts out fixes it.
Daily credits work on a rolling 24 hours. Enterprise and Zoho One start at 50,000 plus 1,000 per user license. If you're running out, something is calling far more often than it needs to, and the function loop above is a common reason.
How to see what's actually running
You don't have to guess. Zoho CRM has two built-in reports that show what fires and what fails.
The Workflow Usage report is in Setup > Automation > Workflow Rules: open a rule and choose View Usage. It shows how many records triggered the rule, met its conditions, and ran each action, for a range of up to 7 days. Sort your busiest modules' rules by volume and you'll usually find one or two doing most of the work. Zoho documents it here.
Function logs are in Setup > Developer Hub > Functions. Open any function and you'll see Logs, Failures, and Analytics tabs. The Failures tab lists each failed run with a reason and lets you rerun it, one at a time or in bulk. A function that times out or fails often is a strong lead. Analytics can take up to 15 minutes to update, according to Zoho's documentation.
Then test the theory. In a sandbox, deactivate the rules you suspect and time a save before and after. If the save drops from twelve seconds to one, you've found it.
What we usually change
Once we know where the time goes, the fixes tend to fall into a short list:
- Narrow workflow triggers so they fire on the field that matters, not on every edit.
- Merge rules that overlap. Accounts that have been through a few admins often have several rules doing the same job.
- Break chains where a field update triggers another workflow that triggers another.
- Move external calls and bulk updates off the save and onto a schedule.
- Batch API calls inside functions instead of making one call per record.
- Give integrations their own sync windows so they don't all send bursts at once.
All of this happens inside Zoho CRM, with tools it already includes. In most accounts we look at, the platform was never the problem. The configuration grew without anyone owning it, and a cleanup usually brings the speed back.
When to bring someone in
If the network checks out and you can see which rules and functions are heavy, many teams can fix this themselves. It gets harder when nobody knows why a rule exists, the functions were written by a partner who's gone, or the CRM is wired into several other systems that would break if you changed the wrong thing.
That's the work our Zoho rescue engagements are built for: we map what runs on save, find what's slow, and fix it without breaking what depends on it. If you're setting Zoho CRM up from scratch and want it to stay fast, see our Zoho CRM implementation work and how we run projects. Or tell us what you're seeing.