Kaizen 231 - Embedding Zoho Desk Tickets in Zoho CRM

Kaizen 231 - Embedding Zoho Desk Tickets in Zoho CRM



Hello, CRM Wizards!

This week, let us enhance cross-team visibility between Zoho CRM and Zoho Desk.

We will use the Zoho Request Client inside a Related List widget to display open Zoho Desk tickets directly within the Contact record in Zoho CRM. This integration allows Sales and Support teams to access active support issues without switching applications.

Business Problem

At Zylker, a manufacturing company that manages high-value distributors and enterprise buyers, sales operations run in Zoho CRM while customer support manages warranty claims and service issues in Zoho Desk.

This separation creates operational friction during critical customer interactions.

1. Lack of visibility into open support tickets 

Sales representatives cannot see ongoing support tickets when interacting with customers in CRM. This results in: 
  1. Sales conversations happening without awareness of active complaints.
  2. Poor customer experience when unresolved issues surface unexpectedly.
  3. Reduced productivity due to frequent system switching between CRM and Desk.
2. No Controlled Escalation Mechanism

There is no structured way to initiate ticket escalations from within Zoho CRM.

Solution

This week we will focus on solving the visibility gap

We will embed a related list widget within Contact detail page and provide real-time visibility of open tickets

Prerequisites

1. Create Zoho CRM and Zoho Desk under the same Zoho Organization. 

2. A two-way sync between Zoho CRM and Zoho Desk is required to keep Contacts and Accounts consistent across both applications.

With this support, any change made to a Contact or Account in either application is automatically reflected in the other.

Additionally, each record in Zoho Desk stores the corresponding Zoho CRM record ID. This allows you to reference the CRM record directly and perform further customizations or integrations using that unique ID.

Follow the steps to create the two-way sync:
  1. Log into Zoho Desk.
  2. Go to Settings > Integration > Zoho
  3. Choose Zoho CRM and click Integrate
  4. On the Authentication page:
    1. Enter your email address.
    2. Choose the CRM organization you want to integrate with.
  5. Click Authorize.
  6. Once authenticated, the sync configuration page opens.
  7. Select the sync type as Two-way Sync.
  8. Map the fields of Accounts and Contacts modules between Zoho Desk and Zoho CRM.
  9. Click Start Sync to initiate the integration. 

Refer to the Integrating Zoho Desk with Zoho CRM help page for more details. 

3. Create a Zoho Desk connection in Zoho CRM with Desk.tickets.READ and Desk.contacts.READ scopes. 

Refer to the Connections help doc for more information. Store the Connection Link Name to use while making API calls. 


4. Create a local project folder for widget using Zoho CLI as mentioned in Creating your First Widget help guide. 

Step-by-Step Implementation

In the widget project directory, code the following logic in the widget.html file.

Step - 1: Get the Current CRM Contact ID

On page load, you can capture the entity ID with the help of PageLoad event listener. 

Also create a reusable ZRC instance configured with the Zoho Desk base URL and OAuth connection name. 

// Initialize the embedded app
ZOHO.embeddedApp.on("PageLoad", async function(data) {
    console.log("PageLoad data:", data);
    // Step 1: Get the entity (module) and entity ID (Contact record ID)
    if (data && data.Entity && data.EntityId) {
        entityModule = data.Entity;
        entityId = data.EntityId;
        console.log("Entity:", entityModule);
        console.log("Entity ID (CRM Contact ID):", entityId);
        // Create reusable ZRC instance for Zoho Desk API
        deskZrc = zrc.createInstance({
            baseUrl: 'https://desk.zoho.com/api/v1',
            connection: 'desk_oauth_connection'
        });
        await loadTickets();
    } else {
        showError("No contact context found");
    }
});
ZOHO.embeddedApp.init();

Step - 2: Fetch Desk Contacts and Match the CRM Contact ID

Make a GET Contacts API call to the Zoho Desk API using the ZRC instance. Loop through the returned contacts and find the one whose zohoCRMContact.id matches the current CRM Contact ID.

// Step 2: Make GET contacts API call to Desk using ZRC
const contactsResponse = await deskZrc.get('/contacts', {
    params: {
        limit: 100
    }
});
console.log("Desk Contacts Response:", contactsResponse);
if (contactsResponse && contactsResponse.data) {
    // Parse the response data 
    const contactsData = typeof contactsResponse.data === 'string' 
        ? JSON.parse(contactsResponse.data) 
        : contactsResponse.data;
    // Find the object where zohoCRMContact.id matches Contact record ID
    if (contactsData && contactsData.data && Array.isArray(contactsData.data)) {
        const matchingContact = contactsData.data.find(function(contact) {
            return contact.zohoCRMContact && 
                   contact.zohoCRMContact.id && 
                   contact.zohoCRMContact.id === entityId;
        });
        if (matchingContact) {
            // Pick the id (Desk contact record ID)
            const deskContactId = matchingContact.id;
            console.log("Desk Contact ID:", deskContactId);
            // Proceed to fetch tickets
            await fetchTickets(deskContactId);
        } else {
            showEmptyState("No Desk contact found linked to this CRM contact");
        }
    }
}

Step - 3: Fetch Open Tickets and Filter by Desk Contact ID

Make a GET Tickets API call to Zoho Desk with the following parameters:
  1. Specify status with Open value to retrieve only open tickets. 
  2. Specify include with value set to contacts fetch each ticket details with its associated contact details. 
Filter the API response with the matched Desk Contact ID and render the results. 

async function fetchTickets(deskContactId) {
    try {
        // Step 3: Make GET Tickets API call using ZRC 
        const ticketsResponse = await deskZrc.get('/tickets', {
            params: {
                include: 'contacts',
                status: 'Open',
                limit: 100
            }
        });
        console.log("Tickets Response:", ticketsResponse);
        if (ticketsResponse && ticketsResponse.data) {
            const ticketsData = typeof ticketsResponse.data === 'string' 
                ? JSON.parse(ticketsResponse.data) 
                : ticketsResponse.data;
            // Filter tickets where contact matches deskContactId
            if (ticketsData && ticketsData.data && ticketsData.data.length > 0) {
                const matchingTickets = ticketsData.data.filter(function(ticket) {
                    return ticket.contact && ticket.contact.id === deskContactId;
                });
                if (matchingTickets.length > 0) {
                    renderTickets(matchingTickets);
                } else {
                    showEmptyState("No open tickets found for this contact");
                }
            } else {
                showEmptyState("No open tickets found");
            }
        }
    } catch (error) {
        console.error("Error fetching tickets:", error);
        showError("Failed to fetch tickets: " + (error.message || error.toString()));
    }
}

Step - 4: Validate and Pack the Widget

Follow the steps given in the Widget help page to validate and package the widget. A complete working code sample is provided as attachment at the end of this post.

Creating a Related List Widget

1. Go to Zoho CRM > Setup > Developer Hub > Widgets and click Create New Widget.

2. Fill in the required details such as:
  1. Name: Zoho WorkDrive
  2. Type: Related List 
  3. Hosting: Zoho 
  4. File Upload: Upload the ZIP created in the dist folder within the widget project directory after packaging in the Step 4. 
  5. Index page: /widget.html

3. Go to Customization > Modules and Fields > Contacts > Standard > Detail View. Then, create and associate the related list widget. 

Refer to the Customize Related Lists help page for more information on creating a related list.

Try it Out! 

Let us look at the output from the Contacts detail page in Zoho CRM. 


Info
Key Points to Remember
  1. Two-way sync is mandatory to link Desk contacts with CRM contacts. 
  2. Connection setup in Zoho CRM for Desk is mandatory with Desk.tickets.READ and Desk.contacts.READ scopes. Ensure to replace the connection name in line 21.
  3. If the account has a large number of contacts or tickets, implement pagination using from and limit parameters to ensure all records are evaluated. 
  4. Ensure to replace the Desk URL to ticket in line 181 with your portal name and company name.
We hope this Kaizen helps your sales team to see active issues instantly. Next week, we will look at how to establish a ticket escalation mechanism from Zoho CRM

Have questions or suggestions? Drop them in the comments or write to us at  support@zohocrm.com

On to Better Building!

-----------------------------------------------------------------------------------------------------------

Related Reading 

2. Connections - An Overview
3. CRM Customizations - Related Lists
4. Desk APIs -  GET Tickets API and GET Contacts API
5. Desk Customizations - Integrate Zoho Desk with Zoho CRM
-----------------------------------------------------------------------------------------------------------

    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

                                                                                                                • Knowledgebase SEO

                                                                                                                  We have a custom-domain mapped help center that is not restricted via login. I have some questions: a) will a robots.txt file still allow us to control indexing? b) do we have the ability to edit the sitemap? c) do category URLs get indexed by search
                                                                                                                • VIsual maindmaps in Zoho notebook Ai

                                                                                                                  Can I create and export VIsual maindmaps in Zoho notebook Ai
                                                                                                                • 1stDibs Integration to Zoho Inventory

                                                                                                                  Hello is it possible to integrate my Zoho inventory and 1stDibs?
                                                                                                                • Community Question: Renewal vs Invoicing

                                                                                                                  This is a question for the community. Does anyone else consider there to be a difference between a subscription renewal event and sending out a recurring invoice for a subscription? For example, let's say customer XYZ purchases a 1-year subscription to
                                                                                                                • cloud console support for music websites

                                                                                                                  Hi Friends, I am not from a very technical background.. So need support from the Zoho family. I want to build a e-commerce website which is in Musical Niche. It will help people learn music & play instruments of all types. There are a few players in the market like Chordify , Guitaa, Guitar Dashboard, ChordU & few others. But I all these websites allow only a few instruments  to play. So I want to build a better  website than the one I mentioned. So wnated to know what UI & AI should I use so that
                                                                                                                • Scheduled Reports - Do not send empty report

                                                                                                                  Hello, We are intensively using reports in the CRM, especially for sales managers. When data is empty, they still receive an email. Can you add an option to avoid sending the report when data is empty?
                                                                                                                • Is Zoho One Desktop more secure than Zoho One Web SaaS?

                                                                                                                  Is Zoho One Desktop more secure than using Zoho One in browser? Inherently, it seems desktop would be unless you don't do things like share your pw or leave pc on. I am concerned about data being on the cloud or someone else's server and database.
                                                                                                                • Reminder Settings - Time Tracker

                                                                                                                  On the time tracker in Reminder Settings I created a reminder according to the Zoho manual. But a manager asked me to change the message that goes in the email. Is it possible to change the message? I didn't find that in the Zoho manual. Another question: I configured to receive the reminder everyone who logged in less than 40 hours. Does Zoho consider less than 40 hours of the current week or the whole month? Another situation, I put it so that I and another specific user would receive the notification,
                                                                                                                • Create Item group from a composite Item

                                                                                                                  I have applied my mind for hours but cannot figure this out. Can you have a composite item in an item group?. E.g. We bundle different color and size SKU's together as composite items. Also Using composite items as Bill of Materials. We want to create
                                                                                                                • Main difference of Zoho Recruit Corporte version and Staffing HR vesion

                                                                                                                  Hi Zoho, I need help to fully understand what is the main key point differences of Recruit Corporate version versus the Staffing HR version? We are currently using Corporate HR version and we are looking on having an insightful automated reporting, does
                                                                                                                • Out of Stock items showing in Commerce

                                                                                                                  I have over 6000 items and most are not in stock, but all items are showing up in Commerce whether they are inventory or not. What option or feature can you use to hide items in Commerce at zero or negative quantities? I currently am using Commerce for
                                                                                                                • Is it possible to transfer data from one related list to another within the same module ?

                                                                                                                  In the Leads module, there is an existing default Product related list that already contains data. Recently, I added a custom multi-lookup field, which created a new related list in the same Leads module. Now, I need to move the existing data from the
                                                                                                                • How to implement new online payment gateway?

                                                                                                                  Hello, Can you tell me how to proceed to implement my local payment gateway? DIBS has an open avaiable API that should be easy to implement into ZOHO BOOKS. http://tech.dibspayment.com/dibs_payment_window
                                                                                                                • Formula working in MS Excel , is not working in Zoho Sheets, Filter fuction which is working in MS sheets per the attached workbook / Daily update.

                                                                                                                  Filter function , which is working in MS Excel is not working in Zoho sheets. Please help on function of filter of particular class sheets and extract students name who has more than 3.5 hours of study hours on particular day depending on date in D7 cell.
                                                                                                                • New in Smart Prompt: Record Assistant for contextual assistance, and support for new AI models

                                                                                                                  Smart Prompt helps teams stay informed and move faster by providing relevant suggestions where work happens in CRM. With this update, Smart Prompt becomes more adaptable to your organization’s AI preferences. You can now choose which Large Language Model
                                                                                                                • Improved Integration Failure Information (And Notification Options)

                                                                                                                  Hi, When an attachment service for example fails, you just get "Field x - Error", I can check the field it is failing on and find nothing wrong, same file size, type, dimensions, etc. so more information as to the actual issue would be helpful. And an
                                                                                                                • Change User Role in a Form

                                                                                                                  Hi, When in a form, it would be good (And consistent) to be able to change the user role/permission like you can with Shared Reports, All Entries or the actual User itself, rather than having to delete the users permission and then add it back again with
                                                                                                                • Reassign Partially Saved Entries

                                                                                                                  Hi, I would like to be able to go to Partially Saved Entries and like the option to delete them I would like the option to multi-select and be able to reassign them to another user to complete (Such as when a user has left the company). Thanks Dan
                                                                                                                • Increase the "Maximum Saved Entries per User" Options Limit

                                                                                                                  Hi, You can create lots of saved entries, yet the Limit when you apply one is 25, we may often expect 32 to be in draft, and therefore want to enforce that, can we increase the limit of this field from 25 to 100 (As you can just turn it off and have more
                                                                                                                • Product Updates in Zoho Workplace applications | December 2025

                                                                                                                  Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications this December. Zoho Mail Block emails without notifying the sender Block emails without sending a rejection notification
                                                                                                                • Zoho CRM for Gmail Extension Not Working in Brave Browser?

                                                                                                                  Is anyone able to get the Zoho CRM Chrome Extension working in the Brave browser? They're both built on the Chromium platform and every other Chrome Extension works with the exception of Zoho CRM for Gmail so any ideas here?
                                                                                                                • Set Frozen Cells in the Report Settings

                                                                                                                  Hi, It would be nice to be able to set the frozen cells in the report Settings, and have an option if this is fixed or can be changed after loading (On the next load it still goes back to the Settings). Thanks Dan
                                                                                                                • Microsoft Teams now available as an online meeting provider

                                                                                                                  Hello everyone, We're pleased to announce that Zoho CRM now supports Microsoft Teams as an online meeting provider—alongside the other providers already available. Admins can enable Microsoft Teams directly from the Preferences tab under the Meetings
                                                                                                                • Tip of the week #26: Import/ Export calendars in Zoho Calendar.

                                                                                                                  Any calendar on the web or calendars that you create in any other calendar application can be imported in to Zoho Calendar. This will help you to add the events from the calendars that you import to your Zoho Calendar. You also have the option to export
                                                                                                                • Add Zoho Forms to Zoho CRM Plus bundle

                                                                                                                  Great Zoho apps like CRM and Desk have very limited form builders when it comes to form and field rules, design, integration and deployment options. Many of my clients who use Zoho CRM Plus often hit limitations with the built in forms in CRM or Desk and are then disappointed to hear that they have to additionally pay for Zoho Forms to get all these great forms functionalities. Please consider adding Zoho Forms in the Zoho CRM Plus bundle. Best regards, Mladen Svraka Zoho Certified Consultant and
                                                                                                                • Social icons, open in new tab?

                                                                                                                  Hello, I have two social icons on my footer, Facebook and Psychology Today. Clicking on the Facebook icon opens a new tab, the Psychology Today icon does not. I would like them both to open a new tab. Am I missing a setting somewhere?
                                                                                                                • Real-Time Screen Annotation During Zoho Cliq Screen Sharing

                                                                                                                  Hi Zoho Support Team, Hope you're doing well. We’d like to request the addition of real-time screen annotation tools during screen sharing sessions in Zoho Cliq video calls. 🔍 What We're Looking For: The ability for the presenter—and optionally, other
                                                                                                                • Autofill address using smart fields mapped over the pdf document

                                                                                                                  Hi, I'm using mail merge to map smart fields onto PDF documents I plan to distribute for signing. I already have a Zoho Sign subscription. When mapping smart fields from the Employee form, I only see the permanent and current addresses which include the
                                                                                                                • How do I cap employee leave accrual

                                                                                                                  HI there, How do I cap an employee's leave accrual? The policy is that you accrue 15 days leave annually (1.25 days a month) and once you reach 15 days, you wont accrue more until you take leave. Thank you!
                                                                                                                • Open sub form from a button as a popup form

                                                                                                                  Is there a way within a form to use similar code as below to show a button in the form when clicked opens the subform for data to be added to the record being viewed in the form OpenUrl("#Form:<Customer_Delivery_Address>?<Delivery_Address>=" + input.ID,"popup
                                                                                                                • Dont have backup option in setting

                                                                                                                  Hi guys. I started using zoho book a week ago. I bought premium package yet I don't have backup option in setting. I hope anyone can help me find a solution. Thanks in advance
                                                                                                                • Making Tags Mandatory

                                                                                                                  When creating an expense, is it possible to make the Tags field mandatory?  I see the option in settings to make other fields mandatory, like Merchant, Description, Customer, etc, but nothing about Tags. Thanks! Kevin
                                                                                                                • Is there a plan to integrate zoho voice with zoho books?

                                                                                                                  Hello, Is there a plan to integrate zoho voice with zoho books? Right now we are using the Twilio SMS integration into zoho books, but have recently decided to switch to zoho voice for calls and sms. Is there a plan to integrate zoho voice natively into
                                                                                                                • Pass variables to Zoho Desk via URL to create a fast new ticket landing page

                                                                                                                  We are integrating our phone system into Zoho Desk. Currently when a helpdesk agent answers the phone, a soft client opens a new tab with zoho desk at the new case page. https://desk.zoho.com/support/companyname/ShowHomePage.do#Cases/new We would like
                                                                                                                • Zoho Books Extension: What Happens If Custom Fields Already Exist?

                                                                                                                  When developing Zoho Books extensions, what happens if the target Zoho Books organization already has a custom field with the same API name as one defined in the extension? I’m asking because we originally created an on-Books version of this functionality,
                                                                                                                • Modular Permission Levels

                                                                                                                  We need more modular Permissions per module in Books we have 2 use cases that are creating problems We need per module export permission we have a use case where users should be able to view the sales orders but not export it, but they can export other
                                                                                                                • Free Webinar on 21 January: Looking back at Zoho Mail in 2025

                                                                                                                  Hello Zoho Community! Curious about how Zoho Mail evolved in 2025? Wondering how these updates can make your everyday email work simpler? We’ve got a session you won’t want to miss. In our Zoho Mail 2025 recap webinar, we’ll walk you through the key features
                                                                                                                • Cliq Networks users can see all other network users contact information

                                                                                                                  Is there a way to hide user contact information from each user in networks? I would only like the users to see the admin's contact information, not other users. Network users information shared by default
                                                                                                                • Zoho Sheet - Printing - Page Breaks and Printing Customization

                                                                                                                  I think the title is descriptive enough in that I cannot find help documentation on a simple task of adding in page brakes for separating pages on print. Thanks
                                                                                                                • Missing the "Find & Merge Duplicates" choice

                                                                                                                  Hi, I am missing the "Find & Merge Duplicates" choice. I looked under the "More Actions" menu in Contacts, Accounts, Vendors, and Leads and it is not there. I have full permissions. Please assist me on finding this feature. Thanks!
                                                                                                                • Next Page