Build your own interactive product recommendation system in CRM with Guided Selling.

Build your own interactive product recommendation system in CRM with Guided Selling.

Update: CPQ was a public early access feature from March 2023 — January 2024.
Since February 2024, this is a public feature.

Zoho CRM's in-built CPQ engine now facilitates Guided Selling, a setup in which the CRM system makes tailored and interactive product recommendations based on the unique needs and preferences of each customer, thereby enabling sales people to choose the most relevant products for them and create accurate, tailor-made quotes instantly.

Guided Selling — An overview

Guided Selling — An Overview

The primary goal of any business is to cater to the ever-changing needs and preferences of their wide customer base. This could result in the introduction of new product lines, modification of existing product suites or updates to pricing. While this is a great way to accommodate the demands of your customers, what this also means is you must appreciate and acknowledge the complexity that this could bring about for your sales teams to create accurate, relevant and timely quotes for your customers.

When a customer makes an enquiry and there are over a hundred products to choose from, how does a sales person navigate the existing plethora of product choices and offer the right fit for their customer?

It could become a tedious task and slow down your sales pipeline if a sales person has to refer to a product list every time a quote needs to be tailored for a customer.

Here's where Guided Selling helps. While automated product and price rules in CPQ help you with product combinations, free products and dynamic pricing, Guided Selling goes a step further and helps you with which product to recommend to a customer in the first place. Sales managers can now guide their reps via the CRM system on which among the wide range of solutions suits a customer's needs the best.

Consider the example of Zylker Watches, which offers an exquisite collection of wrist watches and wall clocks. The watches come in all sizes and colors for men, women, and children.


For a customer making an enquiry regarding available options for watches, a sales person may have to navigate various products. The right choice of watch for the customer would depend on a multitude of factors, such as the color, warranty preference, manufacturer, gender, and so many other features of the watch. A sales person in this scenario would be bogged down by the sheer complexity involved in selecting from the myriad choices, and here is where guided selling helps.

In this case, Zylker could construct a Guided Selling flow in CPQ, where all of these factors that influence the choice of the right product can be organized as a questionnaire of sorts for the sales person to answer.
The questions in Zylker's case could be as follows:

So, originally if there were 50 watches available, once you answer each question, you could narrow down from random 50 to relevant top 10 and that makes your selection of products easier. The system now acts as a senior sales consultant trying to prod and help the sales person select the right product by asking a series of "questions".

What's more, since the Guided Selling flow is part of Zoho CRM's in-built CPQ system, you can include not only product-based factors but also other related factors — that is, factors based associated accounts, contacts, vendors and deals (via lookup modules). This takes personalized selling to the next level and helps you build the most accurate and timely quotes.

In the same scenario, let's consider the following factors that are not directly related to the product itself.
— Say the customer prefers a particular watch Vendor only— named Titanix.
— Also, for more likely hits, the sales rep wishes to study and narrow down products previously purchased by customers similar to the one he/she is handling. For example, say the current customer is a student/homemaker. So the sales rep wishes to see which set of wrist watches were previously sold to other customers who were also students/homemakers. This would further narrow down the hunt with more likely hits.

So that leaves us with two additional factors based on two different modules in this case— Vendors and Contacts — which are related to the Products module.

This way, Guided Selling efficiently supplies the much needed sales context to the act of "guiding" a sales rep on identifying the most relevant products for their customers. Similar examples include:

  1. Filtering products that were <<previously sold to Indian customers.>>
    (Input field here will be: Associated Contact Mailing Country is India)
  2. Filtering products associated to <<winning deals.>>
    (Input field here will be: Associated Deal Stage is Closed Won)
  3. Filtering products that were <<previously sold to large enterprises.>>
    (Input field here will be: Associated Account No:of Employees >= 50)
So using related modules, you filter based on additional sales context that is supplied to you by the CRM apart from the straightforward product factors present in the Products module.

In the Guided Selling setup, each question is mapped to a particular "CRM field" as the "Input field". This way, all the sales person needs to do is choose the field value and as they answer each "question", what they are essentially doing is filtering the products further and further and zeroing in on the right products based on their answers or "criteria".

Note that the questions created in this Guided Selling flow involve input fields from both Primary module (Products) and Related modules (Accounts, Contacts, Deals, Vendors). Related modules are typically those that are associated to the primary module via a Lookup field.


To create a Guided Selling flow, all you need to do is create a set of Input Fields and frame your questions to the sales rep. These input fields could be from the primary (Products) module or Related Modules (Contacts, Deals, Accounts and Vendors).

To learn more about creating your own Guided Selling flows, please refer to this Help document. 

Availability and Release Status: 
Guided Selling is available in the Zoho CRM Professional Edition and above. It is live now in all DCs.
Note: CPQ and Guided Selling are available on the Public Early Access* mode. 

(*) Public Early Access — Refers to a the status of a feature that is available for all applicable Editions, however, is subject to changes, improvements and updates as part of continuous development. 

    • Recent Topics

    • Customize your SalesIQ live chat with Custom CSS and blend it with your website design

      Hi everyone. Hope you all are having a great day! SalesIQ offers various inbuilt customization choices for your chat widget and window like changes in colour, theme, font etc. Although these choices are many, sometimes they may not match with the design
    • From Email Address When Replaying to Missed Chats

      One of the most common things we do is follow up on every missed chat.  Missed chats are like money in the bank, people just waiting for your response and to start a relationship with our companies. However, SalesIQ only lets you respond from 1 email address from your entire account?! We have happily paid for 4 subscriptions, but our users cannot reply from their own email address?  How are we supposed to build customer relationships? The fix to this issue is so simple, just load in the logged in
    • how to treat a same person as customer and vendor in zoho

      hi team, in my company, few persons acting as creditors as well as debtors (which means sometimes we pay them... some times we paid by them). in that case i would like to maintain a same ledger for that person.in zoho books it is treating creditor and
    • Narrative 6 - The impact of rebranding

      Behind the scenes of a successful ticketing system - BTS Series Narrative 6 - The impact of rebranding Every organization has invested in branding to set itself apart, and that should be reflected in the help desk. Zoho Desk enables organizations to apply
    • custom color palette for picklist in Sheet

      Migrating over from Google Sheets and missing the ability to customize the individual item colors of my picklist/dropdown menus. Is this something that is possible? A search showed me creating a custom color palette in Analytics is possible but I am not
    • What's New - July 2025 | Zoho Backstage

      Start smart, end strong. From knowing who’s coming to celebrating who showed up, July’s updates help you run events that feel organized from the first invite to the final thank you. Planning an event used to be like writing a choose-your-own-adventure
    • Image Upload Field API get encrypted ID and sequence number

      Hello is there a way to extract the encrypted id and sequence number from image upload fields through the Zoho CRM API? I created a custom script with javascript within Zoho CRM, but I want to extract the encrypted id and sequence number for all my images
    • Attention: Changes to 10DLC TCR pricing and new authentication requirements

      Hi everyone, Starting August 1, 2025, The Campaign Registry (TCR) is introducing new pricing changes and a mandatory brand verification process called Authentication+ 2.0, which will affect how you register and manage your 10DLC messaging services. These
    • Better Time Tracking

      We need better time tracking customization for IT MSPs. We also need reporting that is built in, rather than having to try and fumble with creating custom reports. We also need to be able to mark whether a ticket has been billed or not, I don't think
    • Scheduled Tickets Need Updated

      There is a very clunky manual way to create reoccurring scheduled tickets. This should be created to be easy for the administrator to create. We create several (10 to 12) reoccurring tickets per account for biweekly and monthly auditing purposes.. The
    • Team Feeds Improvements

      Team Feeds needs to show a feed of every action within the department. Currently it seems that the feed will only show a ticket that I've personally commented on or interacted with/followed. A feed should be that, a feed. As a manager I would like to
    • Better Security, Better User Experience | Help Center Update | June'25

      As part of our commitment to enhancing user experience and security, we are happy to announce updates to our authentication mechanism. This update introduces several key enhancements designed to improve the password recovery process and streamline the
    • Upload Logo to Account Page

      It would be nice to set a logo for an Account
    • View Agent Collision on Ticket List Page

      It would be nice from the ticket listing page (views) to see what agents are working on what tickets rather than having to click into each ticket throughout the day to see what agents are working on what tickets. This functionality would also be desired
    • Restrict user from viewing the detail standard view

      Is there any way to restrict a user(it can be user-field-based) from viewing the detail standard view? Basically, I have created a canvas detailed view so that on some conditions I can hide some data from the users but the standard view client script
    • Upload Picture to Contact

      It would be nice to upload a profile picture to a contact.
    • Ticket Status Colors

      Can i change the colors of Ticket Status in the admin panel? Or even change the background of the entire cell of a Critical ticket? This way its easy for my agents to see a urgent ticket when it comes in. Right now everything is black text. Here Right
    • Allowing Pictures for Client Contacts

      Do you have any plans to allow us to add pictures of our client contacts? There is a silhouette of a person there now, but no way that I can see where I can actually add a picture of the individual.
    • Paid Support Plans with Automated Billing

      We (like many others, I'm sure) are designing or have paid support plans. Our design involves a given number of support hours in each plan. Here are my questions: 1) Are there any plans to add time-based plans in the Zoho Desk Support Plans feature? The
    • Agent name Alias

      I am seeing that Full name of my staffs are written on every ticket response which is not good for some reasons. It is possible to user like this: Manny P. (First Name with Last Name's First Letter) or  Manny (First Name) This is want we want to show
    • Unable to add attachments to tickets through Desk API

      I able to use the Desk API to generate tickets. However when I try to use the tickets/{ticketId}/attachments endpoint, I always get an Unauthorized error. My app has Desk.Tickets.ALL included in its scope so this should not be an issue
    • What's wrong with this COQL?

      What's wrong with this COQL? Code returns "invalid operator found". SELECT id, Name, Stage, Account, Created_Time, Tag FROM Production_Orders WHERE (Account = '4356038000072566002' AND Stage NOT LIKE '%customer%') ORDER BY Created_Time DESC LIMIT 200
    • [Feature Request] Add support for internationalized top-level domains mail hosting

      This is an important request to add support for internationalized domains mail hosting to https://www.zoho.com/mail/ In this case, that is only limited to domain name/mail address however currently it's already possible for us send mails etc using below
    • Add Enable/Disable to Field Rules and other Rules

      Hi, Sometimes I have rules setup for fields, and until I want to enable them for use, I can set the fields to Hidden but rules still show them, today you have to delete rules and then recreate them again, would be nice to have a toggle for Enabled/Disabled
    • Syncing stuck for days

      Hello when I made an account a few days ago and synced all my notes to it, it is still syncing. My app is only 400mb so I do not know why it is taking so long. Please help
    • Workflow runs on every edit despite not ticking the field repeat this workflow whenever a parent is edited.....

      Hi, It is my understanding that this workflow should only trigger once. Why is this triggering on every edit of the field? Based on another support query - directly from Zoho, If i tick the box 'repeat this workflow whenever a parent is edited' it should
    • How do you add or update tags on Zoho CRM records via n8n? (Workarounds or best practices?)

      Hi all, I’m running into some limitations with the Zoho CRM node in n8n and was wondering how others have handled this: From what I see, the standard Zoho CRM node in n8n doesn’t allow you to add or update tags when creating or updating contacts/leads.
    • API PARAMETER FOR TICKET CLOSED TIME

      Hi, Is there a parameter for filtering tickets by closed time in zoho api, i can see closed time in the API response i get, but can't get tickets by that field while calling. Regards, Anvin Alias
    • Reply to email addresses wrong.

      I have setup my Zoho mail account using my main domain and I also have an Alias setup from a different domain. In Settings - Mail - Compose I have selected to the option "For replies, send using The same email address to which the email was sent to".
    • Audio/video quality issues with Zoho Meeting – Any roadmap for improvement?

      Hi Zoho Team, We’ve been using Zoho Meeting for both internal and external meetings, and unfortunately, the experience has been consistently poor. The video and audio quality are so unreliable that it often renders meetings ineffective—especially with
    • Meeting integration with Otter.ai

      Would love for an integration with an AI transcription service like Otter.ai to be integrated with Zoho Meeting. Thanks
    • How to close/delete a free creator account?

      I have a free zoho creator account associated with my email address that is not being used.  I want to become a user of another paid zoho creator account but I can not associate with the paid account with the same email.  I assume if I can close or delete the free account I will be able to use the paid account. I have emailed support but no response. Suggestions?
    • Zoho books and zapier causes Invalid data provided

      I have been using zoho books with zapier for over 2 years now, everything was working fine. On September 13th my zaps stopped working. Now on step create sales invoice in zoho books i get an error: Failed to create a create_invoice_v2 in Zoho Books The
    • CRM report

      Is it possible to pull a contacts report that also includes the company industry, as well as the company name? I’m having trouble combining company and contact fields – any help is appreciated. Thank you, Sam
    • Early Payment Discount customize Text

      Hi, I’m currently using Zoho Books and am trying to customize the standard “Early Payment Discount” message that appears in the PDF invoice template. I’ve reviewed the documentation here: https://www.zoho.com/books/help/invoice/early-payment-discount.html
    • Enhancements to Client script?

      Hi Zoho CRM, I've been extensively using Client Scripts to enhance our Deal form experience, particularly for real time validations and auto updating fields based on specific logic. However, I've encountered a challenge regarding permission boundaries.
    • Add views to new CRM UI navigation + Unlimited Webtabs

      Zoho CRM is so close now to being the ultimate business application with the new UI, as soon as this one feature is added. This is probably where Zoho is headed but if it's not I want to BEG for this to be incorporated. What we need is to be able to put
    • E-Mail Distribution List

      How do I create an e-mail distribution list in Zoho Mail?
    • Custom "create meeting" button with more functionality than Zoho currently has?

      I'm looking for a little help/direction in how to do this. Even just some general high level pointers on how this might be able to be done. The current Zoho Meeting Activity functionality is not ideal for my org's workflow. I'd like to try and create
    • Error Code 4: Invalid value passed for JSONString

      Okay, I want to start by saying I know I'm a terrible scripter, so sorry if this is a dumb mistake. I just can't figure it out, even with LLM help. Here's my code: // --- Input Variables --- customer_id = salesorder.get("customer_id"); so_id = salesorder.get("salesorder_id");
    • Next Page