Custom script for improved Desk integration

Custom script for improved Desk integration

Good afternoon,

I ended up undertaking a development project to achieve the goal outlined below. I've summarised the project below and attached a PDF copy which covers each stage of the project from end-to-end, this may or may not be of interest to members undertaking dev work in their own Zoho CRM and Desk environments.

First and foremost, the goal:

When we manually create a new Account in Zoho CRM, a Primary contact will be added and then sometimes a Secondary contact, however once the customer is onboarded and services deployed, they can then contact our support desk for assistance and problem reporting... in many cases, the Primary and Secondary Account contact/email do not end up being the people submitting tickets and in all cases they are never the only people to submit tickets.

The native Zoho CRM <> Zoho Desk integration only supports the association of Tickets to accounts by the Primary Email or the Secondary Email, this resulted in a vast swathe of our support desk tickets never being associated to Accounts and nor would future tickets be whenever they were not submitted by a Primary or Secondary contact and so I had to find and implement a fix for this.

And that is where this journey started, I encountered limitations and/or problems at pretty much every step along the way that tested my patience but the perseverence paid off; this automation is now fully operational and working as desired within our CRM and Desk environments and the results are exactly what I was hoping for.

Initial Identified Problems:

1. Automation to create a new Contact and assign it to a correct Account required a different approach and the obvious option was to have this done by matching the email domain from which the Contact has sent an email to our Desk to a custom Email Domain field that we have created and made mandatory in the Accounts layout on CRM (screenshot of field provided under Function 2 within the attached PDF).

This allows our system to automatically capture and associate all Contacts to correct Accounts using a customer's email domain rather than a specific email address and therefore taking away the reliance of the person contacting having to already be saved in our CRM as a Primary or Secondary email on a CRM Account.

2. Next up, it was apparent that automatic Contact creation by Zoho Desk INTO Zoho CRM was not triggering which meant the process was failing at the first hurdle.

2a. What I did notice as I done some more digging... When I opened any new Contact in the desk it became clear that the entire name of the person was being extracted correctly but then auto-filled into the LAST NAME field only with the First Name field left completely blank.

I then manually extracted the first name from the last name field of one Contact and pasted it into the first name field... voila... the Contact then appeared in the CRM instantaneously, I repeated this on a couple more contacts with the same end result.

I then embarked on the below project consisting of a series of custom functions and workflows both Desk-side and CRM-side to create a pipeline of functions that would address the Contact association to Account in CRM, then push the accountId back to the Desk Contact and Ticket which would then result in the Ticket being associated to the Account and thus displaying in the Zoho Desk module within the Accounts view in Zoho CRM with the added benefit of all of the Contact's contact details listed against the Contact in the Ticket view.

Pretty much every step seemed to have a limitation or issue thus requiring a custom function so that each task would be automatically completed in full allowing the next automated step of the process to trigger and that's why I thought I would share this in the community, the attached PDF contains the Workflow Rules, Argument Mapping and Script utilised for each custom function that make up the entire process and therefore individual functions may be of interest or value to some rather than the whole project.

Additionally, if anybody finds themselves in the same/similar predicament and wanting to achieve the same goal then this provides a full start-to-finish pathway for them to achieve the functionality.

Please note that some Scripts are standalone and not part of a Workflow Rule


The Project and Pipeline of Events/Functions is as follows:

1. Customer sends email to our Zoho Desk, this can be any person from the customer's company that is or is not already a listed contact within our CRM.

2. Desk auto-creates a Contact if it doesn't already exist, placing the person's full name in the Last Name field only. (Problem).

3. Workflow with custom function fires on create, custom function extracts First Name from Last Name field, and populates First Name field with the extracted First Name from the Contact (Problem resolved).

4. Desk-to-CRM native sync is now working and syncs the contact to our CRM.

5. CRM workflow then fires on creation of the new Contact, matches the Contact's EMAIL DOMAIN (not the full email) to the correct Account by referencing a custom Email Domain field that I have created within the Accounts Module/Layout (screenshot included in PDF) - This means that the contact does not have to be already listed in the CRM as any new Contact will be added and associated to the correct Account via the custom function matching the Email Domain, e.g. customerdomain.net, instead of name@customerdomain.net.

6. CRM contact is then associated to the correct Account automatically.

7. CRM function also updates the Contact in Zoho Desk with the correct accountId directly via API.

8. Desk Workflow then fires on Ticket create and sets the same accountId on the Ticket via the domain matching - This accountId function is to trigger every time a ticket is created regardless of whether the Contact is newly created or already existing therefore capturing all new tickets.

9. Ticket now visible in Desk Module in the CRM Account too. RESULT!

All of this now achieved without having to rely on Primary or Secondary email as per the native sync.

The attached .pdf covers the project from start to finish, including the scripts implemented for each custom function so you can copy, paste and then simply update the Org ID and email address to your own, please be aware Org ID and email addresses can appear more than once in some of the scripts.

Please note, our Org ID and my Email Address has been partially redacted to protect the information but still presented in a way that clearly indicates how they are entered within the scripts.

Additional note, within the PDF there are a couple of Backfill sections and scripts where I had to create a custom function in the CRM to manually trigger to run through existing Contacts identify those unassociated to any Account then asssociate them to the correct Account.

There was also a Backfill function set up also to manually run and sweep existing tickets to Associate those to correct accountIds too thus ensuring that any submitted prior to this Automation project would also be associated to the correct Accounts.

I hope this helps... I had a big sense of achievement when I successfully completed this journey on Tuesday and saw the functionality happening live and correctly.

    Access your files securely from anywhere

        Zoho FSM Video Tutorials


              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





                                                                    Manage your brands on social media



                                                                          Zoho TeamInbox Resources



                                                                              Zoho CRM Plus Resources

                                                                                Zoho Books Resources


                                                                                  Zoho Billing 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

                                                                                                                        • Introducing Smart Fields in Zoho Forms

                                                                                                                          Hello form builders! We are excited to introduce Smart Fields in Zoho Forms - a faster way to add calculations to your forms without writing formulas. Instead of creating multiple fields and configuring complex calculations yourself, you can now drag
                                                                                                                        • Checkbox not displaying correctly in subform

                                                                                                                          Greetings: I have shared my app (wv) with support.  I am having problems with a checkbox field not displaying correctly in a subform.  The main form is called volunteers and the subform is called volunteers_subform.  The field in question is called roles. When you access the subform by itself the checkbox lookup displays as checkboxes.  But when you view it in the main volunteers form, it displays as a multi-select dropdown instead.   I have attached jpegs showing the difference.   Any thoughts?
                                                                                                                        • Unbundle feature for composite items

                                                                                                                          We receive composite items from our vendors and sell them either individually or create other composite items out of them. So, there is a lot of bundling and unbundling involved with our composite items. Previously, this feature was supported in form
                                                                                                                        • The reason I switched away from Zoho Notebook

                                                                                                                          My main reason for switching to Zoho was driven by three core principles: moving away from US-based products, keeping my data within India as much as possible, and supporting Indian companies. With that intent, I’ve been actively de-Googling my digital
                                                                                                                        • Lookups and Custom Modules

                                                                                                                          I created a Custom Module that I'm calling "Item Purchasing Group". This module will store information for groups of Items that must be purchased together (including minimum overall quantities and/or values, etc.). This will have a one-to-many relationship
                                                                                                                        • Valid characters for use in email addresses using Zoho's apps/APIs

                                                                                                                          We have found an issue with the + sign character in zoho subs - we are allowed to create a customer with an email address that has a plus sign but the API doesn't allow the + so the billing portal is not created. We are going to prevent users from using
                                                                                                                        • Expand Zoho Analytics Spatial Capabitlities

                                                                                                                          Dear Analytics team Thanks for the great product - I'm a big fan on Analytics and the monthly release highlights is one of my favourite emails to receive. I'd like to request expansion and improvement of Zoho Analytics spatial data capabilities, namely:
                                                                                                                        • Automate customer follow-ups with Sequences in Bigin

                                                                                                                          Greetings, We hope you're all doing well! We're happy to announce a new feature that we've added to Bigin. Following up with every lead at the right time can be challenging, especially when your team is managing multiple conversations across emails, calls,
                                                                                                                        • Dashboards for Customers

                                                                                                                          Is it possible to build dashboards for each customers in the community for their tickets?
                                                                                                                        • 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
                                                                                                                        • Adding Custom Status Options in Work Order Action Menu

                                                                                                                          Hello FSM Team, We would like to inquire if it is possible to add more custom options in the Work Order action/status dropdown (e.g., Cancel, Terminate, Non-Billable, Void, etc.). Currently, the available options are limited, and we are unable to customize
                                                                                                                        • Can we have an automated TDS Receivable Recon with Form 26AS of Income Tax Portal ?

                                                                                                                          Can we have an automated TDS Receivable Recon with Form 26AS of Income Tax Portal ?
                                                                                                                        • Tag Limi?

                                                                                                                          is there any way to create more than 20 tags? 
                                                                                                                        • prefill_data for Creator + Merge & Sign

                                                                                                                          Hello, Is there an option to use prefill_data for signer fields from creator? I see the option for CRM but it will not work with creator? I have tried passing the value in the signer data, and that also does not work. Alternatively, is there a way to
                                                                                                                        • Delug script

                                                                                                                          I have been looking at auto-update a amount (home currency) field from another module. Zoho native multicurrency was used in the other module (we have 4 here). Custom script was input with no error, but the field was not updated on trigger. Script as
                                                                                                                        • Can I Build a Gaming Website Using Zoho? Need a Quick Roadmap

                                                                                                                          Hi Dear Members, I want to create a gaming website using Zoho. Is it possible? My goal is to build a sleek, unique, easy-to-navigate, and fast-loading website for a gaming project. I want the site to look professional, user-friendly, and optimized for
                                                                                                                        • Remove Due Date from Statements

                                                                                                                          Is it possible to remove the Due Date on the Invoice transation line on statements? I have figured work arounds to get the Invoice detail on the Statement but cannot work out haw to simplify the stament by removing the "- due on xx/xx/2026" - it really
                                                                                                                        • What Should an Agent-Native Project Workspace Look Like

                                                                                                                          AI is moving beyond assistants that simply answer questions. With tools like MCP, agents can now interact directly with project data and perform actions. That makes me wonder: what should an agent-native project workspace actually look like? For me, it
                                                                                                                        • unable to join meeting due to speaker issue

                                                                                                                          unable to join meeting due to speaker issue
                                                                                                                        • How to add formatting in zoho.cliq.postToUser(...) message?

                                                                                                                          In a CRM Deluge function, I'm trying to use the message formatting guidelines given here: https://www.zoho.com/deluge/help/cliq/posting-to-zoho-cliq.html#message-formats My message is: message: #Title text. The result in Cliq is: #Title text. (no large
                                                                                                                        • Marketing Tip #50: Sell digital products and use them to grow your store

                                                                                                                          Physical products need packaging, shipping, and stock management. Digital products need none of that. Once created, they can be sold an unlimited number of times, delivered instantly, and never go out of stock. What counts as a digital product? A digital
                                                                                                                        • Turn off Mobile Optimize

                                                                                                                          Hello is it possible to stop the automatic mobile optimization of my site as it looks much better on a mobile in full site format rather than mobile format. Thanks
                                                                                                                        • How to select from pricebook when creating a salesorder or quote

                                                                                                                          I am creating a sales order and when selecting the Products I do not see any where to select from pricebooks. How do i associate this to my orders?
                                                                                                                        • API - Available Stock Definitions

                                                                                                                          Okay, Zoho team... your copywriters fell down on the job for this one :) I think these warrant a bit more explanation as to what they include and what they don't.
                                                                                                                        • Cross-application Deluge calls fail when application link name starts with a number

                                                                                                                          I encountered an issue when calling a custom function in another Zoho Creator application within the same account. The target application’s URL/application link name began with a number, similar to: 27_example_application The following cross-application
                                                                                                                        • Transformez vos webinaires en opérations automatisées

                                                                                                                          Organiser un webinaire, c’est bien plus que passer en direct. Il faut gérer les inscriptions, suivre les participants, envoyer les enregistrements, mettre à jour le CRM… et s’assurer que chaque étape se déroule au bon moment. L’automatisation des workflows
                                                                                                                        • Marketing Tip #1: Optimize item titles for SEO

                                                                                                                          Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
                                                                                                                        • How can I filter inactive/disable agent tickets?

                                                                                                                          Hello, We have an user-agent that left the company and we inactive/disabled his agent. So, now I can no longer filter or search tickets that he is the current owner, or even create a rule to reassign tickets to another person when the ticket is reopen.
                                                                                                                        • How do i move multiple tickets to a different department?

                                                                                                                          Hello, i have several tickets that have been assigned to the wrong department.  I am talking about hundreds of automatically generated ones that come from a separate system. How can i select them all at once to move them to another department in one go? I can select them in "unsassigned open tickets view" but i can't find a "move to another department" option. I also can't seem to assign multiple tickets to the same agent in that same view. Could somebody advice?
                                                                                                                        • Add Reauthentication Option for Zoho Bug Tracker Integration in Zoho Desk

                                                                                                                          Hello Zoho Desk Team, We hope you're doing well. We would like to request an enhancement to the Zoho Bug Tracker integration within Zoho Desk. Current Limitation: At the moment, there is no option to reauthenticate the Zoho Bug Tracker integration in
                                                                                                                        • Create Package From A Picklist

                                                                                                                          Dear Zoho, Can it be made possible to create a package from a picklist? The reason our company makes a picklist is for that to become a package Our sales orders have 600-1000 items I hope that makes it clear that it's hard to delete 990 items when we
                                                                                                                        • Migrating from Zoho Checkout to Zoho Billing

                                                                                                                          I have an active Zoho Checkout account where I'm charging customers for subscriptions. Now I'm looking to upgrade and only use Zoho BIlling, in which my account in on read only mode at the moment. I can see is also tracking the customers and its payments.
                                                                                                                        • API - Bank Accounts | Reconciliation Discrepancy

                                                                                                                          Unless I'm reading it wrong, the documentation for the Bank Reconciliations API is inconsistent with itself. https://www.zoho.com/books/api/v3/bank-accounts/#create-a-bank-reconciliation The text definition says that the transaction_id should be a string,
                                                                                                                        • another little issue

                                                                                                                          So to get over showing prices with VAT we used the price lists and made the prices inclusive. The problem is now on the items it wants to show the orginal retail value which makes no sense. Ideas please
                                                                                                                        • Handle Leading Zeros in a Number Field

                                                                                                                          Hi, If I use a Number Field, set with Min 7 Digits and Max 7 Digits, and enter 0000001, it will result in 1 and an error as it removes the leading zeros, the same with entering 0012340 will result in 12340 and error. So I have to use a Text Field and
                                                                                                                        • can't access zoho account

                                                                                                                          I can't log in to my zoho account, can you help me
                                                                                                                        • HTML PDF Templates / Build From Scratch option not visible for Custom Modules

                                                                                                                          Hi everyone, I am working with Zoho Books Custom Modules and trying to create a custom 4x4 package label PDF template using HTML/CSS. According to the official Zoho Books documentation for HTML PDF Templates, there should be an option like: Settings →
                                                                                                                        • Virtual Option for Fields

                                                                                                                          Hi, I would like to be able to choose another option other than Read-Only or Disabled, such as Virtual. And with Virtual, the field is shown on the form and avilable in rules, but NOT saved to the Database. A use case is having multiple Large Lists of
                                                                                                                        • Prefix & Suffix on Single Line, Number, etc.

                                                                                                                          Hi, I would like to have the same Prefix and Suffix that was added to the Unique ID on Text and Number Fields. Use case could be as basic as temperature, as per another Idea I have to use Single Line (Text) for a number that might have leading zeros today,
                                                                                                                        • Customer User Fields for use in Rules

                                                                                                                          Hi, I would like to be able to add custom fields to the users, such as Department or Role, which can then be used in Rules, Reports, etc. as a condition. A use case is limiting Global lists or Choices based on the users Custom Field, so one form can be
                                                                                                                        • Next Page