Visualize your data with a new set of charts: Treemap, Butterfly, Sankey, and Cluster charts in Zoho CRM

Visualize your data with a new set of charts: Treemap, Butterfly, Sankey, and Cluster charts in Zoho CRM

Dear customers,

When it comes to analytics, it's not just about the numbers; it's about understanding the story behind them. 

With that philosophy in mind, we’re excited to introduce a line of representations to the existing array of chart types in Zoho CRM: Treemap, butterfly, sankey and cluster charts. Let's go!

Treemaps

Treemap charts are used to visually represent hierarchical datasets in a rectangular layout. It aligns its parent categories as larger tiles with their sub-categories nested within them. The size of each tile is proportional to its corresponding value, making it easy to compare different segments within the hierarchy.

This is how a treemap chart looks:


These structured data representations help you understand overall performance and contributions, as well as compare participating entities at a glance.
 
Unlike traditional bar charts or pie charts, treemaps can be used if your datasets are large and exhibit parent-child relationships.
 
Here are some examples to better understand their usage:
 

Comparing revenue distribution between functions

A company's revenue is distributed among its functions before it gets further disbursed to its employees. Treemap charts can be used to depict this distribution and compare it between functions. As you can see below, the hierarchy can be represented as a treemap to compare it directly with other functions:


The hierarchy at the top shows just the numbers and levels, but the treemap chart represents the numbers proportionally, allowing leaders to visualize the difference in distribution.
 
Interpretation: As you can easily see in the treemap, sales and marketing receive the same amount of revenue, while engineering is given significantly more than the other two.

Likewise, with treemap charts, you can:
  • Compare popular lead sources with lead counts is the measure and lead source being the participating entity—a classic single-grouping configuration.
  • View cost savings achieved across departments. With the departments as the grouping parameters and the cost saved as the measured amount, the chart lays out all the departments as tiles in proportion, based on money saved.
  • Compare ad spends across channels, where channels are the parent grouping and ad spend is the measured unit.

Butterfly

Butterfly charts are used to compare two related datasets side-by-side, resulting in a representation that looks like a butterfly or tornado.
 
Now, how does it differ from bar charts?
 
The standard bar chart can compare two entities for a given measure. Say, you are comparing the performance of Mary and Charles. The two users' data is represented using bars, and the length will denote their performances. But, when it comes to comparing their performances over a period or their contribution across different stages, a bar chart is not sufficient.
 
A butterfly chart, though, will let you visually compare Mary and Charles' contributions directly and compare their own metrics across duration or other attributes.

With butterfly charts, you can:
  • Compare revenue between two of your branches each month. With branches being compared for sum of sales revenue, grouped by closing date.
  • Compare the performance of two reps in a given quarter. Compared between two users for average of amount of deals, grouped by closing date until today.

In addition to the user-based comparison above, butterfly charts are well-suited to visualizing other types of data comparisons, like:
  • Picklist-based comparisons
  • Duration-based comparisons
  • Aggregate-based comparisons

Business scenario


Comparing the number of deals closed for each lead sources: Duration-based comparison

You can identify the productive lead source by comparing the number of deal closures for every lead source in your organization based on their closing week.


Analyzing effective sales methodology, inbound vs. outbound: Picklist-based comparison


Businesses use both inbound and outbound lead generation strategies, and each of these methods can reap different results based on the season and occasion. By comparing inbound versus outbound each month, you can identify which works best at what time.

Analyze the amount versus the expected revenue between accounts: Aggregate-based comparison


Expected revenue is a result of a deal's progression in the sales pipeline. Comparing the amount versus their expected revenue will not only help visualize the expected revenue of participating accounts but also indicate the accounts' stage in the sales pipeline.


Sankey

A Sankey Chart is designed to visualize the movement of data across different data groups. Unlike traditional charts—such as bar, column, pie, or donut—that mainly provide a static distribution of values, the Sankey Chart focuses on illustrating the flow between multiple segments or grouping fields. This makes it an ideal choice when you want to track how values (like lead counts, revenue, or deal statuses) move from one category to the next.

Info
Key features
  • Flow visualization: With the Sankey Chart, you can observe the movement of data between different groups.
  • Multiple grouping fields: This chart works best when you have at least two grouping fields. You can go even further and add a third grouping to see an even more detailed mapping of your data flow.
  • Simple configuration: The configuration for the Sankey Chart is as simple as any other chart type in Analytics. 
Business scenarios:

Imagine you’re a sales manager trying to get a better handle on your team’s performance and your company’s pipeline. You want to understand not just how many deals are coming in, but also which sources are contributing the most value—and how those deals are progressing through different sales stages.
Let’s say you want to understand which lead sources are driving the most deal activity and how those deals progress through the pipeline. You can create a Sankey chart that maps the count of deals from Lead Source to Stage.

Let’s say you want to understand which lead sources are driving the most deal activity and how those deals progress through the pipeline. You can create a Sankey chart that maps the count of deals from Lead Source to Stage.



After analyzing the chart, you might notice that Online Store brings in a high volume of early-stage deals, while sources like External Referral contribute fewer deals that are more likely to reach advanced stages like Proposal or Negotiation.

This insight helps you prioritize nurturing the most profitable channels.

Sankey charts can also be helpful in other operational scenarios where understanding transitions across stages or teams is essential:
  • Regional revenue distribution: Visualize how revenue flows across different regions, product categories, and their corresponding annual revenue. This helps you compare which regions contribute the most to each product line and where your high-value segments lie.
  • Ticket handling flow: Visualize the flow of support tickets from their origin channel to internal departments and finally to resolution statuses. This can reveal workload imbalances or common points of delay in your support process.

Cluster  

A cluster chart is similar to stacked column charts, but instead of stacking horizontally, the data is represented as vertical bars. As you create a column chart with multiple groupings, you can change the type of column chart to a cluster chart to achieve this representation.
 
In the above image, you can see the stacked column chart compares the number of lead conversions based on popular sources between countries. The stacks appearing on top of existing stacks ask you to calibrate the record count (y-axis) based on the previous stacks, which can lead to inaccurate interpretations. In this case, a cluster representation will paint a clearer picture of the analyses.

Other minor enhancements:

In addition to the three charts we mentioned above, we've also made the following minor changes:
  • Display total summary: Thus far, for all charts, each participating measure included labels. Now, to better understand overall contributions, a check box to display the total summary is provided under More options on the Chart Configuration page. Based on the configuration, the total revenue or the rolled-up quantities will be prominently displayed.


  • Merge Y-axis: For charts that use two y-axis measurements, the intention is to view the progression of one entity against these two measures. Despite the scale, if the y-axis on the left is disproportionate to the values of the y-axis on the right, the plotted graph will result in a graphically and logically incorrect representation.

    As you can see in the image below, the plot area of the sum of amount bar and the sum of expected revenue aligns close together, while, the difference between $700,000 and $40,500 is drastic, creating inaccurate interpretations.

    In this enhancement, we're allowing neighboring values of measures to merge so that the interpretation can be more visually accurate.

  • Clone components to a different dashboard: Dashboards in Analytics serve in unique ways for various audiences—there can be separate dashboards for the sales team, marketing team, engineering team, and so on, and the chances of using the same measure for reference is common. Thus, when you clone a chart, you can now determine the target dashboard in which the cloned chart can be placed.

That's about treemap, butterfly, Sankey, and Cluster charts in Zoho CRM. With Waterfall chart following suit, we will open these charts for all customers gradually. For now, these are open for customers in the US DC. 

Resource: Help document

Thanks and have a good one!

Kind regards,
Saranya Balasubramanian




        • Recent Topics

        • workflow not working in subform

          I have the following code in a subform which works perfectly when i use the form alone but when i use the form as a subform within another main form it does not work. I have read something about using row but i just cant seem to figure out what to change
        • Fetch data from another table into a form field

          I have spent the day trying to work this out so i thought i would use the forum for the first time. I have two forms in the same application and when a user selects a customer name from a drop down field and would like the customer number field in the
        • Record comment filter

          Hi - I have a calendar app that we use to track tasks. I have the calendar view set up so that the logged in user only sees the record if they are assigned to the task. BUT there are instances when someone is @ mentioned in the record when they are not
        • How to View Part Inventory and Warehouse Location When Creating a Work Order in Zoho FSM

          Hi everyone, We’re currently setting up Zoho FSM and would like to improve how our team selects parts when creating a Work Order. Right now, when we add a part or item to a Work Order, we can select it from our Zoho Inventory list but we don’t see any
        • FSM too slow today !!

          Anybody else with problem today to loading FSM (WO, AP etc.)?
        • Not able to Sign In in Zoho OneAuth in Windows 10

          I recently reset my Windows 10 system, after the reset when I downloaded the OAuth app and tried to Sign In It threw an error at me. Error: Token Fetch Error. Message: Object Reference not set to an instance of an object I have attached the screenshot
        • Mapping a custom preferred date field in the estimate with the native field in the workorder

          Hi Zoho, I created a field in the estimate : "Preferred Date 1", to give the ability to my support agent to add a preferred date while viewing the client's estimate. However, in the conversion mapping (Estimate to Workorder), I'm unable to map my custom
        • The sending IP (136.143.188.15) is listed on spamrl.com as a source of spam.

          Hi, it just two day when i am using zoho mail for my business domain, today i was sending email and found that message "The sending IP (136.143.188.15) is listed on https://spamrl.com as a source of spam" I hope to know how this will affect the delivery
        • Delegates - Access to approved reports

          We realized that delegates do not have access to reports after they are approved. Many users ask questions of their delegates about past expense reports and the delegates can't see this information. Please allow delegates see all expense report activity,
        • Split functionality - Admins need ability to do this

          Admins should be able to split an expense at any point of the process prior to approval. The split is very helpful for our account coding, but to have to go back to a user and ask them to split an invoice that they simply want paid is a bit of an in
        • Is there a way to request a password?

          We add customers info into the vaults and I wanted to see if we could do some sort of "file request" like how dropbox offers with files. It would be awesome if a customer could go to a link and input a "title, username, password, url" all securely and it then shows up in our team vault or something. Not sure if that is safe, but it's the best I can think of to be semi scalable and obviously better than sending emails. I am open to another idea, just thought this would be a great feature.  Thanks,
        • Single Task Report

          I'd like a report or a way to print to PDF the task detail page. I'd like at least the Task Information section but I'd also like to see the Activity Stream, Status Timeline and Comments. I'd like to export the record and save it as a PDF. I'd like the
        • Auto-response for closed tickets

          Hi, We sometimes have users that (presumably) search their email inbox for the last correspondence with us and just hit reply - even if it's a 6 month old ticket... - this then re-opens the 6 month old ticket because of the ticket number in the email's subject. Yes, it's easy to 'Split as new Ticket', but I'd like something automated to respond to the user saying "this ticket has already been resolved and closed, please submit a new ticket". What's the best way to achieve this? Thanks, Ed
        • How to Push Zoho Desk time logged to Zoho Projects?

          I am on the last leg of my journey of finally automating time tracking, payments, and invoicing for my minutes based contact center company - I just have one final step to solve - I need time logged in zoho desk to add time a project which is associated
        • Cannot access KB within Help Center

          Im working with my boss to customize our knowledge base, but for some reason I can see the KB tab, and see the KB categories, but I cannot access the articles within the KB. We have been troubleshooting for weeks, and we have all permissions set up, customers
        • Export to excel stored amounts as text instead of numbers or accounting

          Good Afternoon, We have a quarterly billing report that we generate from our Requests. It exports to excel. However if we need to add a formula (something as simple as a sum of the column), it doesn't read the dollar amounts because the export stores
        • why my account is private?

          when i post on zohodesk see only agent only
        • Getting ZOHO Invoice certified in Portugal?

          Hello, We are ZOHO partners in Portugal and here, all the invoice software has to be certified by the government and ZOHO Invoice still isn´t certified. Any plans? Btw, we can help on this process, since we have a client that knows how to get the software certified. Thank you.
        • 500 Internal Server Error

          I have been trying to create my first app in Creator, but have been getting the 500: Internal Server Error. When I used the Create New Application link, it gave me the error after naming the application. After logging out, and back in, the application that I created was in the list, but when I try to open it to start creating my app, it gives me the 500: Internal Server Error. Please help! Also, I tried making my named app public, but I even get the error when trying to do that.
        • Client Script | Update - Client Script Support For Portals

          Dear All! We are excited to announce the highly anticipated feature: Client Script support for Portals. We understand that many of you have been eagerly awaiting this enhancement, and we are pleased to inform you that this support is now live for all
        • Professional Plan not activated after payment

          I purchased the Professional Plan for 11 users (Subscription ID: RPEU2000980748325) on 12 September 2025, and the payment has been successfully processed. However, even after more than 24 hours, my CRM account still shows “Upgrade” and behaves like a
        • how to edit the converted lead records?

          so I can fetch the converted leads records using API (COQL), using this endpoint https://www.zohoapis.com/crm/v5/coql and using COQL filter Converted__s=true for some reasons I need to change the value from a field in a converted lead record. When I try
        • Auto Update Event Field Value on Create/Edit

          Hi there, I know this question has been posted multiple times and I've been trying many of the proposed similar scripts for a while now but nothing seems to work... what might I do wrong? The error I receive is this: Value given for the variable 'meetingId'
        • Pre-orders at Zoho Commerce

          We plan to have regular producs that are avaliable for purchase now and we plan to have products that will be avaliable in 2-4 weeks. How we can take the pre-orders for these products? We need to take the money for the product now, but the delivery will
        • Constant color of a legend value

          It would be nice if we can set a constant color/pattern to a value when creating a chart. We would often use the same value in different graph options and I always have to copy the color that we've set to a certain value from a previous graph to make
        • Zoho Pagesense really this slow??? 5s delay...

          I put the pagesense on my website (hosted by webflow and fast) and it caused a 5s delay to load. do other people face similar delays?
        • Payroll and BAS ( Australian tax report format )

          Hello , I am evaluating Zoho Books and I find the interface very intuitive and straight forward. My company is currently using Quickbooks Premier the Australian version. Before we can consider moving the service we would need to have the following addressed : 1.Payroll 2.BAS ( business activity statement ) for tax purposes 3.Some form of local backup and possible export of data to a widely accepted format. Regards Codrin Mitin
        • Problem with Email an invoice with multiple attachments using API

          I have an invoice with 3 attachments. When I send an email manually using the UI, everything works correctly. I receive an email with three attachments. The problem occurs when I try to initiate sending an email using the API. The email comes with only
        • Page Layouts for Standard Modules like CRM

          For standard modules like quotes, invoices, purchase orders, etc, it would be a great feature to be able to create custom page layouts with custom fields in Zoho Books similar to how you can in Zoho CRM. For example, and my current use case, I have a
        • Non-depreciating fixed asset

          Hi! There are non-depreciable fixed assets (e.g. land). It would be very useful to be able to create a new type of fixed asset (within the fixed assets module) with a ‘No depreciation’ depreciation method. There is always the option of recording land
        • Fixed asset management

          I want to know if there is any individual module for fixed assets management
        • One time sale item in billing automatically detects as service

          if i have some items which i don't want to add in my "item" list because its sold only for one time. but when i type item name in invoice, it (system) automatically takes it as a service and despite of HSN , it shows SAC code to be entered. if its selectable i.e. either item or service , it would be very helpful and a must have feature.
        • Project template after project creation

          How can I apply a project template AFTER the project has been created?
        • convert the project to templet

          i have some deployment ME product for different customer , i need to create a fixed template for use it rather then keeping creating this template every time
        • Seriously - Create multiple contacts for leads, (With Company as lead) Zoho CRM

          In Zoho CRM, considering a comapny as a lead, you need us to allow addition of more than one contact. Currently the Lead Section is missing "Add contact" feature which is available in "Accounts". When you know that a particular lead can have multiple
        • Related Module in Sharing Rules

          Zoho CRM team recently added the feature to filter records by Related Records It will be really beneficial if we can have this feature for Sharing Rules as well
        • Assignment Thresholds Resetting After Lead Conversion

          Hello everyone, We're facing an issue with Zoho CRM's lead assignment thresholds that makes them unsuitable for our workflow. I'm hoping to find a potential workaround or solution from the community. Here’s our current process: A new lead is created automatically
        • Zoho CRM Analytics - Allow To Reorder Dashboards

          I would like to suggest that you add the ability to reorder dashboards in the Analytics Module. I can see that this has been requested some time ago, the latest 9 years ago. I am not sure if this is a big or small endeavor, but such a small fix can go
        • Territory view for custom modules?

          I have recently activated territories however I can't seem to find how to use territories for custom modules? These modules have territories:  Contacts /  Accounts / Opportunities These modules don't have territories:   Buildings (custom module) and 
        • Zoho Books - How to Invoke a Custom Function in Schedulers

          We have multiple schedulers that send emails to customers in batches. Currently, we are maintaining the same code across several schedulers. Is it possible to use a custom function inside a scheduler script? If yes, how can we invoke the custom function
        • Next Page