# Deluge -------------------------------------------------------------------------------- title: "Introduction" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.676Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/introduction/" service: "All Services" related: - Catalyst ConvoKraft Actions (/en/convokraft/help/actions/overview/introduction) - Catalyst ConvoKraft Handlers (/en/convokraft/help/handlers/welcome-message-handler) - Catalyst CloudScale Web Client Hosting (/en/cloud-scale/help/web-client-hosting/introduction/) -------------------------------------------------------------------------------- # Ecommerce Bot ### Introduction This tutorial will help you build an ecommerce bot through {{%link href="/en/convokraft/" %}}Catalyst ConvoKraft{{%/link%}} that serves as an efficient sales assistant for your ecommerce website. Consider an online store that sells electronic gadgets and appliances through its website. We will be building a {{%link href="/en/convokraft/help/bots/introduction/" %}}ConvoKraft bot{{%/link%}} for the website that allows users to have engaging one-to-one conversations any time, without having to raise support tickets or contact customer care personnels for simpler, straightforward queries or frequently asked questions. The ecommerce bot can display the list of products available in the store's inventory, enable users to place an order with the store, view the details of an order, change the delivery address, or reschedule the tentative delivery of the order. The ecommerce bot will look like this after it is embedded in the website: You can access a working ecommerce bot and test its functioning here: {{%link href="https://ecommerce.catalystserverlessapp.com/app/" %}}Try the App!{{%/link%}} The ecommerce bot uses the following fundamental ConvoKraft components: * **{{%link href="/en/convokraft/help/actions/overview/introduction" %}}Actions{{%/link%}}** : We will be configuring the ecommerce bot to perform operations such as viewing the list of items available in the online store, placing an order, viewing details of an order, changing the delivery address and rescheduling the delivery date. * **Bot Logic** : We will be configuring the bot logic of our ecommerce bot in {{%link href="https://www.zoho.com/deluge/help/" %}}Deluge{{%/link%}}. The Deluge function will handle the complete backend logic of the actions that are configured. * **{{%link href="/en/convokraft/help/handlers/welcome-message-handler" %}}Handlers{{%/link%}}** : We will be configuring responses in the handler functions to greet the user while initiating a fresh conversation with the bot, to intimate the user on scenarios of failure or exceptions, and also to let the user know the bot is unable to comprehend a particular message. The core execution logic of the bot will also be configured in a handler function and we will be discussing more about it in {{%link href="/en/tutorials/ecommerce-bot/deluge/configure-actions/" %}}this section{{%/link%}}. The ConvoKraft bot also uses other Catalyst components including : 1. {{%link href="/en/cloud-scale/getting-started/introduction/" %}}**Catalyst Cloud Scale**{{%/link%}}: - **{{%link href="/en/cloud-scale/help/web-client-hosting/introduction/" %}}Web Client Hosting{{%/link%}}**: For {{%link href="/en/cloud-scale/help/web-client-hosting/implementation/" %}}hosting the client application{{%/link%}}, i.e., the website, we will use this component of the {{%link href="/en/cloud-scale/" %}}Catalyst CloudScale{{%/link%}} service. We will be embedding the bot in the website using the front-end {{%link href="/en/convokraft/sdk/js/overview/" %}}Javascript SDK{{%/link%}} package provided by Catalyst. We will also be configuring the following Zoho service: * **{{%link href="https://www.zoho.com/en-in/crm/" %}}Zoho CRM{{%/link%}}** : For storing the products in the online store and the data of all the orders placed, we will be creating custom modules in Zoho CRM and use it as our data source. To learn more about configuring custom modules, please refer to {{%link href="/en/tutorials/ecommerce-bot/nodejs/create-custom-modules-in-crm/" %}}this section{{%/link%}}. In this tutorial, you will be given the code to build your ConvoKraft bot using Deluge functions and a simple client code for the ecommerce website. You will just have to copy the code given and paste it into the appropriate functions as directed. We will be configuring the required actions for the bot, coding the business logic, training and testing the bot, and finally embedding the bot in the website. -------------------------------------------------------------------------------- title: "Prerequisites" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.676Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/prerequisites/" service: "All Services" related: - Login Zoho CRM (https://www.zoho.com/en-in/crm/) - CLI Command Reference (/en/cli/v1/cli-command-reference/) - Install CLI (/en/getting-started/installing-catalyst-cli/) - Login CLI (/en/cli/v1/login/login-from-cli/) -------------------------------------------------------------------------------- # Prerequisites Before you begin building the application, you must have the following prerequisites installed on your system: 1. {{%bold%}}Catalyst CLI{{%/bold%}}: Catalyst CLI contains a host of tools that enable you to initialize, develop, test, and deploy the components of your application from your local machine. We will be working with Catalyst CLI in this tutorial. You must perform these actions: 1. {{%bold%}}Install Catalyst CLI{{%/bold%}}: Catalyst CLI is installed through NPM. You must therefore have NPM and Node.js installed on your system before you install the CLI. Refer to the {{%link href="/en/getting-started/installing-catalyst-cli/" %}}**Install Catalyst CLI help page**{{%/link%}} for details on the pre-requisites and the steps to install it. 2. {{%bold%}}Login Catalyst CLI{{%/bold%}}: After you install Catalyst CLI, you must authenticate the CLI with your Catalyst account before using it. Refer to the {{%link href="/en/cli/v1/login/login-from-cli/" %}}**CLI Login help page**{{%/link%}} for the steps to log in from Catalyst CLI and the various options available for it. 2. {{%bold%}}Any IDE tool for client code development{{%/bold%}}: You can use any IDE to work with the client code. Some popular choices include Visual Studio Code, IntelliJ IDEA, Eclipse, and Sublime Text. Download and install an IDE of your choice on your system. {{%info image="/images/tutorials/todo-list/vscode.png"%}}If you are a Visual Studio Code IDE user, you can install the {{%bold%}}Catalyst Tools{{%/bold%}} extension, and use your IDE itself in place of the CLI. You can find more details about the Catalyst VS Code extension from this {{%link href="/en/catalyst-extensions/vs-code-extension/introduction/" %}}help section{{%/link%}}.{{%/info%}} 3. {{%bold%}}Zoho CRM account{{%/bold%}} : You will need to have a configured Zoho CRM account of any edition as the data source of the product inventory and orders for the ecommerce store. If you don’t have a Zoho CRM account, you can sign up for it {{%link href="https://www.zoho.com/en-in/crm/" %}}here{{%/link%}}. -------------------------------------------------------------------------------- title: "Create a project" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.677Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/create-a-project/" service: "All Services" related: - Catalyst ConvoKraft (/en/convokraft/) - Catalyst Project Creation (/en/getting-started/catalyst-projects/#create-a-catalyst-project) -------------------------------------------------------------------------------- # Create a project Let's first {{%link href="/en/getting-started/catalyst-projects/#create-a-catalyst-project" %}}create a Catalyst project{{%/link%}} from the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. 1. Log in to the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}} and click {{%bold%}}Create new Project{{%/bold%}}. <br/> 2. Enter the project's name as "**Ecommerce**" in the pop-up window that appears. <br/> 3. Click {{%bold%}}Create{{%/bold%}}. Your project will be created and opened. <br/> We will be using the {{%link href="/en/convokraft/" %}}Catalyst ConvoKraft{{%/link%}} service for this tutorial. You can navigate to {{%bold%}}ConvoKraft{{%/bold%}} and click {{%bold%}}Start Exploring{{%/bold%}}. -------------------------------------------------------------------------------- title: "Create a bot" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.677Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/create-a-bot/" service: "All Services" related: - Create a bot (/en/convokraft/help/bots/create-a-bot/) -------------------------------------------------------------------------------- ### Create a bot Let's begin by {{%link href="/en/convokraft/help/bots/create-a-bot/" %}}creating a bot{{%/link%}} in ConvoKraft: 1. Navigate to the {{%bold%}}ConvoKraft service{{%/bold%}} icon in the left pane of the {{%link href="https://console.catalyst.zoho.com/baas/index" %}}Catalyst console{{%/link%}}. <br /> 2. Click {{%bold%}}Create New Bot{{%/bold%}}. 3. In the {{%bold%}}Create New Bot{{%/bold%}} pop-up, enter the name of the bot as "EcommerceBot". Provide a short description of the bot and also an icon for your bot, if required. <br /> 4. Click {{%bold%}}Save{{%/bold%}}, and in the page that follows choose the development platform as Deluge, to code the business logic of your bot. To know more about Deluge in detail, please refer to {{%link href="/en/convokraft/help/bot-logic/deluge-functions/defining-deluge-functions" %}}this page{{%/link%}}. -------------------------------------------------------------------------------- title: "Configure Actions" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.677Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/configure-actions/" service: "All Services" related: - Create Action (/en/convokraft/help/actions/create-an-action/) - Create Bot (/en/convokraft/help/bots/create-a-bot/) -------------------------------------------------------------------------------- # Configure Actions After {{%link href="/en/convokraft/help/bots/create-a-bot/" %}}creating the bot{{%/link%}}, you will need to {{%link href="/en/convokraft/help/actions/create-an-action/" %}}create actions{{%/link%}} and configure the responses of the actions as required. You can generally choose to configure the response of an action to be either based on a business logic or a static direct response without involving any operation. In this tutorial, the response of all actions will be configured based on the execution of a business logic. We will be creating the following set of actions for the ecommerce bot, so that the users can directly interact with the bot and perform actions at ease. * **To list the products in the ecommerce store** * **To place a new order** * **To view the details of an order** * **To change the delivery address** * **To reschedule the order to a later date** In order to configure an action based on your application's specific needs, you must define the appropriate sample sentences and params for it. In this section, we will be discussing in detail about the {{%link href="/en/convokraft/help/actions/define-sample-sentences/" %}}sample sentences{{%/link%}} and {{%link href="/en/convokraft/help/actions/define-params/" %}}params{{%/link%}} to be configured for the actions mentioned above for your ecommerce bot. After you {{%link href="/en/tutorials/ecommerce-bot/deluge/create-a-bot/" %}}create a ConvoKraft bot{{%/link%}} and choose the appropriate development platform to build the business logic, the bot's details page will be displayed as shown in the screenshot below. Please follow the steps listed below to create and configure actions for the ecommerce bot : 1. Click on {{%bold%}}Create Action{{%/bold%}} after you open the bot to add a new action. <br /> 2. We will create the first action for our ecommerce bot to list the items available in the store. In the pop-up window that opens, provide the name of the action as "List the items available in Store". Select the response as {{%bold%}}Based on a business logic{{%/bold%}} and then click {{%bold%}}Next{{%/bold%}}. <br /> 3. Configure the applicable sample sentences. In a conversational way, the user would prompt this action in many ways, such as "list the items available", "what are the products available in the store?". You can configure similar sentences as the sample sentences for the action and Click {{%bold%}}Next{{%/bold%}}. <br /> 4. We will not be configuring any params for this action. You can therefore skip this step and proceed to click {{%bold%}}Save{{%/bold%}}. <br /> 5. After configuring the sample sentences and params of an action, the Action's details page will be displayed. <br /> Since we have chosen to build the business logic of the ConvoKraft bot using Deluge, the Execution function will be enabled by default. {{%note%}}{{%bold%}}Note :{{%/bold%}} For this particular action, we will be using the Execution function only.{{%/note%}} Click {{%bold%}}Edit Function{{%/bold%}} and the ConvoKraft Deluge Editor will be opened automatically. 6. To code the business logic, you can copy and paste the below mentioned code for this function in the editor and click {{%bold%}}Save script{{%/bold%}}. {{%code class="language-javascript"%}}result = Map(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts?fields=Name,Product_image_url,Price,Inventory_Count,Product_image" type :GET headers:header_data ]; info CRMresponse; cardlist = List(); productNote = Map(); productNote.put("type","note"); productNote.put("content","List of items available are listed as follows "); cardlist.add(productNote); for each record in CRMresponse.getJSON("data") { info record; name = record.getJSON("Name"); price = record.getJSON("Price"); product_id = record.getJSON("id"); image = record.getJSON("Product_image_url"); inventory = record.getJSON("Inventory_Count"); listItem = Map(); listItem.put("type","list"); listItem.put("format","bullet"); listElements = List(); elem1 = {"label":"Name : " + name}; elem2 = {"label":"Total Price : $ " + price}; elem3 = {"label":"Product ID : " + product_id}; elem4 = {"label":"Stock : " + inventory}; listElements.add(elem1); listElements.add(elem2); listElements.add(elem3); listElements.add(elem4); listItem.put("elements",listElements); //info listItem; // defining the 'image' card // defining the 'note' card productPic = Map(); productPic.put("type","image"); productPic.put("content",record.getJSON("Product_image_url")); cardlist.add(productPic); cardlist.add(listItem); } info cardlist; result.put("card",cardlist); result.put("message","List of Objects in response"); return result; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} To learn more about Deluge editor in detail, please refer to {{%link href="https://www.zoho.com/deluge/help/deluge-editor.html" %}}this page.{{%/link%}}{{%/note%}} 7. Click {{%bold%}}Test this action{{%/bold%}} at the bottom right corner of the page to test the configurations being made to the current action. Here, testing an action simply means interacting with the bot and asking questions related to the configurations being made for the particular action. {{%note%}}{{%bold%}}Note :{{%/bold%}} The sample sentences configured for the action will be shown as suggestions in the chat window. You can either choose one from the list or start your own conversation with the ConvoKraft bot based on your preference.{{%/note%}} For example, enter "Can you list the items with their stock" in the chat window. The bot understands the intent of the message and tries to find a match with the defined sample sentences and executes the business logic to provide the response. 8. After you test the action, proceed further by clicking {{%bold%}}DONE{{%/bold%}}. Similarly, we will create the remaining actions of the ecommerce bot. The above mentioned steps will apply to all actions, additionally you might be required to {{%link href="/en/convokraft/help/actions/define-params/" %}}create params{{%/link%}} and configure the logic in a {{%link href="/en/convokraft/help/actions/bot-logic/deluge-functions/context-handler-function/" %}}context handler function{{%/link%}}. ### Place an Order 1. Create a new action from the bot's details page to respond based on the business logic as discussed in the previous step, and name it as "Place an order". The sample sentences for this action can be defined as follows: * "I want to place an order" * "I would like to place an order of the product id :5804508000000460006 to be delivered on 10-Jul-2023" Click {{%bold%}}Next{{%/bold%}} after configuring the sentences. <br /> 2. Click on {{%bold%}}New Param{{%/bold%}} and click {{%bold%}}String{{%/bold%}}. Provide the name for the param as "productid" and add a prompt message by referring to the table below. To learn more about the attributes of each param type in detail, please refer to {{%link href="/en/convokraft/help/actions/define-params/#attributes-of-a-param" %}}this page{{%/link%}}. <br /> We will be creating the following params for this action: <table class="content-table"> <thead> <tr> <th>Param Type</th> <th>Name</th> <th>Prompt message</th> <th>Prompt message for validation failure</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>{{%badge%}}productid{{%/badge%}}</td> <td>Please enter the Product ID</td> <td>The entered ProductID is invalid. Please check and retry.</td> </tr> <tr> <td>Email</td> <td>{{%badge%}}cxemail{{%/badge%}}</td> <td>Please enter your Email ID</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>Date</td> <td>{{%badge%}}cxdate{{%/badge%}}</td> <td>Please enter the date on which you expect the delivery</td> <td>The entered date is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>{{%badge%}}cxaddr{{%/badge%}}</td> <td>Please enter the address where you want the order to be delivered</td> <td>The entered address is invalid. Please check and retry.</td> </tr> </tbody> </table> In a similar way, create the other three params, "cxemail", "cxdate", and "cxaddr" with the param type and prompt messages as mentioned in the table above. {{%note%}}{{%bold%}}Note :{{%/bold%}} The mode of input for a date param can be selected as {{%badge%}}Textual{{%/badge%}} or {{%badge%}}Visual{{%/badge%}}, as per your preferences.{{%/note%}} 3. Map the params with the corresponding text in the sample sentences, in order to instruct the bot to prompt the inputs from the user consecutively in the conversation. For this, hover over the text in the sample sentence and choose the corresponding param to associate them. Here, we will be associating the "cxemail", "productid" and the "cxdate" with their corresponding example values in the sample sentences as shown in the screenshot below. 4. After configuring the sample sentences and params for the action, click {{%bold%}}Save{{%/bold%}}. 5. Now you can proceed to code the business logic in the execution function, similar to what we did for the previous action. Copy and paste the below code in the execution function page and click {{%bold%}}Save Script.{{%/bold%}} {{%code class="language-javascript"%}}result = Map(); info productid; info cxemail; info cxdate; info cxaddr; placeorder = Map(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; //Replace the org id of your project in the URL info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); try { //CRMresponse = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/EcomProducts/" + productid // type :GET // connection:"ecommerce" //]; CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts/" + productid type :GET headers:header_data ]; info CRMresponse; if(CRMresponse.isNull() && CRMresponse.getJSON("status") != "error") { stock_count = 0; info "Empty response. So stock count reset"; placeorder.put("Stiock","Empty"); } else { recordid = CRMresponse.getJSON("data").getJSON("id"); stock_count = CRMresponse.getJSON("data").getJSON("Inventory_Count"); imageurl = CRMresponse.getJSON("data").getJSON("Product_image_url"); productname = CRMresponse.getJSON("data").getJSON("Name"); price = CRMresponse.getJSON("data").getJSON("Price"); } } catch (e) { info e.lineNo; // Displays line number of the statement that caused the error info e.message; // Displays the error message info e; // Displays both line number and error message } if(stock_count > 0) { stock_count = stock_count - 1; reduceStock = Map(); reduceStock.put("id",recordid); reduceStock.put("Inventory_Count",stock_count); updatedata = list(); updatedata.add(reduceStock); updatedatamap = Map(); updatedatamap.put("data",updatedata); //updateResp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/EcomProducts" // type :PUT // parameters:updatedatamap.toString() // connection:"ecommerce" //]; updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts" type :PUT parameters:updatedatamap.toString() headers:header_data ]; info updateResp; //info zoho.crm.updateRecord("EcomProducts",productid,reduceStock); placeorder.put("Name",productname + " " + cxdate); placeorder.put("Product_Name",productname); placeorder.put("Email",cxemail); placeorder.put("Delivery_Address",cxaddr); placeorder.put("Expected_Delivery_Date",cxdate.toDate("yyyy-mm-dd")); info toDate(cxdate,"yyyy-mm-dd"); info toDate(cxdate,"MM,d,yyyy"); placeorder.put("product_image_url",imageurl); placeorder.put("Price",price); placeorder.put("OrderID",productid + "_" + randomNumber(1111111,9999999)); placeorder.put("Order_Status","Reviewing the Order"); info placeorder; insertdata = list(); insertdata.add(placeorder); insertdatamap = Map(); insertdatamap.put("data",insertdata); //insertResp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/Orders" // type :POST // parameters:insertdatamap.toString() // connection:"ecommerce" //]; insertResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :POST parameters:insertdatamap.toString() headers:header_data ]; info insertResp; //info zoho.crm.createRecord("Orders",placeorder); result.put("message","Your order for the product - " + CRMresponse.getJSON("data").getJSON("Name") + " is placed successfully. It will be tried to be delivered on " + cxdate + " to " + cxaddr + " . Our Sales team will reach out to your via email to discuss about COD or prepayment before delivery."); } else if(stock_count == 0) { info "The item is out of stock. Please retry after some days as we restock."; result.put("message","The item is out of stock. Please retry after some days as we restock."); } else { result.put("message","There was some issue during the order. Please contact support team. They shall assist in placing this order for you."); } info stock_count; //zoho.crm.updateRecord("EcomProducts",productid, <KEY-VALUE>) //result.put("message","Function executed successfully"); broadcast.put("cxemail",cxemail); result.put("broadcast",broadcast); return result; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} Please make sure to replace the org ID of your project in line 9 and then save the script.{{%/note%}} 6. Similar to the previous action, you can {{%link href="/en/convokraft/help/actions/test-an-action/" %}}test the action{{%/link%}} simultaneously from the ConvoKraft Deluge editor and then click {{%bold%}}DONE{{%/bold%}}. ### View Order Details 1. Create a new action, and choose to configure a response based on business logic. Name it as "View Order Details". 2. Add the following {{%link href="/en/convokraft/help/actions/define-sample-sentences/" %}}sample sentences{{%/link%}} for the action : * "Where is my order?" * "I want to view my order details of email id amelia.burrows@zylker.com" * "I want to check my order details" 3. Define the params specified below for the action as discussed in the last section. You can associate the params with the sample sentence as shown in the screenshot above and click {{%bold%}}Save{{%/bold%}}. <table class="content-table"> <thead> <tr> <th>Param Type</th> <th>Name</th> <th>Prompt message</th> <th>Prompt message for validation failure</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>{{%badge%}}cxemail{{%/badge%}}</td> <td>Please provide the email ID associated with your order</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> </tbody> </table> 4. After you define the sample sentences and params for the action, the Action's Details page will be displayed. For this action, we will be configuring the {{%link href="/en/convokraft/help/actions/bot-logic/deluge-functions/context-handler-function/" %}}Context handler function{{%/link%}} along with the {{%link href="/en/convokraft/help/actions/bot-logic/deluge-functions/execution-function/" %}}Execution function{{%/link%}} . This is used to store the email address of the user in the {{%link href="/en/convokraft/help/actions/bot-logic/deluge-functions/execution-function/#broadcast" %}}broadcast{{%/link%}} argument of the execution function and instruct the ConvoKraft bot to remember the email address in the further conversations of the chat session instead of prompting from the user every time. Copy and paste the below code in the execution function page and click {{%bold%}}Save Script{{%/bold%}}. {{%code class="language-javascript"%}}result = Map(); // making API call to search specific order details of the given email id //resp = zoho.crm.searchRecords("Orders","(Email:equals:" + cxemail + ")"); //extract required details from the JSON response //info resp; cardlist = List(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); //resp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v3/Orders/search?criteria=" + "((Email:equals:" + cxemail + "))" // type :GET // connection:"ecommerce" //]; resp = invokeurl [ url :"https://www.zohoapis.com/crm/v4/Orders/search?criteria=" + "((Email:equals:" + cxemail + "))" type :GET headers:header_data ]; info resp; items_count = 0; if(!resp.isEmpty()) { for each order in resp.getJSON("data") { items_count = items_count + 1; info "+++++++++++"; // info order; orderid = order.getJSON("id"); //CRMresponse = invokeurl //[ // url :"https://www.zohoapis.com/crm/v3/Orders/" + orderid // type :GET // connection:"ecommerce" //]; CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v3/Orders/" + orderid type :GET headers:header_data ]; name = order.getJSON("Name"); contact = order.getJSON("Contact_No").toString(); email = order.getJSON("Email"); product_name = order.getJSON("Product_Name"); orderid = order.getJSON("OrderID").toString(); price = order.getJSON("Price").toString(); delivery_date = order.getJSON("Expected_Delivery_Date"); delivery_address = order.getJSON("Delivery_Address"); order_status = order.getJSON("Order_Status"); //defining the bullet list listItem = Map(); listItem.put("type","list"); listItem.put("format","bullet"); listElements = List(); elem1 = {"label":"Name : " + name}; elem2 = {"label":"Contact No :" + contact}; elem3 = {"label":"Email ID : " + email}; elem4 = {"label":"Product Name : " + product_name}; //elem5 = {"label":"Order ID : " + orderid}; elem6 = {"label":"Total Price : $ " + price}; elem7 = {"label":"Expected Delivery Date : " + delivery_date}; elem8 = {"label":"Delivery Address : " + delivery_address}; elem9 = {"label":"Order Status : " + order_status}; listElements.add(elem1); listElements.add(elem2); listElements.add(elem3); listElements.add(elem4); //listElements.add(elem5); listElements.add(elem6); listElements.add(elem7); listElements.add(elem8); listElements.add(elem9); listItem.put("elements",listElements); //info listItem; // defining the 'image' card // defining the 'note' card productNote = Map(); productNote.put("type","note"); productNote.put("content",items_count + ") Your order details for order id : " + orderid + " are listed as follows: "); cardlist.add(productNote); productPic = Map(); productPic.put("type","image"); productPic.put("content",CRMresponse.getJSON("data").getJSON("product_image_url")); cardlist.add(productPic); cardlist.add(listItem); info "+++++++++++"; } //info cardlist; result.put("card",cardlist); } else { } // defining broadcast broadcast.put("cxemail",email); result.put("broadcast",broadcast); result.put("message","The Shoppers Stores. You don't have an order."); return result; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} Please make sure to replace the org ID of your project in line 9 and then save the script.{{%/note%}} 5. Navigate back to the Action's Details page and enable the {{%bold%}}Context Handler Function{{%/bold%}} as shown in the screenshot below. 6. After you enable the Context handler function, click {{%bold%}}OK{{%/bold%}} in the pop-up that appears in order to proceed further. 7. Now, copy and paste the below code in the Context handler function editor and click {{%bold%}}Save Script{{%/bold%}}. {{%code class="language-javascript"%}} result = Map(); assign = Map(); if(broadcast != null) { //checking whether the 'broadcast' argument has any data cxemailid = broadcast.get("cxemailid"); //fetching the 'cxemailid' value from 'broadcast' assign.put("cxemailid",cxemailid); //assigning the cxemailid's value to the 'cxemailid' param result.put("assign",assign); result.put("todo","execute"); // jumps to the execution function } result.put("todo","prompt"); return result; {{%/code%}} 8. Click {{%bold%}}Test this action{{%/bold%}} and test the updated configurations of this action similar to the previous actions. 9. After you test the changes, click {{%bold%}}DONE{{%/bold%}}. ### Change Delivery Address 1. Similar to the actions created above, we will be configuring the response of this action to be based on a business logic. Enter the name of the action as "Change Delivery Address". For this action, you can define the sample sentences given below : * "I want my order to be delivered at a different address" * "I want to change delivery address for my order id 5804508000000460006 under the email amelia.burrows@zylker.com" Add the params given below for the action: <table class="content-table"> <thead> <tr> <th>Param Type</th> <th>Name</th> <th>Prompt message</th> <th>Prompt message for validation failure</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>{{%badge%}}cxemail{{%/badge%}}</td> <td>Please provide the email ID associated with your order.</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>{{%badge%}}cxorderid{{%/badge%}}</td> <td>Please enter your Order ID.</td> <td>The entered OrderID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>{{%badge%}}cxaddr{{%/badge%}}</td> <td>Please enter the address where you want the order to be delivered.</td> <td>The entered address is invalid. Please check and retry.</td> </tr> </tbody> </table> You can associate the param "cxemail" to the sample sentence as shown in the screenshot below. 2. After configuring the sample sentences and params, copy and paste the below code in the execution function page and click {{%bold%}}Save Script{{%/bold%}}. {{%code class="language-javascript"%}}result = Map(); //fetching the order's 'id' from the cache argument Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); addrmap = Map(); //addrmap.put("Delivery_Address",cxaddr); //reduceStock = Map(); searchOrderresp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders/search?criteria=((OrderID:equals:" + cxorderid + "))" type :GET headers:header_data ]; recordid = searchOrderresp.getJSON("data").getJSON("id"); addrmap.put("id",recordid); addrmap.put("Delivery_Address",cxaddr); updatedata = list(); updatedata.add(addrmap); updatedatamap = Map(); updatedatamap.put("data",updatedata); updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :PUT parameters:updatedatamap.toString() headers:header_data ]; //making an API call to reschedule the order to given date broadcast.put("cxemail",cxemail); //configuring the 'broadcast' argument result.put("broadcast",broadcast); result.put("message","Your order has been rescheduled successfully."); return result; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} Please make sure to replace the org ID of your project in line 5 and then save the script.{{%/note%}} 3. Again, test the action using {{%bold%}}Test this Action{{%/bold%}} chat window by initiating conversations regarding this action. ### Re-schedule order date 1. Enter the name of the action as "Reschedule order to later date". For this action, you can define the sample sentences given below: * "Reschedule my order to later date" * "Postpone the delivery date of my order" * "I want to change my orders delivery date as 19/07/2023 for my order id 5804508000000460006 of my email amelia.burrows@zylker.com" Add the params below for the action : <table class="content-table"> <thead> <tr> <th>Param Type</th> <th>Name</th> <th>Prompt message</th> <th>Prompt message for validation failure</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>{{%badge%}}cxemail{{%/badge%}}</td> <td>Please provide the email ID associated with your order.</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>{{%badge%}}cxorderid{{%/badge%}}</td> <td>Please enter your Order ID.</td> <td>The entered OrderID is invalid. Please check and retry.</td> </tr> <tr> <td>Date</td> <td>{{%badge%}}cxdate{{%/badge%}}</td> <td>Mention the date you would like to reschedule your order</td> <td>The entered date is invalid. Please check and retry.</td> </tr> </tbody> </table> You can associate the params as shown in the screenshot below and click {{%bold%}}Save{{%/bold%}}. 2. After configuring the sample sentences and params, copy and paste the below code in the execution function page and click {{%bold%}}Save Script{{%/bold%}}. {{%code class="language-javascript"%}}result = Map(); //fetching the order's 'id' from the cache argument Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); searchOrderresp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders/search?criteria=((OrderID:equals:" + cxorderid + "))" type :GET headers:header_data ]; info searchOrderresp; recordid = searchOrderresp.getJSON("data").getJSON("id"); info recordid; datemap = Map(); datemap.put("id",recordid); datemap.put("Expected_Delivery_Date",cxdate.toDate()); info datemap; updatedata = list(); updatedata.add(datemap); updatedatamap = Map(); updatedatamap.put("data",updatedata); updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :PUT parameters:updatedatamap.toString() headers:header_data ]; info updateResp; //making an API call to reschedule the order to given date broadcast.put("cxemail",cxemail); //configuring the 'broadcast' argument result.put("broadcast",broadcast); result.put("message","Your order has been rescheduled successfully."); return result; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} Please make sure to replace the org ID of your project in line 5 and then save the script.{{%/note%}} 3. Again like the previous actions, you can test this action as well and click {{%bold%}}DONE{{%/bold%}}. Now, we have configured all the required actions and the business logic for them. -------------------------------------------------------------------------------- title: "Create custom modules in CRM" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/create-custom-modules-in-crm/" service: "All Services" related: - CRM Custom Modules (https://help.zoho.com/portal/en/kb/crm/customize-crm-account/customizing-modules/articles/customize-modules#Custom_Modules_or_User-Generated_Modules) -------------------------------------------------------------------------------- # Create Custom modules in CRM Modules in {{%link href="https://help.zoho.com/portal/en/kb/crm/getting-started/articles/get-started-introduction-zoho-crm#What_is_CRM" %}}Zoho CRM{{%/link%}}, let you categorize and track various aspects of your business. We will be creating two custom modules namely **EcomProducts** and **Orders** for storing the product inventory and the orders placed respectively. You can learn more about custom modules from the {{%link href="https://help.zoho.com/portal/en/kb/crm/customize-crm-account/customizing-modules/articles/customize-modules#Custom_Modules_or_User-Generated_Modules" %}}CRM documentation{{%/link%}}. To create a custom module in CRM, follow these steps: 1. {{%link href="https://www.zoho.com/crm/login.html" %}}Login{{%/link%}} to your Zoho CRM account. 2. Click {{%bold%}}Setup{{%/bold%}} in the top right corner of the dashboard as shown in the screenshot below, and under the {{%bold%}}Customization{{%/bold%}} section, click {{%bold%}}Modules and Fields{{%/bold%}}. <br /> 3. Click {{%bold%}}New Module{{%/bold%}}. <br /> #### EcomProducts This module is used to store the details of various products available in the ecommerce online store. Please make sure to add the fields given below for the {{%badge%}}EcomProducts{{%/badge%}} custom module. <table class="content-table"> <thead> <tr> <th>Field Name</th> <th>Type</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}EcomProductName{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}Product_image{{%/badge%}}</td> <td>URL</td> </tr> <tr> <td>{{%badge%}}Price{{%/badge%}}</td> <td>Number</td> </tr> <tr> <td>{{%badge%}}Inventory Count{{%/badge%}}</td> <td>Number</td> </tr> <tr> <td>{{%badge%}}EcomProduct Owner{{%/badge%}}</td> <td>Lookup</td> </tr> </tbody> </table> You can simply drag and drop the field type to add a new field. <br /> After you add the fields, click {{%bold%}}Save{{%/bold%}}. Provide the module name as "EcomProducts" and select the module permission as {{%bold%}}Administrator{{%/bold%}} as shown in the screenshot below. <br /> You can create any number of products by adding them as records in the module. Click on {{%bold%}}Create EcomProduct{{%/bold%}} and provide the details for the fields, and click {{%bold%}}Save{{%/bold%}}. <br /> The products created under EcomProduct module will be listed as shown in the screenshot below. <br /> #### Orders This module is created to store the order details of your ecommerce online store. Create this new module similarly mentioned before and name it "Orders". You can then configure the fields listed below for this custom module : <table class="content-table"> <thead> <tr> <th>Field Name</th> <th>Type</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}Order Name{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}Contact_No{{%/badge%}}</td> <td>Phone</td> </tr> <tr> <td>{{%badge%}}Product_Name{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}OrderID{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}Price{{%/badge%}}</td> <td>Number</td> </tr> <tr> <td>{{%badge%}}Expected_Delivery_Date{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}Delivery_Address{{%/badge%}}</td> <td>Multi Line</td> </tr> <tr> <td>{{%badge%}}Order Owner{{%/badge%}}</td> <td>Lookup</td> </tr> <tr> <td>{{%badge%}}Email Opt Out{{%/badge%}}</td> <td>Checkbox</td> </tr> <tr> <td>{{%badge%}}Order_Status{{%/badge%}}</td> <td>Single Line</td> </tr> <tr> <td>{{%badge%}}Product_Image{{%/badge%}}</td> <td>Image Upload</td> </tr> <tr> <td>{{%badge%}}product_image_url{{%/badge%}}</td> <td>URL</td> </tr> </tbody> </table> Whenever the user places an order, by conversing with the bot an entry will be automatically made in this module, i.e., the record will be created. <br /> The record details will look like this : {{%note%}}{{%bold%}}Note :{{%/bold%}} Please make sure you use the exact same names for the fields, as we have used them in our bot's business logic.{{%/note%}} -------------------------------------------------------------------------------- title: "Initialize the project" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/initialize-project/" service: "All Services" related: - Initialize Resources (/en/cli/v1/initialize-resources/introduction) -------------------------------------------------------------------------------- # Initialize the Project from the CLI After configuring the actions for a bot and coding the business logic for them, we will proceed to code the client application to embed the bot. We will be using the {{%link href="/en/cloud-scale/help/web-client-hosting/introduction/"%}}Catalyst Web Client Hosting{{%/link%}} component to host the client application in this tutorial. In order to code the Catalyst functions, we will need to first initialize the project from the {{%link href="/en/cli/v1/login/login-from-cli/" %}}Catalyst CLI{{%/link%}}. The first step is to {{%link href="/en/cli/v1/login/login-from-cli/" %}}login to the CLI{{%/link%}} and {{%link href="/en/cli/v1/initialize-resources/introduction" %}}initialize the project{{%/link%}} in an empty local directory. This will be the home directory of your project and all of the project files will be saved in it. You can learn more about the project directory structure for all programming stacks supported by Catalyst from {{%link href="/en/cli/v1/project-directory-structure/introduction/"%}}this page{{%/link%}}. You can learn about initializing a Catalyst project in detail from the {{%link href="/en/cli/v1/initialize-resources/introduction" %}}CLI help documentation{{%/link%}}. Please follow the steps listed below to initialize the project and create the required functions and client components: 1. Create a folder for the project on your local machine and navigate to it from the CLI terminal. 2. To initialize the project, please execute the following command: {{%cli%}}catalyst init{{%/cli%}} 3. The CLI will now ask you to select the {{%link href="/en/getting-started/catalyst-organizations/#the-default-organization" %}}default Catalyst organization{{%/link%}}. Select the organization in which you created the project in the first step of this tutorial and press **Enter**. <br /> {{%note%}}{{%bold%}}Note :{{%/bold%}} To know the organization in which your project resides in, please refer to the steps in {{%link href="/en/getting-started/catalyst-organizations/#access-the-multi-org-portal" %}}this page{{%/link%}}.{{%/note%}} 4. You can associate the current project directory with the Catalyst project you created in this organization. Select **Ecommerce** and press **Enter**. <br /> 5. Select the components that you need to set up for your Catalyst application. Navigate through the options using the arrow keys and select them by pressing space bar. Select **Client** and press **Enter** to confirm your choice. <br /> 6. The CLI will initiate the client setup next. Select **Basic web app** as your client type. <br /> 7. Enter **ecommerceclient** as the name of the client package and then press **Enter**. You can enter any name you need. <br /> The client directory will be created in the standard structure and will look like this : <br /> Catalyst initialization is now complete. The project directory will contain the client and other project dependency files. -------------------------------------------------------------------------------- title: "Configure the client" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/configure-client/" service: "All Services" related: - ConvoKraft JS SDK (/en/convokraft/sdk/js/overview/) -------------------------------------------------------------------------------- # Configure the Client Lets now configure the client component. The client directory you initialized will contain: * The {{%badge%}}index.html{{%/badge%}} file for the HTML code of the frontend application * The {{%badge%}}main.css{{%/badge%}} for the CSS code * The {{%badge%}}main.js{{%/badge%}} file for the JavaScript code * The {{%badge%}}client-package.json{{%/badge%}} configuration file You can download this zip, copy all the files in it and replace them with the default client files created in your client directory. This {{%link href="https://github.com/catalystbyzoho/tutorial-convokraft" %}}git repository{{%/link%}} contains additional files besides the default ones. We have the entire client code, and the required images and icon files all packed in this, you can simply download it as a zip file. {{%note%}}{{%bold%}}Note :{{%/bold%}} Please go through the code in each file to make sure you fully understand it.{{%/note%}} Catalyst enables you to host the client part of the web application using the {{%link href="/en/cloud-scale/help/web-client-hosting/introduction/" %}}Catalyst Web Client Hosting{{%/link%}} component. We will be deploying the client to the console in the {{%link href="/en/tutorials/ecommerce-bot/deluge/deploy-to-console/" %}}next step{{%/link%}} of the tutorial. ### Embed the bot in the website In order to embed the ConvoKraft bot in your application, please make sure you add the javascript code snippet given below in the about.html file in your client directory and save it. We also offer a {{%link href="/en/convokraft/sdk/js/overview/" %}}ConvoKraft Javascript SDK{{%/link%}} package which contains pre-defined methods that can be quickly incorporated in your client application to customize the appearance of your ConvoKraft bot. {{%code class="language-xml" scroll="set-scroll" %}}&lt;script src="https://console.catalyst.zoho.com/convokraft/assets/js/convokraft-chat-sdk.js"&gt; &lt;/script&gt; &lt;style&gt; div.anchor_zia_toBottom { width: 330px; height: 450px; position: fixed; bottom: 0; right: 0; } &lt;/style&gt; &lt;div class="anchor_zia_toBottom"&gt; &lt;convokraft-chat-bot bot-name="ecommercebot_2" project-id="10644000000029001" org-id="74779991"&gt; &lt;/convokraft-chat-bot&gt; &lt;/div&gt; {{%/code%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} When you replace the files in the zip the above code snippet will already be present in the {{%badge%}}about.html{{%/badge%}} file. You will just have to add the correct values for the{{%badge%}}bot-name{{%/badge%}}, {{%badge%}}project-id{{%/badge%}} and {{%badge%}}org-id{{%/badge%}} attributes in the above code. {{%/note%}} Open the EcommerceBot in the console and the Bots Details page, the namespace of the bot is the value of this {{%badge%}}bot-name{{%/badge%}} attribute. {{%link href="https://console.catalyst.zoho.com/baas/74779991/project/10644000000029001/Development#/convokraft/bots/50803000000018005" break="true"%}}https://console<span></span>.catalyst.zoho.com/baas/74779991/project/10644000000029001/Development#/convokraft/bots/50803000000018005{{%/link%}} Here "74779991" is the {{%badge%}}orgID{{%/badge%}} and "10644000000029001" is the {{%badge%}}projectID{{%/badge%}}. -------------------------------------------------------------------------------- title: "Deploy to console" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/deploy-to-console/" service: "All Services" related: - Deploy Catalyst Project (/en/cli/v1/deploy-resources/introduction/) -------------------------------------------------------------------------------- # Deploy to console To host the client application and test the functioning of the embedded bot directly in the application, you will first need to deploy the project to the console. 1. To {{%link href="/en/cli/v1/deploy-resources/introduction/" %}}deploy your Catalyst project{{%/link%}} from the CLI, run the following command in your terminal from your project directory : {{%cli%}}catalyst deploy{{%/cli%}} You can access the hosted URL to view the client application. {{%note%}}{{%bold%}}Note :{{%/bold%}} The ecommerce bot will not displayed in the client application in this step, since we have not deployed it to production yet.{{%/note%}} -------------------------------------------------------------------------------- title: "Train and test the bot" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/train-and-test-the-bot/" service: "All Services" related: - Manage Bot (/en/convokraft/help/manage-a-bot/test-a-bot/) -------------------------------------------------------------------------------- # Train and Test the Bot After you create the required actions and configure the business logic for them, you can {{%link href="/en/convokraft/help/manage-a-bot/train-a-bot/" %}}train{{%/link%}} and {{%link href="/en/convokraft/help/manage-a-bot/test-a-bot/" %}}test the bot{{%/link%}} with all the actions. Training enables the bot to to analyze the common invocation patterns and the configurations made to the specific actions, and it enhances its NLP abilities. You can train the bot from the Bots Details page by clicking **Train**. This will initiate the training process by Catalyst in the background. After the bot has been trained successfully, you will be prompted with a status message. You can then test the bot by clicking **Test this Bot** in the minimized window below. <br/> You can either choose to pick a task from the suggestion shown or initiate a fresh conversations in the chat window. <br/> Let's test one of the actions configured. Choose **View my Order Details**. When you enter the associated email ID of the particular order, the bot fetches the relevant details from the Orders module in CRM. <br/> You can similarly test the other actions as required, before proceeding to deploy the bot to production. -------------------------------------------------------------------------------- title: "Deploy to production" description: "Configure a conversational sales assitant bot for an ecommerce website using Catalyst ConvoKraft, using Deluge functions, and Zoho CRM that will interact with the website users, and manage their orders." last_updated: "2026-03-18T07:41:08.678Z" source: "https://docs.catalyst.zoho.com/en/tutorials/ecommerce-bot/deluge/deploy-to-production/" service: "All Services" related: - Development Environment (/en/deployment-and-billing/environments/development-environment/) - Production Environment (/en/deployment-and-billing/environments/production-environment/) -------------------------------------------------------------------------------- # Deploy to Production After you have tested the ecommerce bot in the development environment, you can proceed to {{%link href="/en/deployment-and-billing/environments/introduction/" %}}deploy the bot to the production environment{{%/link%}}. This is done by {{%link href="/en/convokraft/help/manage-a-bot/deploy-a-bot/" %}}deploying the specific ConvoKraft bot{{%/link%}} alone, and then the entire project to production to enable the deployment of the associated function. 1. To deploy the bot to the production environment, navigate to the bot's details page and click **Deploy to Production**. <br/> 2. In the **Deploy to Production** dialog box, select all the updated actions and choose the release type as **Major**. You could also add descriptive release notes, if required. <br/> 3. Next, we will need to deploy the Catalyst project to production. Please refer to {{%link href="/en/deployment-and-billing/environments/deployment-types/" %}}this page{{%/link%}} for detailed steps on Catalyst deployment. After you have deployed your project to production, you can switch to production environment directly from the console as shown in the screenshot below. <br/> You can also check the {{%link href="/en/convokraft/help/manage-a-bot/usage-stats/" %}}usage stats{{%/link%}} of your bot after you start using it by clicking the **Usage stats** tab in the bot's Details page. The ConvoKraft ecommerce bot is now live and functional. <br/> {{%note%}} {{%bold%}}Note:{{%/bold%}} The Client and Usage Stats tabs are enabled only in the production environment. Now, you can access the {{%link href="/en/tutorials/ecommerce-bot/deluge/deploy-to-console/" %}}client URL{{%/link%}} to view the complete application and the ConvoKraft bot will be {{%link href="/en/tutorials/ecommerce-bot/deluge/configure-client/" %}}embedded{{%/link%}} in it. {{%/note%}}