How well do you know your customers? Whether you operate in a B2B or B2C space, chances are that 80% of your business comes from just 20% of your customers (Pareto's Principle). According to a study by
Forbes, acquiring new customers costs five times more than retaining the existing ones. Identifying high-value customers is crucial to increase revenue and building brand loyalty.
Customer Segmentation is a critical strategy for businesses to understand and engage with customers effectively. Understanding the behavioral patterns of customers can help personalize the purchases they make and cater to their needs better.
Questions like who are the customers who contribute more to sales, who are the customers about to churn, will help digital marketers understand the behavioral patterns of their customers.
While there are many criteria based on which the customer base can be segmented, this solution focuses on segmenting customers based on the RFM analysis.
What is RFM Analysis?
RFM analysis (Recency, Frequency and Monetary) is a method used to identify and segment existing customers based on their purchasing behavior. The key metrics of RFM analysis include
Recency
Recency refers to how recently a customer has made their purchase and this is the most important metric of the other metrics. This metric is a strong indicator of customer loyalty and interest.
Frequency
Frequency refers to how often a customer makes purchases or interacts with a business within a specific period. It measures the level of engagement and loyalty of a customer.
Monetary
Monetary value refers to the total amount of money a customer has spent with a business during a specific period.

Industry-Specific Applications of RFM Analysis
- SaaS and subscription services: RFM analysis can be adapted for SaaS and subscription services to segment users based on engagement, renewals, and revenue contribution.
- Financial Sector: RFM analysis can improve credit scoring and risk assessment by evaluating customer transaction patterns, helping financial institutions make more informed loan approval decisions.
Data Requirements
For RFM analysis, you'll need a transactional dataset with the following equivalent columns (details)
- A product (Product ID)
- A related transaction (Transaction ID)
- Number of products purchased in a transaction (Product Quantity)
- The product purchase price (Product Price)
- Transaction date (Date)
- Customer who made the purchase (Customer ID, Customer Name)
We have used a sample table of e-commerce data for illustration.
Steps for Implementing RFM analysis
1. Gather and Prepare Transaction Data :
Gather all transaction data, ensuring it includes customer identifiers, transaction dates, and monetary amounts, and address missing or inconsistent values, ensuring data integrity before analysis.
2. Compute RFM Metrics:
To segment customers based on their behavior, we compute three key metrics: Recency (R), Frequency (F), and Monetary Value (M). Below are SQL queries for each, along with detailed explanations.
Recency (R)
Recency measures how recently a customer made a purchase. It is calculated as the number of days since their last transaction. Customers with recent purchases are more engaged, while those who haven’t bought in a long time may be at risk of churn.
The time frame for RFM analysis should be tailored to your business model and industry. Choosing the right period for RFM analysis is essential, as it directly influences the accuracy of customer segmentation and the quality of insights derived.
Frequency (F)
Frequency tracks how often a customer makes purchases within a specific period. A higher frequency indicates a loyal customer who regularly shops, while a lower frequency suggests occasional or one-time buyers.
Monetary Value (M)
The total amount spent by the customer in the same period
RFM Query Table
SELECT
"Customer ID",
"Customer Name",
DAYS_BETWEEN(MAX("Transaction Date"), CURRENT_DATE()) AS "Recency",
COUNT ("Order ID") AS "Frequency",
SUM("Transaction Amount") AS "Monetary Value"
FROM "Customer Data"
GROUP BY "Customer ID",
"Customer Name"
ORDER BY "Recency" ASC,
"Frequency" DESC,
"Monetary Value" DESC
|
3. Segment Customers using Cluster Analysis
Manual scoring can skew the results and may not be practical for handling large volumes of data. In contrast, using machine learning algorithms like cluster analysis ensures unbiased, efficient, and data-driven segmentation. Unlike traditional scoring methods such as the quantile or percentile-based approach, cluster analysis recognizes inherent relationships and patterns in the data. With
cluster analysis, business can obtain accurate segmentation and devise targeted strategies to improve sales and customer retention.
Follow the below steps to apply cluster analysis,
- Click the Create New icon and choose New chart from the drop-down menu.
- Add the columns to the chart shelf as shown below,
- X-axis: Customer Name
- Y-axis: Monetary Value with Sum function.
- Click Generate Graph and change the chart type to bar chart.

- Click the Analysis icon and select Cluster Analysis > Add Clusters.
- The Model is chosen automatically based on the columns dropped in the shelves.
- By default, the columns dropped in the shelves (Monetary Value) are selected as factors. Click the drop-down icon to include Recency and Frequency columns as factors.

- The number of clusters is determined automatically but can be adjusted based on business needs and specific customer segmentation goals to ensure optimal categorization.
- Choose the Normalization method to prevent values of high ranges from dominating the results. For instance, Recency (measured in days) and Monetary Value (measured in currency) have different scales, and normalization ensures a balanced contribution from each metric.
- Click Apply.

4. Export Clusters Data
Once the customer profiles have been segmented using cluster analysis, Export the Current view in the preferred table format to build more data visualizations to understand the clusters.
Build an RFM Analysis Dashboard
The RFM analysis dashboard provides a comprehensive view of customer behavior. Let's look at the steps involved in building this dashboard.
1. Import the Clusters Data
Import the downloaded clusters table back into Zoho Analytics using the files option as given below.
- Click the New icon on the side navigation panel and choose New Table/ Import Data.
- Select files and choose the Clusters Table to import and click Next.
- A data preview will be displayed; verify the data types of columns and click Create.
2. Create Reports to Understand the Characteristics of the Clusters
While the data is clustered, understanding the characteristics of each cluster is what enables businesses to take strategic actions. This includes identifying which customers need targeted marketing, personalized engagement, or retention efforts. Recognizing patterns within clusters provides insights into customer behavior, which is essential for optimizing marketing campaigns, improving retention strategies, and enhancing customer experience.
The below reports help understand the distribution of customers across different monetary value, recency and frequency segments within each cluster.
Clusters vs Monetary Value
- Access the cluster table (imported data) and click the new icon > chart view.
- Drag and drop the columns as given below:
- X-axis - Clusters
- Y-axis - Monetary Value with the Count function.
- Color - Monetary Value with the Actual Range function.

Analyzing the chart, we can infer that,
- Cluster 1 consists of a diverse group of customers spanning all spending levels.
- Cluster 2 includes moderate to high spenders who contribute significantly to revenue.
- Cluster 3 comprises low to mid-range spenders, often occasional buyers.
- Cluster 4 represents high-value customers with premium spending habits.
- Cluster 5 consists primarily of low spenders with minimal purchasing activity.
You can similarly create reports to know about the distribution of customers for the Recency and Frequency metrics.
The below table lists the characteristics of clusters
Cluster
|
Cluster Classification
|
Recency
|
Frequency
|
Monetary
|
Recommended actions
|
Cluster 1
|
Needs Attention
|
100 to 150 days
|
Low to Moderate
|
Diverse spending
|
Re-engagement campaigns, discounts, or reminders to encourage repeat purchases.
|
Cluster 2
|
Loyalist
|
0-50 (Highly Active)
|
High
|
Consistent moderate-to-high spenders
|
Loyalty programs, exclusive deals, early access to new products to maintain engagement.
|
Cluster 3
|
Potential Loyalist
|
0-50 (Active)
|
Low to Moderate |
Budget-conscious, occasional buyers |
Cross-selling, personalized recommendations, and value-based promotions. |
Cluster 4
|
Champions
|
100-150 (Inactive)
|
Moderate to High (Frequent buyers)
|
High spenders
|
VIP experiences, personalized services, and premium offers to retain and enhance their spending.
|
Cluster 5
|
Hibernating
|
Mostly inactive or infrequent
|
Low
|
Minimal spending
|
Win-back campaigns, incentives, special discounts, and targeted ads to regain interest.
|
Based on the above table, you can give specific labels to the clusters using the
bucket columns option.
RFM Dashboard
Limitations & Considerations of RFM Analysis
While RFM analysis is a powerful customer segmentation tool, businesses should be aware of certain limitations and factors that can influence results:
- Data Freshness and Relevance: RFM analysis relies on transactional data, making the freshness and relevance of this data crucial for accurate customer segmentation. Setting up automated data imports ensures real-time updates, reducing the risk of working with stale data.
- Seasonal Variations: Customer purchasing behavior often fluctuates due to seasonal trends, holidays, and industry-specific cycles, which can impact RFM scores and lead to misleading segmentation if not accounted for properly. Instead of analyzing only recent months, compare customer behavior for the same period in previous years to detect true engagement patterns.
Recent Topics
Diff signature for compose new email and replies
Hi, How do i have different signature for replies and new emails. its inconvenient to have one large signature for replies. Usually on Outlook we have the option to keep separate signatures for new emails and for replies.
Zoho Website Site Speed Up & Setting
We are experiencing slow loading speeds on our Zoho website and would like assistance in optimizing its performance. Kindly review the site and suggest or implement necessary improvements to enhance speed, especially related to: > Caching mechanisms >
Clickjacking: Zoho Vault's Response
Issue: Password manager browser extensions are found to be vulnerable to clickjacking security vulnerabilities that could allow attackers to steal account credentials, TFA codes, and card details under certain conditions. Reported by: Marek Toth, Independent
No option for pick up in Zoho Books / Inventory but yes on commerce
Is it planned to release soon on books/inventory?
Accessing Zoho form enteries via API
Hi As a user I can view enteries to a form at: https://forms.zoho.com/<myOrganisation>/report/<myReportName>/records/web How do I access these entries via API? I don't have any problem with scope and getting tokens. But I have no idea what the API call
Blueprint Issue - Being able to set a subform field as mandatory
I'm creating a blueprint. My record involves a subform which is only shown once field is set but the field gets set in step two of the process. My problem - I can't save the record as the subform field is set to mandatory - If I unset the mandatory field,
Blueprint - Mandatory file upload field
Hi, File upload (as we as image upload) field cannot be set as mandatory during a blueprint transition. Is there a workaround? Setting attachments as mandatory doesn't solve this need as we have no control over which attachments are added, nor can we
Zoho Books - Include Quote Status in Workflow Field Triggers
Hi Zoho Books team, I recently tried to create a Workflow rule based on when a Quote is Accepted by the customer. This is something which I thought would be very easy to do, however I discovered that Status is not listed as a field which can be monitored
Zoho Books - Show Related Sales Orders on Quotes
Hi Books team, I've noticed that the Quotes don't show show the related Sales Order. My feature request is to also show related Sales Orders above the Quote so it's easy to follow the thread of records in the sales and fulfilment process. Below screenshot
Add VAT/Tax line to bank adjustments
When categorising transactions and matching bank feeds with transactions such as customer payments, we use the "Add Adjustment" to add things like fees/bank fees. It would be useful to choose a VAT/Tax rate here. Whilst there is a bank charges option when adding a payment, this goes into the default bank charges account. We use the adjustments so that we can choose the account and separate our fees. We use different card providers and Worldpay charges VAT so we are stuck. We cannot integrate with
New Menu Layout Feedback
I'd really like to see the banking item back on the top of the menu. I'm sure part of it is just because that's what I'm accustomed to. However, for a bookkeeping program, I think there's a logic to having banking be on top. Not a giant issue, but something
How to use Rollup Summary in a Formula Field?
I created a Rollup Summary (Decimal) field in my module, and it shows values correctly. When I try to reference it in a Formula Field (e.g. ${Deals.Partners_Requested} - ${Deals.Partners_Paid}), I get the error that the field can’t be found. Is it possible
Form Accessibility
Hi, is there an update on the accessibility standard of Zoho forms? Are the forms WCAG 2.1 AA compliant?
Cannot schedule report delivery
The only 'send option' available when exporting reports is 'immediately' The option to schedule the report is missing.
adding attachment in sendmail script where attachment is in a CRM field
Hi all, I have a custom field of type 'File Upload' in one of my modules in my CRM. I want to include the file in that field as an attachment to an email - which is done from a button on the 'Results' module. I have created a script and a button to initiate an email from that module. The Deluge scripting window has allowed me to add arguments for all the fields I need to use except for the one file upload type field. My script currently looks like the below (content of the email omitted). As you
[Free Webinar] Learning Table Series - AI-Enhanced Insurance Claim Management in Zoho Creator
Hello Everyone! We’re excited to invite you to another edition of Learning Table Series, where we showcase how Zoho Creator empowers industries with innovative and automated solutions. Struggling with lengthy claim processes, a lack of visibility into
Not sure how to use credits to my account
Hi I have a $50 credit to my account. I'm just wondering how I can apply that to either a current invoice or to try a new service. Any advice would be great, thanks. Kind Regards Chris
Control who sees Timeline and Interactions in Zoho CRM through Profiles
The feature has been enabled for all DCs (except US, EU, and IN DCs). We will be rolling it out to the other DCs in the upcoming days. Dear All, In a CRM, not all users would require access to the history of a record. For instance, a Marketing Operations
Zoho Desk Integration - Add the option to send the estimate from the Zoho Desk Ticket Integration
Hi, Currently in the Zoho Desk integration, the user is able to create an estimate from a ticket, once the estimate is created the user can see the estimate under the ticket (see screenshot below), but is not able to send that estimate from Zoho Desk.
Utilisation de Zoho en conformité avec l’article 286 du Code général des impôts (CGI)
Cher(e) client(e), Conformément à l’article 286 du Code général des impôts (CGI) impose aux entreprises assujetties à la TVA d’utiliser des systèmes de caisse ou de gestion commerciale certifiés lorsqu’elles enregistrent des ventes à des particuliers.
CRM Validation Rules Support Only Single Condition
Simply put, CRM validation rules support only a single condition for each field on "All Records". You also cannot specify additional validation rules on the same field because it has already been used in an existing validation rule. The ONLY solution
Unapproved Leaves are hard to distinguish in Attendance View
This is a an unapproved leave request It appears in the Attendance view without any visual indicator if its approved or not For a whole day request this might be manageable but for hourly requests it gets very hard to know which are approved, which are
Performance Appraisal Probation Period
Hello All, Is there any possible way to create an appraisal cycle for new staff members, at the end of probation period? Many thanks!
Zoho Creatorの一括操作における処理の同期/非同期について
現在、Creatorのレポート機能を利用して、複数のレコードに対して一括で処理を実行しようとしていますが、処理の実行順序について確認したいことがあります。 レポート内の複数レコードに一括で処理を実行した際、処理は同期的に行われるのでしょうか?それとも非同期的に行われるのでしょうか? 【同期処理の場合】 レコード①に対する処理が開始され、終了後にレコード②に対する処理が開始され、最後にレコード③に対する処理が実行されるように、処理が順番に行われる場合。 【非同期処理の場合】 レコード①、レコード②、レコード③の処理が一斉に開始され、それぞれ並行して処理が行われ、全処理が終了する場合。
Mail Delivery Failed
Good morning, I have just set up an account with 5 users, however each time a message is sent to 1 user a m'mail delivery failed' message is generated. See below. Any ideas Thanks Rob This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: robb@thesmartgroup.ae mailbox is full: retry timeout exceeded ------ This is a copy of the message,
Delete commerce website
I need to delete a commerce website, but the only option is to click on settings, REQUEST DELETE, choose an urgency notice, add a message....AND THEN nothing, no way to send the request. Why is nothing simple!?!?! I just want to delete the store. The
Adding external users to Zoho Social under Zoho ONE licence - how to best achieve this
My client has a small business, and we are looking to implementing Zoho ONE with a single flexible user licence as that is all they really need and offers the best pricing for the range of modules we eventually wish to set them up with, one of which will
Has anyone built a custom AI support agent inside Zoho (SalesIQ/Zobot)?
Hi all, I’ve been experimenting with building my own AI support assistant and wanted to see if anyone here has tackled something similar within Zoho. Right now, I’ve set up a Retrieval-Augmented Generation (RAG) pipeline outside of Zoho using FAISS. It
This mobile number has been marked spam. Please contact support.
Problem Description: One of our sales agents in our organization is unable to sign in to Zoho Mail. When attempting to log in, the following message appears: This mobile number has been marked as spam. Please contact support at as@zohocorp.com @zohocorp
What’s New in Zoho Inventory | April 2025
Hello users, April has been a big month in Zoho Inventory! We’ve rolled out powerful new features to help you streamline production, optimise stock management, and tailor your workflows. While several updates bring helpful enhancements, three major additions
When Zoho Tables Beta will be open to EU data center
Hello all, We in EU are looking at you all using and testing and are getting jealous :) When we will be able to get into the beta also? We don't mind testing and playing with beta software. Thank you!
Pass current date to a field using Zoho Flow
I am trying to generate an invoice automatically once somebody submits a record in Zoho CRM. I get an error in the invoice date. I have entered {{zoho.currentdate}} in the Date field. When I test the flow, I get "Zoho Books says "Invalid value passed
API: Mark Sales Order as Open + Custom Status
Hi, it's possible to create Custom Status (sub-status actually) states for the Sales Order. So you have Open, Void. Then under Open you can have Open, and create one called Order Paid, Order Shipped, etc etc...which is grouped under Open. I can use the
Multi-Unit Inventory with Flexible Unit Selection (Purchase in One Unit, Sell in Another)
We need multi-unit inventory management in Zoho Books with the flexibility to choose units (e.g., Box or Piece) at the time of purchase or sale. For example, if 1 Box = 10 Pieces, we should be able to record purchases in Boxes but sell either in Boxes
Zoho Quartz Screen Recording
Hello, can we get access to Quartz, please, as a standalone solution? It would be great for creating training videos for current and future staff on how to use Zoho software according to our company requirements. Thank you
This domain is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details
This is the error i keep getting when trying to use my Zoho Domain Mail. This domain is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details Find attached. I hope this can be resolved very quickly so i can go on and make
Tip 26: How to hide the "Submit" button from a form
Hi everyone, Hope you're staying safe and working from home. We are, too. By now, we at Zoho are all very much accustomed to the new normal—working remotely. Today, we're back with yet another simple but interesting tip--how to hide the Submit button from your forms. In certain scenarios, you may want to hide the submit button from a form until all the fields are filled in. Use case In this tip, we'll show you how to hide the Submit button while the user is entering data into the form, and then
filter broke my data
I uploaded a file recently from Sheets and it has top 2 rows frozen, with table headers in second row and each one is filterable. somehow my first 2 columns became unfiltered and no matter what I do I cannot reapply the filter?? also didn't realize they
Email address for forwarding is not saving and there's no confirmation ema
Steps to reproduce: 1. Enter my forward email in the email forward section of the account 2. Click save 3. See a notification stating saved successfully 4. Refresh the page, no forward email is saved 5. No email confirmation received at the forwarding
How do I move Notes around within a Group?
It says here: " You can now sort notes by title (alphabetically), or by date modified and date created. You can even organize your notes by dragging and dropping them into a particular order. To sort your notes, simply go to Settings and tap “Sort By.” Please note: all sort settings will be saved and synced across devices, except for custom sorting. Custom sorting will be device specific."However, I am unable to 'custom sort' in either Notebook for Mac or on the Web. In addition, I can't find the
Next Page