Extension Pointers #8: Handling real-time data updates between Zoho CRM and third-party applications using webhooks

Extension Pointers #8: Handling real-time data updates between Zoho CRM and third-party applications using webhooks

A webhook is a web callback triggered by a specific event to provide real-time data updates between applications.


How does a webhook work?

Webhooks help enhance the connection between two applications. When an event occurs in a web application that implements a webhook, the webhook notices the event, serializes and collects the data, and posts the data to the URL configured in the form of a HTTP request.

You can implement either an inbound webhook or an outbound webhook. If an event triggered in your Zoho CRM account causes an action in a third-party application, it is called as an outbound webhook (going from your application to a third-party application) and the opposite is called an inbound webhook (incoming to your application from the third-party application).

How functions play a role in implementing webhooks

If Zoho CRM should be notified when a particular event occurs at the third-party end, you can create webhooks to post a callback on the occurrence of that event. In order to implement this, you need to define a function in your extension that can be triggered from the third-party application. Unlike standard functions, REST API functions can be triggered from anywhere (either from an extension or a third-party application) and thus help with timely interaction. 

Webhook URLs and how to obtain them

You need to create a webhook and subscribe to events for real-time updates between applications. In order to create a webhook, a webhook URL is required. By subscribing your own webhook URL, you can customize, extend and integrate it with other third-party applications, facilitating instant web notifications.

The REST API functions/Standalone deluge functions can be written and exposed as REST APIs. The API names of these functions can be used as the webhook URL while creating your webhook.

In this post, we'll look at the basic steps on how to create an inbound webhook, where a third-party application event triggers a post-data action to your Zoho CRM account.

Note: The term "event" here refers only to the events supported by the third-party application, which you can subscribe during the creation of a webhook.

The steps to achieve this functionality while building your extension are:

➤ Establish a connection with your selected third-party application.
➤ Define a REST API function, to handle the response from the third party application.
Subscribe the webhook URL of the REST API function with the third-party application.




Establishing connection with the third-party application

1. Before proceeding with implementation, it is important to check whether the third-party application supports webhooks. Establish a connection between Zoho CRM and the third-party application using the authentication methods supported by the application. You can learn more about the authentication methods for developing third-party integrations here.

2. If the method of user authentication supported by the third-party application is
3. Define the third-party application's API to create a webhook with the required parameters specified by the third-party application.

Note: The subscription URL is termed in different ways by each application and is an important parameter to be noted while creating webhooks. In order to send the response to Zoho CRM, the third-party applications require a URL to perform HTTP POST request from their end. The following section defines the steps required to obtain this URL.

Defining a REST API function and obtaining a webhook URL

After establishing the connection, the next step is to define a REST API function that can be invoked by the third-party application whenever a subscribed event occurs in the third-party application.

1.  Log in to Zoho Sigma and go to the Extension Details page.
2. Choose Functions under Automate from the left panel of the Zoho Developer console under Build, then click New Function.



3. Enter the name of the function. Choose Yes for the Invoke as REST API option to create the function as a REST API function.



4. The crmAPIRequest argument of the function is categorized as Map type by default. The entire request object is mapped automatically to the crmAPIRequest argument and holds the response from the third-party when the trigger event occurs.



5. The input for the function can be acquired from the following types:

Component
Format
Value fetched using component of crmAPIRequest
 body
request_body =   crmAPIRequest.get("body");
Content that is passed as a stream to the request
 params
parameters = crmAPIRequest.get("params");
Key-value pair or as JSON object to the request
 file_content
filecontent = crmAPIRequest.get("file_content");
File content passed to the request
 user_info
user_info = crmAPIRequest.get("user_info");
Information about the user

 method
method = crmAPIRequest.get("method");
HTTP method name in the request
 auth_type
authtype = crmAPIRequest.get("auth_type");
The name of the Authentication method(API key)
 headers
headers = crmAPIRequest.get("headers");
Additional information of the request available in the header

6. The default return type of a Rest API function version 2.0 is a string. You can choose to return the response as a string or use the response object crmAPIResponse to define the following specifications of the response:

 Specification key
 Default value
 status_code
 200
 Content-Type
 application/json;charset=utf-8
 headers
 {"Content-Disposition", "attachment;filename=response.json"}
 body
 empty

7. When you have finished defining the REST API code, click Invoke as the REST API button.


8. The URLs to invoke the function will be displayed and are termed as webhook URLs, which will be used for subscribing the function with the third-party.


Unlike the sandbox URL provided with a predefined ZAPI key, the production URL requires the value of the user's ZAPI key.

Why ZAPI key?

For authentication purposes, the REST API functions use API keys as the method of authentication. It requires the value of the ZAPI key in order to authenticate a user.

Code snippet to obtain ZAPI Key
  m = {"nameSpace":"<portal_name.extension_namespace>"};
  apikeyresp = zoho.crm.invokeConnector("crm.zapikey",m);
  zapikey = apikeyresp.get("response");

9. The ZAPI key value can be passed in the Production URL, which will serve as a webhook URL to subscribe a webhook and invoke this function.

Creating and subscribing a webhook

➤ REST API functions can be triggered from a third-party application only when it is subscribed with that application while creating an inbound webhook.

➤ The webhook URL mentioned in the previous section will serve as the subscription URL while creating the webhook.

By following these steps, you can implement webhooks for third-party integrations using REST API functions. In our upcoming post, we'll look at a working example depicting this process.

We hope you found this guide helpful in creating and using custom webhooks to link your Zoho CRM account to third-party applications.For tips and guides like this, keep following this community forum.

SEE ALSO




    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

                                                                                                  • Automate data upload process like reports

                                                                                                    I'll start with the end in mind.  I want to basically keep certain creator tables updated with data that are in a sql database/tables in our office (employees, active jobs, employee positions) so I can reference that data and not have to duplicate it by hand every time someone adds a new job or employee in the office desktop software.  Here are some thoughts I had about how to do this, but am unsure as to whether any of them are actually possible and how to go about it from there: Is there any way
                                                                                                  • Greylisted, try again after some time

                                                                                                    Can you check my ip, i send to duyna@vietlinkjsc.vn but have an error; my ip is 112.213.94.12 Here is log: 2018-01-09 09:40:29 H=mx.zoho.com [204.141.32.121] SMTP error from remote mail server after RCPT TO:<duyna@vietlinkjsc.vn>: 451 4.7.1 Greylisted, try again after some time 2018-01-09 09:40:32 H=mx2.zoho.com [204.141.33.55] SMTP error from remote mail server after RCPT TO:<duyna@vietlinkjsc.vn>: 451 4.7.1 Greylisted, try again after some time 2018-01-09 09:40:32 duyna@vietlinkjsc.vn R=lookuphost
                                                                                                  • Emails linked to Deal

                                                                                                    Hello everyone, I’d like to ask a question to see if someone can help me out. We are requesting availability from suppliers by sending emails directly from the Opportunity. These emails we send are logged within the Opportunity; however, when we receive
                                                                                                  • How to transfer all my mails from Zoho to Gmail or Office 365

                                                                                                    is there any option to move my emails from zoho to gmail or office 365. i would like to export more than 25k emails from zoho to office 365 or gmail. can anyone help me to guide properly. this will help me to access my emails easily i have both account and can easily  do it with office 365 or gmail. i want two options. direct from zoho to office 365  or exported eml files from zoho to gmail. please suggest me both if possible 
                                                                                                  • Inquiry Regarding Image Display Issue in Campaign Duplication

                                                                                                    We are currently using Zoho Campaigns for email distribution to our clients. I would like to inquire about an issue we encountered. When duplicating a previously created and sent campaign from the "All Campaigns" section, the images used in the header
                                                                                                  • New integrations for Bigin: Zoho Sign, SalesIQ, and Marketing Automation

                                                                                                    Greetings, We're excited to share new integrations that make Bigin more powerful and useful for your business! Zoho Sign for Bigin Zoho Sign now integrates seamlessly with Bigin, enabling you to sign, send, and manage contracts or agreements without leaving
                                                                                                  • Add multiple users to a task

                                                                                                    When I´m assigning a task it is almost always related to more than one person. Practical situation: When a client request some improvement the related department opens the task with the situation and people related to it as the client itself, the salesman
                                                                                                  • What is Attendee Status 0 and 1?

                                                                                                    Hi there, I recently stumbled upon the API to get the attendee list and in the return value, there is a parameter called "status", and 0 supposed to mean not_attending, and 1 means attending. I cannot find this representation anywhere in the attendee
                                                                                                  • ZOHO BackStage

                                                                                                    How to get list of events, using ZOHO BackStage APIs. Is it possible OR not?
                                                                                                  • How to Customize Task Creation to Send a Custom Alert Using JavaScript in Zoho CRM?

                                                                                                    Hello Zoho CRM Community, I’m looking to customize Zoho CRM to send a custom alert whenever a task is created. I understand that Zoho CRM supports client scripts using JavaScript, and I would like to leverage this feature to implement the alert functionality.
                                                                                                  • Zoho Meeting iOS app update - Join breakout rooms, access polls, paste links and join sessions, in session host controls

                                                                                                    Hello, everyone! In the latest iOS version(v1.7) of the Zoho Meeting app, we have brought in support for the following features: Polls in meeting session Join Breakout rooms Paste link in join meeting screen Foreign time zone in the meeting details screen.
                                                                                                  • Calculate hours between 2 date/time fields

                                                                                                    Hi, Does anyone know if it is possible to get the number of hours between 2 date/time fields in a zoho crm custom function? Thanks, Michael
                                                                                                  • External ID validation.

                                                                                                    I added an external ID field as below in one of my custom modules: When creating records via the API using some value (eg: 762115b2-097e-43b2-bdba-f3924a5371a6) for this field, it works without any problem. I can create and even see the records on the
                                                                                                  • CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive

                                                                                                    Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
                                                                                                  • Create a button that executes a customized function

                                                                                                    Hello, I have created a summary view in which I combine the data from my items table and suppliers table. I would like to know if there is the possibility of adding a button somewhere in the view to be able to execute a function when clicked on it. I
                                                                                                  • Custom field doesn't fill when converting sales order to invoice

                                                                                                    Hi, When I convert a Sales Order to an Invoice one of the custom fields on a product line names "Subsidie" does not seem to fill in automatically. I manually have to select the product again by clicking on the product name in the order line en re-select
                                                                                                  • Can I use ZOHO calendar to schedule a Youtube video that is already in my youtube account, but listed as private or unlisted?

                                                                                                    I am creating Youtube videos and shorts and then uploading them to our Channel so others can view and approve. Once approved I would like to just schedule them over the next few days within Zoho. So far it looks like I have to re-upload the video to Zoho
                                                                                                  • How to Display a Logo Image on a Public Form?

                                                                                                    I would like to display a logo image in the header of a form. To achieve this, I added an Add Notes field to the form. The code below works perfectly for Zoho users accessing the form. However, when the form is made public, the image does not load properly:
                                                                                                  • Advice for my first project in Zoho

                                                                                                    Hello, how can I design and implement a customized ERP and CRM system using Zoho to automate and manage core business functions, including customer relationship management, property inventory, sales tracking, and financial processes. This is one of my
                                                                                                  • Associate Email API Internal Error

                                                                                                    I am trying to associate an already existing email within a function using the Related Emails API. To provide more context, I also have admin permissions and have ensured that the fields are correct and that I have admin permissions when associating the
                                                                                                  • Profit on Sales order

                                                                                                    Hi, would it be possible to implement a column at the Sales order overview of Purchase amount? So a field with the amount of all purchase related to this Sales order? This is very usefull so you will see the profit you made on this deal. I tried to get
                                                                                                  • Subform Data in v2 REST API

                                                                                                    What is the mechanism for adding subform data in the Creator v2 REST APIs?  There is nothing documented in the Data APIs documentation (https://www.zoho.com/creator/help/api/v2/).   I was able to determine how to GET the subform data by adding it to the
                                                                                                  • Is the filename of an attachment restricted to only certain languages?

                                                                                                    Hi, I tried to create a file card in a notebook, but I encountered an issue: when the filename of an attachment is in languages other than the main ones (such as English, Japanese, or Simplified Chinese......), syncing stops or the filenames become garbled
                                                                                                  • How to create comparison time periods like these examples

                                                                                                    In a Pivot Report I would like to be able to select any date range and show a set of metrics for that date range e.g. revenue, orders, units sold. I would then like to be able to compare to the previous period based on the amount of days on the selected
                                                                                                  • Overwrite Option for custom modules

                                                                                                    Hi Team, I noticed that the overwrite option is unavailable in Zoho Books when importing data for custom modules. This limitation makes it challenging to bulk update old data, as the only option is the 'bulk update' feature, which is restricted to 25
                                                                                                  • Zoho Creator - Zoho Analytics

                                                                                                    I am facing an issue in Zoho Analytics where I am still seeing deleted data from the Zoho Creator form I created. Could you please look into this and let me know what needs to be done?
                                                                                                  • Unable to send emails

                                                                                                    I have this email parth@mrcolumbus.in, but I couldnt send outgoing email. Can you please help?
                                                                                                  • Notifications push : Encourager le réengagement et renforcer la fidélité des utilisateurs efficacement

                                                                                                    Vous avez déjà souhaité engager et communiquer de manière proactive avec les utilisateurs, y compris lorsqu'ils utilisent votre application de manière peu active ? Zoho Apptics vous offre déjà des fonctionnalités qui vous permettent d'évaluer la performance,
                                                                                                  • Easy way to delete attachments

                                                                                                    I've reached my data limit and would like to run a view/report, and mass delete attachments. Is there an easy, fast way to do this? Moderation Update: Post Summary: There are two features the post discusses a) Easy way to remove Email attachments Will
                                                                                                  • How to add new deal to existing contact

                                                                                                    Hi, I want to add new deal to existing contact.
                                                                                                  • Domain verification is in progress... (How long do I need to wait?)

                                                                                                    Trying to setup my first email domain by connecting with GoDaddy. Have been here for quite some time and the screen is not changing. How long should this take?Send DataSend Data
                                                                                                  • 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
                                                                                                  • Linking an email to a Contact when the email is sent in deluge via sendmail

                                                                                                    The "to:" address in this code is a CRM Contact. Email address is forced unique in CRM This sendmail gets sent via a workflow which is in a custom module. It works, except that the outbound email does not appear (i.e, get linked to) the Contact such that
                                                                                                  • How to restore deleted Field

                                                                                                    I edited a field in zoho form and by accident I deleted a field (email address). The form is ongoing to be filled by respondent. Then, when I checked to the all entries and report, the email address is gone. I checked in audit log, there is a record that
                                                                                                  • How to select multiple notes at once in the PC client?

                                                                                                    In the PC client, you can select notes using ctr+LMB. But why can't you use shift+LMB? PC version 3.2.0
                                                                                                  • How I can add customized Invoice

                                                                                                    Hi, I wanna use a customized Invoice, how i can add that
                                                                                                  • Zoho Analytics Pivot Table - How to compare month vs last year same month

                                                                                                    Hi, I had created a pivot table with setup as below: Column: - Delivery Date Row: - Customer Group Data as column - Total amount (sum > normal) (show data of the month) - Total amount (sum > % difference from previous value) (compare between this month
                                                                                                  • Recorded imported goods

                                                                                                    I have imported some goods from a foreign vendor called ABC. to Bahrain. My Customs duty and VAT are paid by an agency called XYZ to authorities. I have paid the amounts to XYZ and they have paid to authorities in behalf of us using our TRN Number. Now
                                                                                                  • Notes created in mobile app not syncing with web notebook

                                                                                                    I have created certain notes in a new notebook in mobile app. The new notebook is also created using mobile app and when I logged in through web I am unable to see notebook that I have created using mobile app. there is no trace of notes in which i have created in mobile app on the web even after days of creating in mobile app This is not the case vise-a-versa. the notes and note book created on web are accessible on mobile app on real time.  this is very inconvenient and big demotivating factor
                                                                                                  • Match Transaction > Filter | Allow wildcards in search

                                                                                                    The Filter function is useful for narrowing down to a specific set of transactions. It would be useful to have the ability to use wildcards in search. e.g. customer name "starts with" or " * " as a placeholder. e.g. "National * " instead of "National
                                                                                                  • Next Page