EDIT: Posted this 3 weeks ago accidentally in the ZOHO One forum, zero replies there so posting it here in hopes of someone at ZOHO either explaining how this is intentional, or letting me know it's added to a bug tracker to fix (or maybe even just document it).
Well that was a fun couple hours. We have 60-100 ongoing projects at any one time and Project Status is a critical way for us to tell where things are at in our pipeline. I hopped on Projects to get current status for a customer, and saw several statuses - with multiple projects - that I did not recognize.
I won't go through all the stuff we did to figure out how to get Project Statuses back correctly and eventually figure out the bug, but here's the problem.
There are two "scopes" of Project Status in ZOHO Projects:
- Global
- Layout-Specific
Didn't know that? Me neither. Because there is no way to know - within any given layout - what kind of custom Status value you're working on. What does this mean?
We have a default layout for most of our projects - call it Layout A. We have another type of project that deserved its own layout because it requires different fields, a different status, etc. So, we created Layout B as a clone of Layout A. Then, they started modifying the statuses and values in Layout B to make them what they want. What none of us realized until too late was that ALL EXISTING PROJECTS based on Layout A received the status changes from Layout B!!!!
Why? Because apparently when you create a new Layout as a clone of an existing, you're automatically getting "Global" scope statuses. So, any changes you make in your new layout get applied to ALL OTHER LAYOUTS using those Globally-scoped statuses. How do you tell where those are? You can't. Just make updates (status name or color) and then go searching for projects that look changed.
If you manually add statuses to a Layout, you can select from a dropdown that pops up (now it's a Global status) or free-type it in (now it's a Local status) but, again, once it's in there's no way to tell.
Fortunately I stumbled onto it only a few minutes after Layout B had been modified. Had I not, the 5 man-hours we just wasted would have been far more.
I can understand a use case for both types of statuses, but to have them just hidden behind the scenes with no way to tell which is which is catastrophic.
Steps to Reproduce:
- Create a new layout, call it LayoutA
- Add a Custom Status to LayoutA called Hold
- Create another layout LayoutB by cloning LayoutA
- Edit the Status in LayoutB from "Hold" to "Holding", Apply and Save
- Open LayoutA to see that it no longer has a status "Hold" as it's also been updated to "Holding"
- Add another status to LayoutA called "Wait", Apply and Save
- Open LayoutB, add a Status, type "w" and select "Wait" from the dropdown that pops up, Apply and Save
- In LayoutB, update the status "Wait" to "Waiting", Apply and Save
- Open LayoutA to see that "Wait" is no longer a status, it's now "Waiting"