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
How Do I Refund a Customer Directly to Their Credit Card?
Hi, I use books to auto-charge my customers credit card. But when I create a credit note there doesn't seem to be a way to directly refund the amount back to their credit card. Is the only way to refund a credit note by doing it "offline" - or manually-
Can’t Send Outgoing Mail
Hello, one of the email addresses on my account had its outgoing mail privileges blocked. This was due to some bot signups on my website, causing my email to send a bunch of undeliverable emails. I have corrected this issue on my website. Please restore
zoho webmail keeps opening an empty tab when on log in/vist webmail
as the the title says, whenever i log in or visit the page in a new tab, zoho webmail with open a new tab, but it errors out (see attachment). how do you stop it from doing this?
Sending possible. Receiving not possible.
We are not receiving mail in our company email. Could you please solve this. It has been recurring and I want it to be resolved once and for all. Please help.
Efficient way to get a list of records like Notes under Leads that changed in last N minutes
Hi, I am writing a process to consume the Zoho Leads and put it in an internal system. For Leads, Accounts and Contacts, the getRepords with lastModifiedTime works great as I can call the API to get only the updated records say in last 30 minutes. However
IMAP Connection Issue – "Disconnect called before connection setup" (Zoho + Freshdesk Integration)
Hello, Since April 25, 2025, we are facing a critical issue with our Zoho Mail integration with Freshdesk. Incoming emails are no longer being received in Freshdesk. Freshdesk Support has confirmed that their system is trying to connect to our Zoho mailbox,
Fetching a missing Folder, now creates it
Hello, I'm using Zoho Flow to fetch a folder within a Team Folder. If the folder is missing (folder ID is null), I trigger a Create Folder. Now in 2025, when I fetch a missing folder, a folder is created right away with the "name + full date" and a Folder
Is the "schedule 10 mass emails/module" limit a per user or per organization limit?
For scheduling emails out of Zoho CRM, there is a 10 scheduled mass emails per module limit according to Zoho documentation (https://help.zoho.com/portal/en/kb/crm/faqs/emails/articles/how-to-schedule-mass-emails-in-zoho-crm). Is this limit per user or
How Would I get data from a network drive to be feed into creator program.
What's the easiest and cleanest solution for this?
Using Zoho One to manage two (or more) businesses
We are one company that operates two business, a scenario that Zoho One doesn't really seem to handle very well, and one which I can't imagine is at all unique to us! (It is basically designed to facilitate branding and use for one business only per subscription).
Give Permission for User test in Development/Staging modes
Hi Everyone, I am using Zoho Creator C6. Where there are development and staging modes. Is it possible to give special / temporary permission for users to test directly in development and staging? Or do you have any other ideas? Thank you very much.
Merging 2 tickets
Hi I understand how to merge 2 tickets already but find the process quite cumbersome. It is not always simple to perform a search that causes the 2 tickets in question to show up on the Ticket Screen, and this is the only place a merge can be performed. Doing a search for the customer or contact linked to the ticket displays all of their tickets which could be hundreds to sort through, you could do a custom search that only shows open tickets but doing that every time is also time consuming. Not
Cannnot find criteria tab
We need to be able to segment contacts based on an account view or field. The online help shows a screen with three options: Under Sync Details there is All Contacts; Custom view; Criteria. The latter is missing from my screen. I need it. I also want to know if I delete contacts from campaigns, will they still remain in CRM?
Dial Charts in Analytics using field values for colored ranges
Hey all! It would be supremely helpful if we could use field values for ranges in Analytics for dial charts. We currently display an analytics report to our sales team showing how close they are to reaching the next tier for commission payouts. We update
A couple of minor enhancements to Workflows
Last updated on September 17, 2024: These enhancements were initially available for early access, and we've now enabled them for all users. We are elated to announce a couple of enhancements to custom functions in our Workflows! Say hello to: "Source"
South Africa Tax Edition is now Available!
Managing taxes just got easier for field service businesses in South Africa! With Zoho FSM's new South Africa tax edition, field service businesses operating in South Africa can now effortlessly stay compliant with local tax regulations. Easily manage
How to overcome Zoho Deluge's time limit?
I have built a function according to the following scheme: pages = {1,2,3,4,5,6,7,8,9,10}; for each page in pages { entriesPerPage = zoho.crm.getRecords("Accounts",page,200); for each entry in entriesPerPage { … } } Unfortunately, we have too many entries
Introducing ICR in Zoho CRM: Transform your printed text into digital data
From writing on papyrus in the ancient times to creating a humble record in your CRM, the world may have evolved with how it used to record data, but data entry as such has not been simplified. It is still a repetitive and arduous chore on which businesses
How to Add Custom Sections in the Product Page?
Hi Zoho team, I’m currently using the Tranquil theme on Zoho Commerce and I have a question regarding the product page layout. Right now, under each product, I can see expandable sections like Product Details and Specifications. I’d like to add two additional
Bulk user onboarding for Cliq Channels in a jiffy
As developers, we frequently switch between coding, debugging, and optimizing tasks. The last thing we want is to be burdened by manual user management. Adding users one by one to a channel is tedious and prone to errors, taking up more time than we could
Weekly Tips: Secure your attachment downloads with Zoho Mail
Safety is one of our main concerns, whether it’s about device security or online protection. We use tools like fingerprint scanners, facial recognition, and two-factor authentication to keep our devices and email accounts secure. We use methods like OTP
Issues with Dashboard Filter and KPI in Zoho Analytics (CAGR)
Hi everyone, I'm trying to build a CAGR (Compound Annual Growth Rate) KPI in Zoho Analytics, but I'm running into some issues with filter synchronization. Here's the scenario: I created two test reports: One that filters results from 2021 to 2025. Another
Adding Product Photos through Import or In Bulk
I am about to add about 1000 products in the CRM. I am shocked that there is no way to add product photos through the Import feature. I'll be spending days adding product photos.... Very dissapointing. Anyone know of a work around to add product photos
Announcing Multi-language Support in Zoho FSM
Zoho FSM now speaks your language. The much-awaited multi-language support is now available in Zoho FSM. The following languages are supported in Zoho FSM: Dutch (Nederlands) English - United Kingdom English - United States French (français) French -
How to sync Zoho CRM Quotes with Zoho Books/Finance Estimates or Quotes
Hi everyone, We’re building quotes in the Zoho CRM Quotes module because of its strong CPQ features and better communication options (multiple contacts, email customization, etc.). However, these don’t sync directly with Zoho Books/Finance for invoicing.
Quiz of the Day on Dashboard
Hi team, Is it possible to enter a feature for enabling a widget as a quiz for the day. This widget can have one question popping up daily from the list of some pre-fed questions and the employees need to either type a response or can select from a multiple-choice
Email content strategy
This is basically a couple of questions about the best practices when it comes to the use of colors as part of the message sent through the email campaign. 1 - Is there a guide or recommendation as to what are the best colors for text/background associated
Canvas Button Vanished
I have a button that has mysteriously vanished. It shows in the canvas builder but then is no where to be found in the actual record and before you ask, yes I have tried to access through incognito mode and same issue.
Multiple Tabs in the Dashboard
Hi team, Can we enable an option to add multiple tabs in a dashboard? This will help to group the content to be displayed to employees and make it more usable and user-friendly intranet space.
In the Pivot table in the value section i want to the actual value instead of sum or count
I am creating Early/late Check and check out in pivot report based on Zoho analytics I need the data to include: Employee Name Late Entry, Early Entry, Early Exit, Late Exit, First In, Last Out, and Total Hours.
Introducing Assemblies and Kits in Zoho Inventory
Hello customers, We’re excited to share a major revamp to Zoho Inventory that brings both clarity and flexibility to your inventory management experience! Presenting Assemblies and Kits We’re thrilled to introduce Assemblies and Kits, which replaces the
IMAP as a source option in Dashboards
Hi Team Can I request IMAP be added as a source option for running a report or creating a KPI in dashboards. I have selected all options and my IMAP linked emails are not showing, I can only check these by going to emails in a contact. Thankyou Josh
In Zoho people Check in report the date want come as Colum how i can achive that in zoho people or analytics
In Zoho people Check in report the date want come as Colum. How i can achive that in zoho people or analytics
Canvas responsive preview in different browser window causes re-authentication/verification
I'm trying to design a view in Canvas. I am testing in a tab with a desktop view, and another tab (on my same desktop/IP) with a responsive view of an iphone. Every time I refresh, it boots me out of the previously used tab. If I forget to refresh the
Import subform entries conveniently in CRM
Dear All, Subforms have always been crucial for associating additional data with CRM records. You can easily associate line items with parent records and keep track of various details related to your records. We're pleased to announce that we've introduced
Canvas: how can I edit theme?
This says "Theme Colours", and I would like to edit theme colors (and styles ala CSS). How can I edit these "Theme Colours"? I'm a software developer, so just point me in a direction where I can alter code if needed.
Cómo convencer a tu manager para venir a Zoholics 2025
¿No estás seguro de si a tu manager le convence que asistas a Zoholics 2025? ¡No te preocupes! Aquí te damos algunos argumentos clave que te ayudarán a convencer a tu manager de que participar en este evento es una inversión tanto para ti como para la
HTML Email in Zoho Books
Is it possible to create custom html email template in zoho books.
Using IMAP configuration for shared email inboxes
Our customer service team utilizes shared email boxes to allow multiple people to view and handle incoming customer requests. For example, the customer sends an email to info@xxxx.com and multiple people can view it and handle the request. How can I configure
Can you please let us know how we can use Zoho for multi store?
Hello Team, Can you please let us know how we can use Zoho for multi store because when we connect our plugin to Zoho and we create a product and then on another store when we create product with same name then product already exist error occurs, so how
Next Page