Extension pointers #10: Define and raise a signal to receive timely notifications in Zoho CRM

Extension pointers #10: Define and raise a signal to receive timely notifications in Zoho CRM

Customer relationship management is a significant factor involved in the success of a business. When interaction with customers at all touch points is properly targeted, customers are satisfied and business flourishes. This makes it a necessity to stay updated about your customer interactions.

The Signals feature in Zoho CRM provides real-time notifications, helping you keep track of all your customer interactions from different channels in a single platform. It supports actionable alerts, so you can respond to notifications instantly and resolve them right away. Signals also enable alerts from integrated third-party apps to simplify the process of handling multiple applications. You can build customized notifications for different events and keep track of them in your Zoho CRM account.

Suppose a Zoho CRM user plans to pull their prospects from Zoho Desk, their customer support solution. Let's consider a possible scenario they might face and look at the solution.

Say that whenever a new customer/contact is added under the type "Prospect" in Zoho Desk, it is pushed into the Leads module of Zoho CRM. Once it's there, the sales rep needs to be notified that there's a new lead to process. The sales rep will also want to be able to visit the lead source page (in this case, the Zoho Desk page where the customer was created) to view the complete lead details.

In order to implement this solution, the Zoho Developer platform provides a feature called Signals. Creating a signal on the platform involves two major steps:
  • Defining a signal
  • Raising a signal
Now let's look at the steps in detail.

Defining a signal

In order to receive Signal notifications in Zoho CRM, it is necessary to create a signal.
  • Log in to Zoho Sigma, then go to the Extension Details page.
  • Expand the Automate options under Build in the left panel of the Zoho Developer console, and choose Signals.
  • Click Define Signal.

  • Enter the name for the signal and choose an icon for it. Click Save.

  • The signal is now defined and a namespace is auto-generated for it.


Registering a webhook request and raising a signal

In our example, Zoho Desk sends an alert to Zoho CRM, so it is necessary to register a webhook. The webhook posts a callback request whenever a new customer with type "Prospect" is added in Zoho Desk. The response from Zoho Desk will be handled via a REST API function. Using the response data, we can push the lead to Zoho CRM and raise a signal. Now, let's see how.

     1. Establishing a connection between Zoho CRM and Zoho Desk
  • Create a connector between the two applications.
  • Add the CreateWebhook API with the parameters specified by Zoho Desk. Learn about connectors.

API Name
Method
URL
CreateWebhook
POST

Refer to the Zoho Desk API documentation for the header and body parameter specifications of the API. 
  • After creating the connector and adding the APIs, publish and associate the connector with the extension. 
     2. Defining a REST API function and raising a signal
A webhook needs to be created to receive real-time notifications from Zoho Desk. But before creating the webhook, you need to define a REST API function that will provide the subscription URL parameter required to construct the CreateWebhook API.
  • Expand the Automate options under Build in the left panel of the Zoho Developer console, and choose Functions.
  • Provide a name for the function and choose Yes for Invoke as REST API. Click Next.
  • Enter the code for the function.

Code snippet
crmAPIRequestMap = crmAPIRequest.toMap();
request_body = crmAPIRequestMap.get("body");
data = Map();
leadsource = "";
for each item in request_body
{
payload = item.get("payload");
firstname = payload.get("firstName");
lastname = payload.get("lastName");
type = payload.get("type");
email = payload.get("email");
title = payload.get("title");
leadsource = payload.get("webUrl"); 
if(type == "Prospect")
{
data.putAll({"First_Name":firstname,"Last_Name":lastname,"Email":email,"Designation":title,"Lead_Source":"Zoho Desk"});
resp = zoho.crm.createRecord("Leads",data);
}
}
signalMap = Map();
signalMap.put("signal_namespace","desksynccrmsignal__testsignal");
signalMap.put("email",data.get("Email"));
signalMap.put("subject","New Notification");
signalMap.put("message","A new lead from Zoho Desk");
actionsList = List();
actionMap = Map();
actionMap.put("type","link");
actionMap.put("display_name","Lead Source");
actionMap.put("url",leadsource);
actionsList.add(actionMap);
signalMap.put("actions",actionsList);
//Raising a signal
sigResp = zoho.crm.invokeConnector("raisesignal",signalMap);
return "";

  • In the code snippet, the response from Zoho Desk is obtained through the input variable of "signalfunction", crmAPIRequest. The required parameters are retrieved from the response and pushed as a new lead into the Lead module if the customer type is "Prospect." A signal map variable is created and the required specifications to raise a signal are assigned to it. In our example, we have also included an actionable item, a lead source URL. When clicked, it will redirect to the Zoho Desk page of the newly created lead, indicating its source and holding its complete details. Finally, the raisesignal task is invoked in order to raise the signal whenever a new lead is created from Zoho Desk.
  • After the code is defined, click Invoke as REST API. The sandbox URL obtained is used for locally testing the functionality in the sandbox environment. Meanwhile, the production URL is used as the subscription URL while creating a webhook.

  • Close the Invoke function dialog box. Click Save & Close to save the function. 
    3. Creating a webhook
Now that we have obtained the subscription URL, let's go ahead and create a webhook. We have chosen to create a webhook during the authorization of the connector.
  • Expand the Install Actions options under Build in the left panel of the Zoho Developer console, and choose Connectors.
  • Enter the code for creating a webhook under the On Authorization tab. Click Save to Connector.

m = {"nameSpace":"xxx.desksynccrmsignal"};
apikeyresp = zoho.crm.invokeConnector("crm.zapikey",m);
zapikey = apikeyresp.get("response");
dynamic_map = Map();
dynamic_map.put("url",subscription_url);
resp = zoho.crm.invokeConnector("desksynccrmsignal.deskconnector.createwebhook",dynamic_map);

  • In the code snippet above, the subscription URL obtained from the REST API function is constructed as a parameter for the CreateWebhook API. The ZAPI key value required for the subscription URL is fetched and passed to the URL. Finally the Create Webhook API is invoked and the webhook is created. 
  • After a new customer is added to Zoho Desk with the type "Prospect," a signal is raised in Zoho CRM and the customer is added as a lead in the Lead module.

  • On clicking the notification symbol, the signal appears, along with the subject. On further clicking the SalesSignal region, the details contained in the signal are displayed along with a link pointing to the lead source.

  • On clicking the lead source link, the user is redirected to the Zoho Desk page.


You can further modify the functionality of the signal based on your business requirements. Hope you found this information useful! For more extension tips, keep following this space.



    Access your files securely from anywhere

          Zoho Developer Community




                                    Zoho Desk Resources

                                    • Desk Community Learning Series


                                    • Digest


                                    • Functions


                                    • Meetups


                                    • Kbase


                                    • Resources


                                    • Glossary


                                    • Desk Marketplace


                                    • MVP Corner


                                    • Word of the Day



                                        Zoho Marketing Automation


                                                Manage your brands on social media



                                                      Zoho TeamInbox Resources

                                                        Zoho DataPrep Resources



                                                          Zoho CRM Plus Resources

                                                            Zoho Books Resources


                                                              Zoho Subscriptions Resources

                                                                Zoho Projects Resources


                                                                  Zoho Sprints Resources


                                                                    Qntrl Resources


                                                                      Zoho Creator Resources



                                                                          Zoho Campaigns 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 Writer

                                                                                    Get Started. Write Away!

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

                                                                                      Zoho CRM コンテンツ






                                                                                        Nederlandse Hulpbronnen


                                                                                            ご検討中の方





                                                                                                  • Recent Topics

                                                                                                  • Fixed assets recording

                                                                                                    Hello there, I recorded a bill for a vendor contain (Computer) so the PC is a fixed assets, do I need to do a manual journal to include this PC under the fixed assets category (furniture & equipment)? If yes, please take me through the manual journal
                                                                                                  • Multi-Select lookup field has reached its maximum??

                                                                                                    Hi there, I want to create a multi-select lookup field in a module but I can't select the model I want the relationship to be with from the list. From the help page on this I see that you can only create a max of 2 relationships per module? Is that true?
                                                                                                  • Zoho Sheet-Pulling in Data

                                                                                                    I have a module where we track POs, Bills etc (its easier for us this way). In this PO Module, we have a task related to a Job/Deal and various fields for costs. A Supplier on a Job might have several POs in this module for the job. I want to generate
                                                                                                  • Can't get ZFS file ID of a field via specific module record

                                                                                                    I have a `fileupload` field on a custom module that I need to replace the file for but I don't know how to get the ZFS ID from the module record. # Getting the current fileupload GET https://www.zohoapis.eu/crm/v7/<MODULE>/<ID> # Response { data: [{ //
                                                                                                  • Contemplating moving my site from WordPress to Zoho Sites

                                                                                                    Hi Everyone, We currently find ourselves in a situation where we ant to review and update our current sites content. We are small business owners, not developers. We currently use a wide range of Zoho products. We sometimes think about the possibility of either moving or just starting from scratch on Zoho Sites. I would like to know if anyone has done this and of course the things that need to be considered. We have spent quite a bit of time getting our current site positioned organically and I guess
                                                                                                  • Multiple Salesperson against an invoice

                                                                                                    Hello, Against a particular invoice, we have multiple sales people working. The reason we combine the invoice is becuase we are an exporter and often consolidate cargo for our customer to save them freight costs. How do I capture the contribution of each
                                                                                                  • Allow a brand to connect multiple facebook pages at the same time

                                                                                                    Our company have multiple facebook pages to represent, every branch, right now we can only link one facebook page, so we can only recive messages from one branch. It would be nice to be able to connect all pages.
                                                                                                  • Whatsapp reply not reflected under Tickets for offline agent

                                                                                                    Hi, We are encountering a situation where WA response from customer is not reflected under tickets (if the agent handling the case previously is not active due to off day/ MC). The ticket will remain in the offline agent's queue until agent is back to
                                                                                                  • Select CRM Custom Module in Zoho Creator

                                                                                                    I have a custom module added in Zoho CRM that I would like to link in Zoho creator.  When I add the Zoho CRM field it does not show the new module.  Is this possible?  Do i need to change something in CRM to make it accesible in Creator?
                                                                                                  • Send Whatsapp with API including custom placeholders

                                                                                                    Is is possible to initiate a session on whatsapp IM channel with a template that includes params (placeholders) that are passed on the API call? This is very usefull to send a Utility message for a transactional notification including an order number
                                                                                                  • Increase Round Robin Scheduler Frequency in Zoho Desk

                                                                                                    Dear Zoho Desk Team, We hope this message finds you well. We would like to request an enhancement to the Round Robin Scheduler in Zoho Desk to better address ticket assignment efficiency. Current Behavior At present, the Round Robin Scheduler operates
                                                                                                  • Separate One-Time Mentions from Ongoing Ticket Following in Zoho Desk

                                                                                                    Dear Zoho Desk Support Team, We are writing to request an enhancement to the mention functionality within Zoho Desk. Currently, when an agent is mentioned in a ticket, they receive notifications for all subsequent activity on that ticket, similar to being
                                                                                                  • Mass update Accounts in Zoho Desk

                                                                                                    We used the integration feature to bring in all of our accounts from Zoho CRM. While all of the names and links are in place, on the Zoho Desk side the email, phone, website, and address fields are blank. By going into each account I can select "Update
                                                                                                  • Vivaldi will not open the Zoho Mail app when I click a email link in the browser

                                                                                                    I'm running Vivaldi on Arch with the Plasma desktop and have under default applications Zoho Mail set as my default email client. Whenever I click a email link in Vivaldi I get the below when it should be launching Zoho. Any ideas on rectifying this issue?
                                                                                                  • Digital publisher

                                                                                                    Kinetic Digital Publisher provides comprehensive digital publishing services, including eBook creation, formatting, cover design, and marketing. We help authors publish and promote their work across online platforms with ease.
                                                                                                  • Time Zone Correction with Daylight Savings Time

                                                                                                    Hey, I'm writing a series of reports where the source data is synced from an external source which stores the date/time information in GMT, but I want the reports to be in local time. Now, I understand there is the CONVERT_TZ function which allows me
                                                                                                  • Load form in iframe without header

                                                                                                    I am trying to load a form into an iframe without the header, but I am not having any luck. I am using openUrl() to load the iframe with the form URL and zc_Header set to false, e.g. #Form:Add_Case?zc_Header=false but it is still loading the header. Any
                                                                                                  • Filter embedded report

                                                                                                    How to filter embedded report in a page, below code is not working. dateField => startDate & dateField=< endDate The report should print on page containing records from startDate to endDate. params='zc_Header=true&amp;Service_Date__gte=<%=startDate%>&amp;Service_Date__lte=<%=endDate%>'
                                                                                                  • Creator Simplified #5: Set file upload restrictions in Zoho Creator

                                                                                                    Hey Creators, Welcome to the next post in the Creator Simplified series. Today, we’ll explore how to implement file upload restrictions to limit user submissions to specific file types. By implementing an allowed list for file uploads, you can optimize
                                                                                                  • Field Type: Address, Change District/State to Dropdown with picklist??

                                                                                                    Using the Address Field type, is there a way to make the District/State field be a dropdown with a picklist so the users can select rather than type the state name every time? I know this can be done if I use a drowdown field for the State (or entire address information), but that isn't as tidy as using the address field type. I apologize if this is a duplicate. I posted this question the other day, or so I though. Can't find that post.
                                                                                                  • cutomized fields are not showing up in zoho creator from zoho crm

                                                                                                    We have customized fields in zoho crm under accounts module like "Last production upgrade" --> This field is a date. When created a solution in zoho creator i couldn't find any of the customized fields. Would you please help me on this matter? Thanks
                                                                                                  • How to Add Bulk Data in Zoho Creator Forms Using Deluge Without Exceeding Execution Time Limit

                                                                                                    I have a database form with a column named 'Product Name' containing 8000 values in a Zoho Creator form. In another form named 'Returns Data,' I have a column with the same name, 'Product Name.' How do I add these 8000 values to the 'Returns Data' form
                                                                                                  • Open New Free Zoho Account

                                                                                                    Hi Team, Do you guys offer a free email hosting? I do have a domain already. If yes, what is the process to open the new account? Thanks,
                                                                                                  • 554 5.7.1 : Recipient address rejected: user info@intimspace.de does not exist

                                                                                                    554 5.7.1 : Адрес получателя отклонен: пользователь info@intimspace.de не существует I can't send an email to Google at info@intimspace.de. An error comes. I entered everything correctly in DNS https://zohomail.tools/#domainDetails/intimspace.de/ALL
                                                                                                  • Emails going back unread

                                                                                                    Hi all, When in Zoho mail - when I recieve a new mail it puts back all emails read that day back to unread - I then have to go back through and open all emails I have already read! Gets very annoying... Any idea on the bug fix?
                                                                                                  • Been getting this error, every now and then "Get count limit exceeded, please try again after 3 mins"

                                                                                                    it is really annoying.
                                                                                                  • Constraints on Tasks

                                                                                                    We have a use case where we have certain fixed date tasks and need to schedule predecessor tasks around these. Predecessor tasks need to be completed with a lag before the fixed date. We should be able to schedule the start and end date for predecessor
                                                                                                  • Moving Project Dependencies Not Moving Precedessors

                                                                                                    Most of the time we want to base our start dates around an event that is in the middle of the project template. If I set a bar up at the date we want it, it doesn't move the predecessors up. Is there a way to change this? eg. there is no point starting
                                                                                                  • Can you set task due dates to be "x" days before the milestone?

                                                                                                    We have a milestone set as the date of our first event. All of the tasks need to happen in increments prior to the milestone event. Is there a way to configure this without having to set up each task due date? Thanks!
                                                                                                  • Default ticket template in helpcenter

                                                                                                    Hello, I have a web form and a ticket template created. How can I make that my default ticket template? If an user clicks New ticket or create a ticket, I want that template to be the default one. Thank you for the time and info.
                                                                                                  • Expanded data-capturing capabilities with enhanced tabular sections

                                                                                                    We are thrilled to announce an update to Zoho Recruit that brings even more flexibility and customization to your recruiting process. With the addition of 10 new field types to the tabular sections, you now have the power to enhance your tabular sections
                                                                                                  • Integration of Business Hours in Email Templates

                                                                                                    Dear Zoho Desk Team, We would like to propose a feature enhancement to Zoho Desk that would greatly improve the utility of the Business Hours settings and streamline communication with our clients. Feature Request: Integration of Business Hours in Email
                                                                                                  • Add Owner to deluge-created module record note

                                                                                                    Is it possible to include the "owner" aka "creator", of a Note when creating it via delulge? This sets "superadmin" as the Note creator. I need to override it. notemap = Map(); notemap.put("Parent_Id",program_contact_id); notemap.put("Note_Content",program_contact_data.get('Note'));
                                                                                                  • Blueprint - Field Validation Criteria (During)

                                                                                                    When setting validation criteria elsewhere in Zoho, or even workflow criteria etc., there are Is Empty and Isn't Empty options.  Within the Field Validation Criteria within Blueprint, those options aren't available.  Is there a particular reason for this? 
                                                                                                  • Delete Field that is used in a Zoho Flow connection

                                                                                                    I'm trying to delete a Field used in a Webhook created by Zoho Flow with CRM Connection and i get the following alert: When going to the alert i get to the following issue, can't edit it since its been deployed by a pluggin But yes i have here the prompted
                                                                                                  • Use image on img HTML tag

                                                                                                    Hi how could I do to use my image saved in Workdrive to use it in an HTML img tag ? I need to display it on my website without having to use iframes. Regards,
                                                                                                  • ZOHO Compain emails going to spam after authentication is successful

                                                                                                    Hello, I am frustrated right now. I have recently setup the zoho email compaign, The auto responder email went to receipient spam folder. then, I researched a lot and completed authentication (SPF, DKIM) in email deliverability, email relay in zoho crm.
                                                                                                  • Security Policies

                                                                                                    To protect against cyber threats and attacks, organizations need to set up security policies for their employees' accounts. Security policies are rules and regulations for every individual or group using the organization's assets and resources. Enabling
                                                                                                  • Zoho CRM functions editor is not in the programming language deluge

                                                                                                    I am trying to write a function for a button. I helped someone before in deluge and I'm using this new editor I'm not familiar with - I guess it is new. Why is the default code statically typed? The editor will not let me create a variable without a type.
                                                                                                  • "Age in Days" calculation in Advanced Analytics

                                                                                                    Hi Can someone advise how this is calculated? I am getting values on this report which I cannot understand. Thank you
                                                                                                  • Next Page