Kaizen 249: Build an AI Room Recommendation Assistant with CRM Widgets, Catalyst, and Zia Agent

Kaizen 249: Build an AI Room Recommendation Assistant with CRM Widgets, Catalyst, and Zia Agent



Welcome to another week of Kaizen!

This Kaizen post is inspired in part by Zoho CRM’s hospitality use-case article, which presents a broader AI-powered CRM approach for guest personalization and hotel operations. That use case spans additional scenarios such as identity validation, self check-in, and competitor bench marking, whereas this Kaizen focuses specifically on building a guest room recommendation assistant using Zoho CRM Widgets, Catalyst, and Zia Agents.
In the hospitality business, every guest interaction is an opportunity to create a lasting impression. Returning guests expect hotels to remember their preferences, anticipate their needs, and personalize each stay.

Business Problem

Imagine a front desk executive opening a guest's CRM record before check-in. The CRM record contains details from previous stays, room preferences, and special requests. 
Consider this guest profile of Ms. Elene Martinez.


These are the key points the record:
  1. 5 previous stays
  2. High lifetime spend
  3. A preference for rooms near elevator
The hotel has dozens of available rooms. If dozens of rooms are available, which one should be assigned to her?
While all the required data already exists in CRM, the executive still has to review the guest profile manually, compare it against available rooms, remember special requests, and make the best possible decision. This process is time-consuming and tedious.

Solution

Instead of relying on manual analysis, we can delegate this reasoning to an AI agent. A front desk executive can simply click the button AI Room Recommendation Then, by clicking on Analyze Guest, the user can trigger a Zia Agent that will review the guest profile, evaluate the available rooms, and generate a recommendation within seconds.
In this Kaizen post, we will combine Zoho CRM Widgets, Catalyst Functions, Catalyst Connections, and Zia Agent to build an intelligent assistant that generates personalized room recommendations directly inside Zoho CRM.
We will place a custom button, AI Room Recommendation, inside the Contact record. When clicked, it opens a CRM widget where the executive can analyze the guest and view the recommendation.
When the front desk executive clicks Analyze Guest, the system will:
  1. Identify the current guest
  2. Retrieve the guest profile from CRM
  3. Send the guest context to a Zia Agent
  4. Allow the agent to fetch additional CRM data using CRM tools
  5. Generate a personalized room recommendation
  6. Display the result inside the CRM widget


Architecture

This solution has four parts:
  1. Zoho CRM Widget – captures the current Contact ID and displays the recommendation
  2. Catalyst Advanced I/O Function – receives the Contact ID and triggers the Zia Agent
  3. Catalyst Connection – securely manages authentication for the Zia Agent API
  4. Zia Agent – fetches CRM data, reasons over guest preferences and room availability, and returns the recommendation as HTML

Although a Zia Agent can be invoked directly from a custom button, in this solution we use a Zoho CRM widget and Catalyst function. This gives us more flexibility for future customization, such as returning additional data like the recommended room ID, integrating a booking action, applying business rules, etc.

Implementation

Step 1 – Create a Zia Agent

Create a Zia Agent that can recommend the best room for a guest based on their CRM profile. 
The agent should have access to the required CRM tools, such as:
  1. crm_getRecordById to fetch the Contact record
  2. crm_getRecords to retrieve records from the rooms module

Agent Prompt:
The prompt is sent from the Catalyst Function.

Agent Instructions:
Provide agent instructions based on your module and field details.
**Guest Profile Data Structure (from Contacts module):**

Each guest profile has these fields:
- First_Name: Guest's first name (e.g., "Michael")
- Last_Name: Guest's last name (e.g., "O'Brien")
- Full_Name: Combine First_Name + " " + Last_Name for display
- Email: Guest's email address
- Phone: Guest's phone number
- Loyalty_Tier: Diamond, Platinum, Gold, Silver, Bronze
- Total_Stays: Number of completed stays
- Lifetime_Spend: Total revenue from this guest in USD
- Last_Stay_Date: Date of most recent stay (YYYY-MM-DD)
- Preferred_Room_Type: Guest's preferred room category
- Past_Upgrade_Acceptance: Always, Sometimes, Never
- Floor_Preference: High Floor, Mid Floor, Low Floor, Any Floor
- Room_Location_Preference: Quiet Area, Near Elevator, Pool View, Garden View, Ocean View, Beach View, City View
- Special_Requests: Any special requests (multi-line text)
- RFM_Score: Combined Recency, Frequency, Monetary score (max 15)

**Available Rooms Data Structure (from Rooms module):**

Each room in the availableRooms list has these fields:
- Name: The room's display name
- Room_Number: Physical room number
- Room_Type: Category (e.g., "Ocean Suite", "Executive Suite")
- Floor_Number: The floor the room is on
- Building_Wing: Building identifier
- Max_Occupancy: Maximum guests allowed
- Base_Price: Nightly rate in USD
- View_Type: View from the room (e.g., "Ocean", "City", "Garden")

You can test the agent directly in the test bed.



Once the response is validated, Deploy the agent using connection to Zoho CRM.
Deploying the agent creates a new Agent Version that can be invoked through the Zia Agents Trigger API. Your Catalyst function calls this deployed version whenever a user clicks Analyze Guest in the CRM widget.
In the deployed Zia Agent configuration, these CRM tools, crm_getRecordById  and crm_getRecords, are attached to the agent, so when the Catalyst function triggers the agent with the Contact ID, the agent can independently fetch both the guest detail from Contacts module and the available room inventory from Rooms module.

Step 2 – Create the Catalyst Project

Create a Catalyst project to host the server-side logic.
In this solution, a Catalyst Advanced I/O Function (NodeJS stack)  is used to:
  1. receive the Contact ID from the CRM widget
  2. invoke the Zia Agent
  3. return the generated HTML back to the widget
Using a Catalyst function keeps the widget free from business logic. It is also easier to maintain and avoids exposing credentials in the browser.  Since the Zia Agent response is asynchronous, the Catalyst function is a good place to handle the request lifecycle and error management. You can find the Catalyst function call in the Kaizen github repository. Replace the Zia Agent org id and api end point in the function.
 
Expose the Advanced I/O Function through Catalyst > Cloud Scale > API Gateway.
This provides an endpoint that can be called directly from the CRM widget.

Step 3 – Secure Authentication with Catalyst Connections

The Catalyst function needs to invoke a protected Zia Agent API. Instead of embedding OAuth tokens in code, we will create a Catalyst Connection. Create a Connection "ziaagent" in Catalyst for Zia Agent.
Grant the required scope: ZiaAgents.agents.TRIGGER


This keeps authentication centralized and secure.

Step 4 – Create the CRM widget

We use a button-type CRM widget because we want the recommendation to appear directly alongside the guest record.
Using the Widget SDK, the current Contact ID is captured.

When the user clicks “Analyze Guest” in the widget, it shows a loading message and sends a POST request to your Catalyst serverless function endpoint with { contactId } as JSON.  When the Catalyst function returns a successful response, the widget renders the returned HTML on the screen. You can find the widget code in Kaizen github repository. Replace with the Catalyst serverless function URL in the widget code.

The widget sends only one value:
Contact ID
The Catalyst function forwards it to the Zia Agent:
systemArgs: {
    crm_getRecordById: {
        record_id: contactId
    }
}
As the response is rendered inside a CRM widget, the Zia Agent is instructed to return HTML instead of Markdown. This allows the widget to display the recommendation directly without any additional parsing or formatting.

Final Experience   

Now, when the front desk executive clicks Analyze Guest, the assistant:
  1. reviews the guest profile
  2. reasons over CRM and room availability data
  3. recommends the best available room
  4. explains the rationale behind the choice
  5. suggests alternative options
All of this happens within a few seconds, directly inside Zoho CRM.

Conclusion   

By combining Zoho CRM widgets, Catalyst function, Catalyst Connections, and Zia Agent, we built an AI-powered assistant that transforms guest data into actionable recommendations without leaving CRM.

Although our example focuses on hospitality, the same architecture can power intelligent assistants for sales, customer support, insurance, healthcare, and many other domains where AI needs to reason over CRM data. For example:
  1. Sales: An AI sales coach that analyzes customer interactions, open deals, past purchases, and activities to recommend the next best action, identify upsell opportunities, or generate personalized follow-up emails.
  2. Customer Support: A support assistant that reviews previous tickets, product history, and customer sentiment to suggest troubleshooting steps, draft responses, or recommend escalation when necessary.
  3. Insurance: An underwriting or claims assistant that retrieves policy details, claim history, and customer interactions to summarize cases, identify missing documents, and recommend the next processing step.
  4. Healthcare: A patient engagement assistant that uses appointment history, care plans, and previous interactions to generate follow-up recommendations, appointment reminders, or personalized wellness guidance.
We hope this Kaizen post is useful. If you have questions or suggestions, share them in the comments. 


    Access your files securely from anywhere


            All-in-one knowledge management and training platform for your employees and customers.






                                  Zoho Developer Community




                                                        • Desk Community Learning Series


                                                        • Digest


                                                        • Functions


                                                        • Meetups


                                                        • Kbase


                                                        • Resources


                                                        • Glossary


                                                        • Desk Marketplace


                                                        • MVP Corner


                                                        • Word of the Day


                                                        • Ask the Experts



                                                                  • Sticky Posts

                                                                  • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                                    Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                                  • Kaizen #226: Using ZRC in Client Script

                                                                    Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                                  • Kaizen #222 - Client Script Support for Notes Related List

                                                                    Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                                  • Kaizen #217 - Actions APIs : Tasks

                                                                    Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                                  • Kaizen #216 - Actions APIs : Email Notifications

                                                                    Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are


                                                                  Manage your brands on social media



                                                                        Zoho TeamInbox Resources



                                                                            Zoho CRM Plus Resources

                                                                              Zoho Books Resources


                                                                                Zoho Subscriptions Resources

                                                                                  Zoho Projects Resources


                                                                                    Zoho Sprints Resources


                                                                                      Qntrl Resources


                                                                                        Zoho Creator Resources



                                                                                            Zoho CRM Resources

                                                                                            • CRM Community Learning Series

                                                                                              CRM Community Learning Series


                                                                                            • Kaizen

                                                                                              Kaizen

                                                                                            • Functions

                                                                                              Functions

                                                                                            • Meetups

                                                                                              Meetups

                                                                                            • Kbase

                                                                                              Kbase

                                                                                            • Resources

                                                                                              Resources

                                                                                            • Digest

                                                                                              Digest

                                                                                            • CRM Marketplace

                                                                                              CRM Marketplace

                                                                                            • MVP Corner

                                                                                              MVP Corner









                                                                                                Design. Discuss. Deliver.

                                                                                                Create visually engaging stories with Zoho Show.

                                                                                                Get Started Now


                                                                                                  Zoho Show Resources

                                                                                                    Zoho Writer

                                                                                                    Get Started. Write Away!

                                                                                                    Writer is a powerful online word processor, designed for collaborative work.

                                                                                                      Zoho CRM コンテンツ




                                                                                                        Nederlandse Hulpbronnen


                                                                                                            ご検討中の方





                                                                                                                      • Recent Topics

                                                                                                                      • Analytics Dashboard User Filters Default Value

                                                                                                                        User Filters on Dashboard do not allow Unknown to be set as a default filter value. I have to include NULL values in my dashboard among other values but I can't include NULL/Unknown by default in Dashboard User Filters.
                                                                                                                      • Horrible download speed

                                                                                                                        Using a trial of Zoho Assist and downloading a 316 MB file on a 500/500 fibre connection to a remote computer on the same network took 7 mins to complete. On AnyDesk it took 1 min or so.
                                                                                                                      • How to Backup Zoho to PST?

                                                                                                                        I'm looking for a simple way to backup Zoho Mail emails to PST format. I tried the IMAP method with Outlook, but it seems slow and complicated for large mailboxes. I need a solution that can: Export Zoho emails to PST Preserve attachments and folder hierarchy
                                                                                                                      • Frustrated with Zoho Assist QuickSUpport

                                                                                                                        Trialling Zoho Assist and I have a variety of clients. A lot are computer illiterate. Some have poor vision. The current support sessions are using apps which have desktop icons for the appropriate apps. I either connect on demand then the client approves
                                                                                                                      • Zoho Books | Product updates | August 2026

                                                                                                                        Hello users, July has been an exciting month for Zoho Books! This month, we're excited to introduce HTML PDF Templates, Placeholders as Pills, expanded approval workflows for Sales Returns and Journals, and significant compliance updates across the India,
                                                                                                                      • Action required: WhatsApp now uses BSUID as the primary identifier

                                                                                                                        Important If your support team uses WhatsApp to engage with customers, there is an important platform change you need to know about. BSUID support is now mandatory for all WhatsApp Business Platform partners and businesses. WhatsApp is introducing usernames,
                                                                                                                      • Tip #83- Give Customers a Faster Way to Reach You with the Quick Support Plugin – 'Insider Insights'

                                                                                                                        Hello Zoho Assist Community! Think about the last time a customer needed urgent support. They emailed in, waited for a response, got a session link, couldn't find it in their inbox, called back, and by the time the session actually started, a good chunk
                                                                                                                      • Final Notice: Migrate Your ASAP Mobile SDK by August 31

                                                                                                                        Alert August 31, 2026 is the deadline. After this date, older ASAP Mobile SDK versions will no longer work with the ASAP Help Widget. If your app hasn't been migrated to a supported SDK version, users will no longer be able to access the ASAP Help Widget
                                                                                                                      • Approval Process configuration is now more flexible and fully customizable

                                                                                                                        Hello everyone! Zoho CRM's Approval Process is back with a better user experience that makes it easier to add rules to your processes. This enhancement includes some UI updates that help you create highly structured approval stages—and more. Let's look
                                                                                                                      • Kaizen #255 - Building a Real-Time Operational Dashboard with Zoho CRM Queries

                                                                                                                        Hello Everyone, Welcome back to another edition of the Kaizen series, where we uncover powerful ways to extend and customize Zoho CRM. In the previous Query Kaizens, we explored how Queries can retrieve CRM data, invoke REST APIs, and even update CRM
                                                                                                                      • 【Zoho CRM】キオスクに「ループ機能」が追加|同じ処理を繰り返し実行可能に

                                                                                                                        ユーザーの皆さま、こんにちは。 コミュニティグループの中野です。 Zoho CRMのキオスクに、同じ処理を繰り返し実行できる「ループ機能」が追加されました。 これまでは、同じ処理を複数回実行したい場合、同じ設定を繰り返し作成する必要がありました。 ループ機能を使うと、処理を一度設定するだけで、指定した回数や 取得したデータ数に応じて自動的に繰り返すことができます。 目次 ループ機能とは 設定方法 注意点 1. ループ機能とは ループ機能を使うと、キオスク内の画面や処理を指定した条件に応じて繰り返し実行できます。
                                                                                                                      • Es posible cambiar el lenguaje de los modulos del ASAP?

                                                                                                                        Es posible cambiar el lenguaje de estos textos? Tengo Zoho configurado en español pero aun así me muestra estos textos en ingles:
                                                                                                                      • Where do I edit the "Welcome to [portal name]" message

                                                                                                                        I am looking for a way to edit the "Welcome to" part of the message that is seen on the landing page (ex: https://help.zoho.com/portal/en/home). When I use the French interface, it doesn't make sense... I want to change it from "Bienvenue chez" to" Bienvenue au". Thanks!
                                                                                                                      • Zoho ERP | Product updates | July 2026

                                                                                                                        Hello users, We're back with another round of updates to help you streamline your operations. This month's release brings new features and enhancements designed to help you work more efficiently. Read on to discover everything that's new in Zoho ERP this
                                                                                                                      • Automate Backups

                                                                                                                        This is a feature request. Consider adding an auto backup feature. Where when you turn it on, it will auto backup on the 15-day schedule. For additional consideration, allow for the export of module data via API calls. Thank you for your consideration.
                                                                                                                      • Shared Snippets Everyone

                                                                                                                        Hi, Now that the Shared Snippets have been released and I think will be the most used feature implemented in 2023 :) Creating and Using Snippets in Ticket Responses - Online Help | Zoho Desk Maintain consistency in ticket responses with shared snippets
                                                                                                                      • Multi-currency and Products

                                                                                                                        One of the main reasons I have gone down the Zoho route is because I need multi-currency support. However, I find that products can only be priced in the home currency, We sell to the US and UK. However, we maintain different price lists for each. There
                                                                                                                      • Remove "Subject" as a required field on quotations

                                                                                                                        Not sure why, but Zoho has made 'Subject' a system defined required field. I'm not entirely sure why subject would be required as a key field (i.e. you cannot deactivate it or change it from required). It doesn't make much sense on many product quotations,
                                                                                                                      • Displaying only unread tickets in ticket view

                                                                                                                        Hello, I was wondering if someone might be able to help me with this one. We use filters to display our ticket list, typically using a saved filter which displays the tickets which are overdue or due today. What I'd really like is another filter that
                                                                                                                      • Best way to setup Inventory bin tracking for products with multiple boxes/crates

                                                                                                                        Hi - we need some advice from the community on setting up Items in the Inventory for products with multiple crates. We have large products in our warehouse where the product is delivered as two large (double pallet) crates. We've setup the Items for these
                                                                                                                      • Can't find field from ZCRM for a trigger

                                                                                                                        Hello, Currently I am revamping our CRM system and we have created second layouts from to try out new processes while not disrupting the old one. Moreover, we want to use different layouts for different processes. The issue is that when creating the ZCRM
                                                                                                                      • Discount Per Item / Option Removed

                                                                                                                        Hi, I was using Zoho Books for three years now and very saticfied. Now, as we try to add an invoice, we founds that the discount option per item was takn away, and a discount from total was implemented. However, we have cases when we add a diffrent discount to each item. Was this option removed permanently? Thanks, 
                                                                                                                      • Any Possible to change the challan type in Delivery challan ?

                                                                                                                        Hello Team, We need to add the more values in challan type in delivery challan module in Zoho Books.So how to add additional values in challan type field. Please find following snap for your reference. Thanks in Advance, Thisai Moorthy.
                                                                                                                      • Show when an invoice has been viewed

                                                                                                                        It would be nice to know if/when a customer has viewed an invoice. This would mean not having PDF attachments and just have the link to the invoice. My previous invoicing solution had this feature and I did not realize how much I used it until it was gone. Would this be possible, or this already available and I am just missing it?
                                                                                                                      • Customer image field

                                                                                                                        I created a custom image field for estimates, and it works as expected. The only issue I have is that I want to be able to place the custom image field in the estimate invoice. Is there a way I can do that, the field does not give the option to display
                                                                                                                      • Zoho Books | Product updates | March 2026

                                                                                                                        Hello users, We’ve rolled out new features and enhancements in Zoho Books. From Advanced Reporting Tags to the ability to mark projects as completed, explore the latest updates designed to improve your bookkeeping experience. Introducing Advanced Reporting
                                                                                                                      • Separator line

                                                                                                                        Is there a way i can insert a line in an invoice or quote without showing qty or prices? e.g. Options I Item description qty and price Option II Item description qty and price Thanks
                                                                                                                      • All new Address Field in Zoho CRM: maintain structured and accurate address inputs

                                                                                                                        Availability Update: 29 September 2025: It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition exclusively for IN DC users. 2 March 2026: Available to users in all DCs except US and EU DC. 24
                                                                                                                      • BCC Drop Box Centralisation

                                                                                                                        Hi Team, For the last few years, I have had a question related to the Zoho CRM BCC Dropbox feature. Although BCC Dropbox is very useful for tracking customer email communication, I have always wondered why its configuration is managed at the individual
                                                                                                                      • Kiosk Page Refresh

                                                                                                                        We have a Kiosk running from a button in contacts to update values and also add related lists, which works great, but when the kiosk is finished the page does not refresh to show the changes. Is there a way to force the contact to refresh/update when
                                                                                                                      • CRM Integration - Option to Sync Reporting Tags

                                                                                                                        It would be nice to be able to sync reporting tags in Zoho Finance to a custom field in Zoho CRM. My use case is for a Customer in Finance to an Account in CRM (and vice-versa, of course), but I'm sure it's pretty obvious that this could also be used
                                                                                                                      • Join the Zoho Desk Virtual Classroom Training (VCRT)

                                                                                                                        Hello everyone, Have you heard about Zoho's Virtual Classroom Training (VCRT)? Zoho Desk's Virtual Classroom Training offers end-to-end training for Zoho Desk users. Join the VCRT and get hands-on guidance for setting up Zoho Desk and getting your business
                                                                                                                      • Make Rich Text fields available in Canva Print Views

                                                                                                                        Everything is on the title. I don't really understand why this is not already possible as Rich Text Fields are available in Canva Detailed Views for example.
                                                                                                                      • Zoho CRM Approval Process based on Field Update

                                                                                                                        Hello, In current structure, Zoho CRM send records to approval based on record creation and edit.  I think, it should be to set approval process trigger based on any field update in record. When the user update any field, the record can assign to approval
                                                                                                                      • Approve records efficiently: Useful enhancements to My Jobs module and Approval process in Zoho CRM

                                                                                                                        Dear Customers, As you might know, approval process is a process automation tool that allows you to automate approvals in your organization and My Jobs is where you approve requests from a single point of view. Here's how you'd go about it: You’d add
                                                                                                                      • Filter isn't

                                                                                                                        The ability to filter the history of a given flow to a specific status however it would be great to have the ability to filter to a status that isn't something for example if i want to find all history that isn't complete.
                                                                                                                      • Introducing the Store Locator widget

                                                                                                                        Hello everyone! Your website is often the first place customers visit before deciding where to shop. But when they can't quickly find the nearest store, check business hours, or get directions, many leave your website and search elsewhere. Every extra
                                                                                                                      • Important updates to your connectors

                                                                                                                        Hello everyone, Greeting from Zoho Creator! We're excited to announce that we'll be rolling out significant backend updates to Zoho Creator's built-in connectors to enhance security by following the latest frameworks. The existing version of some of the
                                                                                                                      • Important updates to your Salesforce integrations in Zoho Creator

                                                                                                                        Hello everyone, We're writing to inform you of an important change regarding Salesforce integrations in Zoho Creator. Salesforce has introduced new security requirements for third-party platforms that connect with their services via APIs. To comply with
                                                                                                                      • Password Policy in Zoho Mail: Set password rules to keep your organization secure

                                                                                                                        Weak or repetitive passwords are one of the most common causes of unauthorized account access in organizations. Zoho Mail's Password Policy feature allows administrators to define and enforce specific password requirements for all users in the organization,
                                                                                                                      • Next Page