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

                                                                                                                • Email Authentication is Failing

                                                                                                                  I'm trying to setup gitlab with email authentication. I used the following configs picked up from: https://docs.gitlab.com/omnibus/settings/smtp/ gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.zoho.com" gitlab_rails['smtp_port']
                                                                                                                • DMARC reports for mail I didn't send: how to deal with?

                                                                                                                  I know the enthusiastic amateur's bare minimum about e-mail; am able to set up a Thunderbird account and know the basic acronyms. I have a Zoho Mail account connected to my domain, and have set up SPF, DMARC and DKIM successfully according to Zoho's instruction
                                                                                                                • ms

                                                                                                                  Email set up for communication
                                                                                                                • Fix the speed

                                                                                                                  It takes ages to load on every step even though my dataset is quite small.
                                                                                                                • Image field in custom module

                                                                                                                  Hi guy, Is there any hope of adding a custom image field in the custom module? We created a custom module to keep track of assets, and it would be helpful if we could attach an image to the record. Thanks Rudy
                                                                                                                • Deluge Function to Update Custom Field

                                                                                                                  I'm trying to get a Deluge function (which will run as part of a Schedule in Desk) that retrieves all tickets with the status "Recurring" and updates the custom field checkbox "cf_recurring" to "true". Here's what I have, which doesn't work: searchValue
                                                                                                                • "View ticket" link is broken

                                                                                                                  The "View ticket" link in our Zoho ticketing system confirmation emails is broken (please see attached). Impacts ability to update/review details, and, refresh recollection at a later date. Any help would be much appreciated.
                                                                                                                • import data from Apollo.ai into zoho crm via zoho flow

                                                                                                                  I might be asking this question in the wrong forum. We use Apollo.ai to find potential new leads for our business, there are around 10000 leads that we have initially found. We have an Apollo.ai account but just to do searches, we dont use it as a crm.
                                                                                                                • Can't Figure out Books and level 2 payment data

                                                                                                                  Hello, I am having trouble figuring out how to collect level 2 payment data as required by my payment gateway. Last month it cost us almost $5000 in fees because of this. We are invoicing our clients with books and they pay through the link in that email
                                                                                                                • Woocommerce Line Item Information

                                                                                                                  I'd like to add each line item from a Woocommerce order to a zoho creator form record. The line items are found within the line items array, but I'm not sure how to get each item out of the array? Any help would be much appreciated.
                                                                                                                • Synching changes to Stripe when changes are made in Zoho Billing

                                                                                                                  We have a situation where we have merged customers in Zoho BIlling and then found out later that the payment in Stripe was not updated and still associated with the old customer record. The card gets updated and billed, but that payment is still associated
                                                                                                                • How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.

                                                                                                                  How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.
                                                                                                                • Disable Smart Filters By Default

                                                                                                                  The smart filters "feature" is causing confusion for Zoho Mail users. New emails should be delivered to the inbox unless they have specifically opted to redirect them somewhere else. People don't understand that new emails might be waiting in a random
                                                                                                                • ME SALE ESTE ERROR: No fue posible enviar el mensaje;Motivo:554 5.1.8 Email Outgoing Blocked

                                                                                                                  Ayuda!! Me sale este error al intentar enviar mensajes desde mi correo electronico de Zoho! Tampoco recibo correos pues cuando me envia rebotan. Ayuda, Me urge enviar unos correo importantes!! Quedo atenta MAGDA HERNANDEZ +5731120888408
                                                                                                                • Zoho Mail not working

                                                                                                                  Zoho Mail not working
                                                                                                                • I can't add a new customer in Zoho invoice? Anyone had this issue before?

                                                                                                                  Ive been using Zoho invoice for over 6 years. Today I wanted to add a new customer to send an invoice to but it doesn't save when I try to access it from the pulldown menu when you go to send a new invoice.
                                                                                                                • Spreadsheet View click & focus issue in Arabic (RTL) localization

                                                                                                                  Hello Zoho Support Team, I am facing an issue in Zoho Creator Spreadsheet View when using Arabic localization (RTL). Scenario: My app supports English (LTR) and Arabic (RTL). I created a Spreadsheet View for a form. In English, everything works correctly.
                                                                                                                • Customer address in Zoho Bookings

                                                                                                                  Hello,  Is it possible to add customer address information to the Zoho bookings appointment screen? Or have it pull that information automatically from the CRM? We are wanting to use this as a field management software but it is difficult to pull the address from multiple sources when it would be ideal to have a clickable address on the appointment screen that opens up the user's maps.  It would also be advantageous for the "list view" to show appointment times instead of just duration and booking
                                                                                                                • Ghost email notification on a form

                                                                                                                  Hello, We have recently encountered an error where I can not see a email notification set up for a form which I am currently the owner, although neither the form nor the notification were created by me. However, neither can the Super Admin access the
                                                                                                                • bulk edit records and run internal logic

                                                                                                                  hi there is few logics in manner "it this than that" logics work well when i edit entry openning it one by one (via workflow "on add/edit - on success" , for custom field "on update/on user input") but when i try bulk edit records - logic does not work.  how can i turn on logic to work as programmed - for mass editing records via bulk edit?
                                                                                                                • Limitations on editing a message in Cliq

                                                                                                                  Hi I've checked the documentations and there's no mention of how many times a message can be edited. When trying with code, I get various numbers such as ~1000 edits or so. Please mention if there's a limit on how many times one can change a message via
                                                                                                                • email address autocomplete

                                                                                                                  Is there a way to eliminate certain addresses from showing up in auto complete when entering an address? Many old and unused addresses currently show up, many of which I would like to get rid of. Thanks
                                                                                                                • How to use MAIL without Dashboard?

                                                                                                                  Whenever I open Mail, it opens Dashboard. This makes Mail area very small and also I cannot manage Folders (like delete/rename) etc. I want to know if there is any way to open only Mail apps and not the Dashboard.
                                                                                                                • How can i download and secure all my mails from the archive folders?

                                                                                                                  Hi, i would like to download all my mails from my archive folders and secure it on my external HDD. Is this possible? Thx. amir
                                                                                                                • How to open filtered report in popup using Zoho Creator Deluge?

                                                                                                                  First report: There is so many records in Report, If I click one record, pop up is occur. Second report (Pop up): there is also so many record data, and this pop up is also Report, not Form. First report: It has got "Sales Order" field. when I click any
                                                                                                                • Can you default reports/charts to report the current week?

                                                                                                                  Our data table maintains two years of data. Management wants certain report to automatically filter the report to the latest calendar week. I know I can do this manually with filters but I want the report to automatically default to the latest calendar
                                                                                                                • Rendering PDF to view on page

                                                                                                                  My company upload lots of PDF files onto Zoho. But every time we open it, it downloads the file instead of viewing it on the web page. Does Zoho allow uploaded PDF files to be rendered to view on web page yet? I've been trying to use <embed> or <object> but it cannot be loaded.  (similar thread: https://help.zoho.com/portal/community/topic/how-to-open-a-pdf-file-of-a-view-in-preview-mode)
                                                                                                                • Overlapping Reports in Dashboards

                                                                                                                  It's rare, but occasionally it would be a good feature if I were able to overlap reports, either fully or partially in the Dashboards. Also, then having the ability to move objects to the front or rear, or make them transparent/translucent would be good
                                                                                                                • Feature request - pin or flag note

                                                                                                                  Hi, It would be great if you could either pin or flag one or more notes so that they remain visible when there are a bunch of notes and some get hidden in the list. Sometimes you are looking for a particular name that gets lost in a bunch of less important
                                                                                                                • Admin guide: Handling Mailbox Settings for better user management

                                                                                                                  Managing day-to-day email scenarios, such as supporting users with multiple email addresses, ensuring uninterrupted email access during employee absences, enabling secure mailbox sharing, and enforcing organizational security and compliance, can be challenging
                                                                                                                • Cisco Webex Calling Intergration

                                                                                                                  Hi Guys, Our organisation is looking at a move from Salesforce to Zoho. We have found there is no support for Cisco Webex Calling however? Is there a way to enable this or are there any apps which can provide this? Thanks!
                                                                                                                • Designing a practical Zoho setup for a small business: lessons from a real implementation

                                                                                                                  I recently finished setting up a Zoho-based operating system for a small but growing consumer beauty business (GlowAtHomeBeauty), and I wanted to share a practical takeaway for other founders and implementers. The business wasn’t failing because of lack
                                                                                                                • DKIM (Marketing emails) UNVERIFIED (Zoho One)

                                                                                                                  I'm having a problem with Zoho One verifying my Marketing Email DKIM Record for MYFINISHERPHOTOS.COM. I have removed and re-entered the ownership, DKIM (Transactional emails), SPF and Marketing DKIM and all of them come back verified except the DKIM (Marketing
                                                                                                                • Zoho Recruit Community Meet-up - India

                                                                                                                  Namaste, India. 🙏🏼 The Zoho Recruit team is hitting the road—and we 're absolutely excited behind the scenes. Join us for the Zoho Recruit India Meet-up 2026, a morning designed to make your recruiting life easier (and a lot more effective). Date City
                                                                                                                • Generate a Zoho Sign link

                                                                                                                  From time to time I get a response "I never received your you e-document for electronic signature" is there a way to generate a Zoho Sign link to share.
                                                                                                                • Is it possible to create a word cloud chart in ZoHo Analystics?

                                                                                                                  Hi there, I have a volume of transaction text that I would like to analyse using word cloud (or other approcah to detect and present word frequency in a dataset). For example, I have 50,000 records describing menu items in restaurants. I want to be able
                                                                                                                • How to Fix the Corrupted Outlook 2019 .pst file on Windows safely?

                                                                                                                  There are multiple reasons to get corrupted PST files (due to a power failure, system crash, or forced shutdown) and several other reasons. If You are using this ScanePST.EXE Microsoft inbuilt recovery tool, it only supports the minor corruption issue
                                                                                                                • [Webinar] A recap of Zoho Writer in 2025

                                                                                                                  Hi Zoho Writer users, We're excited to announce Zoho Writer's webinar for January 2026: A recap of Zoho Writer in 2025. This webinar will provide a recap of the features and enhancements we added in 2025 to enhance your productivity. Choose your preferred
                                                                                                                • How to drag row(s) or column(s)?

                                                                                                                  Hi. Selecting a row or column and then dragging it to a new position does not seem to work. Am i missing something or this is just not possible in Zoho Sheet? Cheers, Jay
                                                                                                                • Building Toppings #5 - Creating and configuring custom service connections in Bigin Toppings

                                                                                                                  Hello Biginners, Integrating Bigin with external applications extends its capabilities and enables customized functionalities. In our last post, we saw how to create a default service connection. Today, we'll see how to create a custom service connection
                                                                                                                • Next Page