# CRM Deal Prediction -------------------------------------------------------------------------------- title: "Introduction" description: "Create a powerful ML pipeline that analyzes historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.674Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/introduction/" service: "All Services" -------------------------------------------------------------------------------- # CRM Deal Prediction # Introduction This tutorial will help you build a machine learning model using {{%link href="/en/quickml/getting-started/introduction/" %}}Catalyst QuickML{{%/link%}} that predicts potential deals analyzing the data in Zoho CRM. We will provide you with a sample dataset which can be used as a data source to the model. {{%note%}}{{%bold class="bold-primary"%}}Note:{{%/bold%}} QuickML is currently not available to users accessing from the CA (Canada) data center. If your account is created in the CA DC (accounts.zohocloud.ca/), you will not be able to avail this service.{{%/note%}} In this tutorial, we will first {{%link href="/en/quickml/help/data-preprocessing/data-cleaning/" %}}preprocess the datasets{{%/link%}} to ensure the data is clean and ready for training. Next, we will be constructing a {{%link href="/en/quickml/help/create-data-pipeline/" %}}data pipeline{{%/link%}} to handle data transformation and an {{%link href="/en/quickml/help/create-ml-pipeline/" %}}ML pipeline{{%/link%}} to train and evaluate the model. Finally, we will create an {{%link href="/en/quickml/help/pipeline-endpoints/" %}}endpoint{{%/link%}} for the trained model, which allows external applications to interact with the model and receive real-time deal predictions. The Zoho CRM Deal Prediction ML model is built using the following Catalyst service: **{{%link href="/en/quickml/getting-started/introduction/" %}}Catalyst QuickML{{%/link%}}** : Using this service, we will first pre-process the sample dataset by implementing {{%link href="/en/quickml/help/data-preprocessing/data-cleaning/" %}}node operations{{%/link%}} on them and constructing the {{%link href="/en/quickml/help/create-data-pipeline/" %}}data pipeline{{%/link%}}. This pre-processed data will be used to create an ML model by executing {{%link href="/en/quickml/help/ml-algorithms/classification-algorithms/" %}}ML algorithms{{%/link%}}. Finally, the CRM Deal Prediction ML model can be accessed by external applications using the {{%link href="/en/quickml/help/pipeline-endpoints/" %}}endpoint URL{{%/link%}} generated in QuickML. The final output, after creating all the required data and ML pipelines in the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}, will look like this: -------------------------------------------------------------------------------- title: "Prerequisites" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.674Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/prerequisites/" service: "All Services" related: - Machine Learning Algorithms (/en/quickml/help/ml-algorithms/classification-algorithms/) -------------------------------------------------------------------------------- # Prerequisites Since this tutorial involves only {{%link href="/en/quickml/getting-started/introduction/" %}}Catalyst QuickML{{%/link%}}, we will be working entirely in the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}} to build data and {{%link href="/en/quickml/help/create-ml-pipeline/" %}}ML pipelines{{%/link%}}, create ML models, and train the models to predict outcomes. Before you begin working on this tutorial, please download the below dataset: * **{{%link href="https://workdrive.zohoexternal.com/external/5744e851ec13447909a46d589d7f86d3d223b6b931297700ad3479ef79c094b8" %}}CRM_Deal_Prediction_Sample_Dataset{{%/link%}}** This tutorial aims to implement cleaning, refining and pre-processing operations on the datasets, and then use them to train ML models. We will be uploading the dataset to Catalyst QuickML in the later sections of this tutorial. -------------------------------------------------------------------------------- title: "Create a project" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.674Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/create-a-project/" service: "All Services" related: - Catalyst Projects (/en/getting-started/catalyst-projects) -------------------------------------------------------------------------------- # Create a Project Let's {{%link href="/en/getting-started/catalyst-projects" %}}create a Catalyst project{{%/link%}} from the Catalyst console. 1. Log in to the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}, then click {{%badge%}}Create a new Project{{%/badge%}} <br /> 2. Enter the project's name as **CRMDealPrediction** in the pop-up window that appears. <br /> 3. Click {{%badge%}}Create{{%/badge%}}. Your project will be created and automatically opened. To access your project later, simply click on the {{%badge%}}Access Project{{%/badge%}} button. <br /> -------------------------------------------------------------------------------- title: "Upload the dataset" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.674Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/upload-dataset/" service: "All Services" related: - Create Your First pipeline (/en/quickml/help/create-ml-pipeline) -------------------------------------------------------------------------------- # Upload the Dataset Let's begin by uploading the dataset in Catalyst QuickML using the available dataset {{%link href="/en/quickml/help/data-connectors/zoho-apps/" %}}dataset connectors{{%/link%}}. 1. Navigate to the QuickML service in the Catalyst console and click {{%badge%}}Start Exploring{{%/badge%}}. <br /> 2. Navigate to the {{%badge%}}Datasets{{%/badge%}} component and click {{%badge%}}Import Dataset{{%/badge%}}. <br /> 3. An Import Dataset pop-up will be displayed. In the **Data Sources** step, navigate to File Upload and click {{%badge%}}Upload File{{%/badge%}}. <br /> Upload the **Zoho_CRM_Deal_Prediction_Sample** dataset that you have downloaded already. We can have the Quotes Type as "**Double Quotes(")**" and Escape Character as "**Backslash(\)**" and click {{%badge%}}Next{{%/badge%}}. <br /> The name of the dataset will be auto-populated based on the uploaded file. You can edit it, if required, and click {{%badge%}}Upload{{%/badge%}}. <br /> The dataset is now uploaded successfully. <br /> The dataset will be displayed in the **All Datasets** section. You can click on the dataset name to view the dataset's details. <br /> On the dataset **Details** page, you can view the {{%link href="/en/quickml/help/data-profiler-and-viewer/#what-is-data-profiling" %}}profiling, data preview{{%/link%}} and {{%link href="/en/quickml/help/data-visualization/overview/" %}}visualization chart{{%/link%}} of the dataset. The dataset's details and its profile can be seen in the below screenshot. <br /> The data visualization with a sample pie chart and preview of the dataset can be seen below. <br /> -------------------------------------------------------------------------------- title: "Create a data pipeline" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.675Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/create-data-pipeline/" service: "All Services" related: - Data Cleaning (/en/quickml/help/data-preprocessing/data-cleaning) - Data Transformation (/en/quickml/help/data-preprocessing/data-transformation) - Data Profiler and Viewer (/en/quickml/help/data-profiler-and-viewer/) -------------------------------------------------------------------------------- # Create a data pipeline Now that we have uploaded the dataset, we will proceed with creating a data pipeline with the dataset. 1. Navigate to the **Datasets** component in the left menu and click the {{%badge%}}Zoho_CRM_Deal_Prediction_Sample{{%/badge%}} dataset. <br /> 2. The dataset **Details** page will be displayed. Click on {{%badge%}}Create Pipeline{{%/badge%}} in the top-right corner of the page. <br /> 3. Name the pipeline "**Deal Prediction Data Pipeline**" and click {{%badge%}}Create Pipeline{{%/badge%}}. <br /> The {{%link href="/en/quickml/help/pipeline-builder-interface/walkthrough/#pipeline-builder-interface-1" %}}pipeline builder interface{{%/link%}} will be opened as shown in the screenshot below. <br /> We will be performing the following set of data pre-processing operations in order to clean, refine, and transform the datasets, and then execute the data pipeline. Each of these operations involve individual {{%link href="/en/quickml/help/data-preprocessing/data-cleaning/" %}}data nodes{{%/link%}} that are used to construct the pipeline. ### Select fields for data pre-processing First, we will select the required fields in the dataset to modify them further. 1. Expand the **Data Cleaning** component in the Operations menu. Drag and drop the {{%badge%}}Select/Drop{{%/badge%}} [node](/en/quickml/help/data-preprocessing/data-cleaning/#select-or-drop) in the pipeline builder and make a connection with the {{%badge%}}Source{{%/badge%}} node. <br /> 2. In the **Select/Drop** section in the right panel, select the columns "**Deal ID**," "**Deal Name**," "**Closing Date**," "**Created Time**," and "**Modified Time**", and choose the operation "**Drop**" to drop the columns from the dataset, then click {{%badge%}}Save{{%/badge%}}. In our case, these columns are generic, serving no purpose to be used further so we are removing them. ### Handle missing values To enhance the quality of the data used for training, we will filter out the non-empty data for the required columns using the {{%badge%}}Filter{{%/badge%}} [node](/en/quickml/help/data-preprocessing/data-cleaning/#filter). This process eliminates irrelevant or incomplete data, ensuring only valuable information is used for model development. <br /> Since the **Lead Source** is one of the key columns for our model training, we are adding a filter to that column to avoid empty cells in it. If you want to process the unmatched data from the filter, choose **show unmatched records as a secondary output** if you want to get another output for unmatched data. ### Fill columns As a part of data pre-processing, we will need to check if there are missing values in any of the columns in the datasets and fill them. We will be using the {{%badge%}}Fill Columns{{%/badge%}} [node](/en/quickml/help/data-preprocessing/data-cleaning/#fill-columns) for executing this operation. 1. Expand the **Data Cleaning** component in the Operations menu. Drag and drop the {{%badge%}}Fill Columns{{%/badge%}} [node](/en/quickml/help/data-preprocessing/data-cleaning/#fill-columns) into the pipeline builder and make a connection with the previous {{%badge%}}Filter{{%/badge%}} [node](/en/quickml/help/data-preprocessing/data-cleaning/#filter) as shown in the screenshot below. 2. From the dropdown named **Select Column**, choose **“Type**”. In the **Fill with** field, choose "**Custom Value**". Update the Value field as "**Not mentioned**", and select the criteria as "**Type**", and "**Is empty**" in the dropdown, then click {{%badge%}}Save{{%/badge%}}. This fills the empty values as "**Not mentioned**" in the **Type column**. <br /> As of now, our dataset is prepared and we have configured the required nodes for this tutorial. Finally, make a connection between the last configured node **Fill Columns** and the {{%badge%}}Destination{{%/badge%}} node. Click {{%badge%}}Execute{{%/badge%}}. <br /> The data pipeline will start the execution and the status of the execution will be displayed on the pipeline Details page as shown in the screenshot below. Once the pipeline has completed the execution, the execution status will display "**Success**". <br /> Click on {{%badge%}}Execution Stats{{%/badge%}} to view more details about each stage of the execution in detail. <br /> Now, we have prepared our dataset which can be used to develop the ML model. We will be discussing more about the ML pipeline creation in the next section. {{%note%}}{{%bold%}}Note :{{%/bold%}} The data pipeline can be reused to create multiple ML experiments for varied use cases within your Catalyst project.{{%/note%}} -------------------------------------------------------------------------------- title: "Create an ML Pipeline" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.675Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/create-ml-pipeline/" service: "All Services" related: - ML Algorithms in QuickML (/en/quickml/help/ml-algorithms/classification-algorithms) - Operations in QuickML (/en/quickml/help/operations-in-quickml/encoding) -------------------------------------------------------------------------------- # Create an ML pipeline In this section, we will be building a prediction ML model using the pre-processed dataset from the previous section. This dataset will be the input to the {{%link href="/en/quickml/help/create-ml-pipeline/" %}}ML pipeline builder{{%/link%}} which enables you to define the model's architecture and select a target column for prediction. To create an ML pipeline, please make sure to follow the below steps. 1. Navigate to the **Pipelines** component in the left menu and click {{%badge%}}Create Pipeline{{%/badge%}}. <br /> 2. In the pop-up that appears, select **Prediction** as pipeline type and name the pipeline "**Deal Prediction ML Pipeline**" and choose the input dataset as **Zoho_CRM_Deal_Prediction_Sample**. In our case, the target column should be "**Stage**". The model name will be auto-populated based on the pipeline name. Click {{%badge%}}Create Pipeline{{%/badge%}}. <br /> 3. The {{%link href="/en/quickml/help/create-ml-pipeline/" %}}ML pipeline builder interface{{%/link%}} page will be displayed as shown in the screenshot below. <br /> Now that we have created our ML pipeline, we will proceed to configure the pipeline by defining the nodes in the ML pipeline builder interface. ### Encoding categorical columns Since our target column "**Stage**", **Type**", and "**Lead Source**" contains categorical data of type String, we will encode them for further ML training standards. Please make sure to follow the below steps to encode the columns. 1. In the Operations menu, navigate to **ML operations-> Encoding-> Label Encoder**. Drag and drop the Label Encoder node to the ML pipeline builder interface. In the Label Encoder configuration section in the right panel, choose the column as "**Stage**" and click {{%badge%}}Save{{%/badge%}}. <br /> 2. In the same manner, navigate to **ML operations-> Encoding-> One-Hot Encoder**. Drag and drop the {{%badge%}}One-Hot encoder{{%/badge%}}{{%link href="/en/quickml/help/operations-in-quickml/encoding/#one-hot-encoding" %}}node{{%/link%}} to the ML pipeline builder interface. In the configuration section on the right panel, choose the columns as "**Type**", and "**Lead Source**", and click {{%badge%}}Save{{%/badge%}}. <br /> These encoding operations will convert the column values of type String to Integer, while maintaining the order and preserving data accuracy. ### Normalize the columns Since the values of the all the features are in various ranges, we will use the **Mean - Std Normalization** component to scale down the values of the features to a common range, typically between 0 and 1. Navigate to **ML operations-> Normalization**. Drag and drop the {{%badge%}}Mean-Std Normalization{{%/badge%}}{{%link href="/en/quickml/help/operations-in-quickml/normalization/#mean-std-normalization" %}}node{{%/link%}} to the ML pipeline builder interface. In the configuration box on the right panel, choose all the columns except "**Stage**" and click {{%badge%}}Save{{%/badge%}}. Once normalization is applied, the ML pipeline builder page will be displayed as below: <br /> ### ML algorithm and Hyperparameter tuning For any ML model, it's necessary to implement an ML algorithm based on which the model will be trained. In this tutorial, we will be implementing the {{%link href="/en/quickml/help/ml-algorithms/classification-algorithms/#random-forest-classification" %}}Random-Forest Classification algorithm{{%/link%}} to configure the tuning parameters for the ML model to ensure it is optimized for our pre-processed dataset. 1. In the Operations menu, expand **ML operations-> Algorithm-> Classification**. Drag and drop the {{%badge%}}Random-Forest Classification{{%/badge%}} node into the pipeline builder. The node will be automatically connected to the **Destination** node. Make an input connection with the **Mean-Std Normalization** and the **Random-Forest Classification** node. <br /> 2. For the **Random-Forest Classification** node, we will go with the default configuration and click {{%badge%}}Save{{%/badge%}}. <br /> Now, we have completed making the required node connections and configurations. We can proceed to execute the pipeline by clicking {{%badge%}}Execute{{%/badge%}} for further evaluation and deployment. <br /> Click {{%badge%}}Execution Stats{{%/badge%}} to view more details about each stage of the execution in detail. <br /> Upon successful execution of the ML pipeline, the Deal Prediction model is created and will be displayed under the Models section. You can view the details of the model on the model's details page by clicking on the model name. <br /> -------------------------------------------------------------------------------- title: "Create an Endpoint" description: "Create a powerful ML pipeline that analyzed historic ZOHO CRM data and meaningfully predicts the likeliness of a successful deal using the Catalyst QuickML components." last_updated: "2026-03-18T07:41:08.675Z" source: "https://docs.catalyst.zoho.com/en/tutorials/crm-deal-prediction/create-endpoint/" service: "All Services" related: - Pipeline Endpoints (/en/quickml/help/pipeline-endpoints) -------------------------------------------------------------------------------- # Create an endpoint We will now create an endpoint for the above Deal Prediction model to allow external applications to interact with the model seamlessly and get predictions. 1. Navigate to the **Endpoints** component in the left menu and click {{%badge%}}Create Endpoint{{%/badge%}}. <br /> 2. Name the endpoint as "**Deal prediction**", choose the model as **Deal Prediction ML pipeline model**, the ML model that we created in the previous step, and click {{%badge%}}Create Endpoint{{%/badge%}}. <br /> 3. On the endpoint's details page, you can test the model by providing a sample request and click {{%badge%}}Get Result{{%/badge%}}. For the below request, the model predicts the Stage of the deal as Closed Won. <br /> 4. Click {{%badge%}}Publish{{%/badge%}} and use the endpoint URL to integrate the ML model with any other applications. <br /> {{%note%}}{{%bold%}}Note :{{%/bold%}} You can also check out {{%link href="/en/quickml/help/pipeline-endpoints/#external-oauth2-authentication" %}}this document{{%/link%}} to implement pipeline authentication to ensure secured access to endpoints, the ML models, and datasets.{{%/note%}}