Kaizen#135 : Third Party Integration using Client Script

Kaizen#135 : Third Party Integration using Client Script

Hello everyone !

Welcome back to another enlightening Kaizen post! In this Kaizen post, we'll explore how to invoke a Third-Party API through Client Script. This enables you to seamlessly connect to external services and fetch dynamic data. Stay tuned to discover the step-by-step process of invoking a Third-Party API withi your client-side scripts. This post will answer the question on Importing data from third party API.


In this Kaizen post,

  1. Overview
  2. What are Connections?
  3. How to invoke a Connection in Client Script?
  4. Use Case 
  5. Solution 
    1. Create a Connection.
    2. Add to Trusted Domain.
    3. Invoke the connection in Client Script and populate the field using Client Script.
  6. Summary
  7. Recommended Reads


1. Overview



To accomplish Third Party Integration using Client Script,  you need to create a Custom service Connection and invoke the connection in Client Script. Once you get the response from the Third Party API call, you can populate or display the required data using Client Script. 


2. What are Connections?

Connections in Zoho CRM  is used to establish authentication with other Zoho or third-party services to perform integration with them. Check this Kaizen post to know more about Connections and Authentication types.

3. How to invoke a Connection in Client Script?

To invoke a Connection using Client Script, you need to use the invoke method with the required parameters.

Syntax :                  invoke(connection_name, url, method, param_type, parameters, headers)  




Note: 

           Whenever you want to make third party API calls, you need to whitelist them by adding the third party domain to Trusted Domain.                     


4. Use Case :

Zylker is a manufacturing organisation. Orders will be placed by the Salesperson by creating a record in the custom module "Requests" . The Admin wants to populate the distance between Manufacturer Location and Seller Location in the "distance" field using the Distance Matrix API.



5. Solution :
To populate the field "Distance" based on the response recevied from the third party API call using Client Script you need to follow the below steps.
  1. Create a Connection.
  2. Add to Trusted Domain.
  3. Invoke the connection in Client Script and populate the field using Client Script.

1. Create a Connection :

  • In Zoho CRM, go to Setup → Developer Hub → Connections and click "Create Connection"


  • Under "1. Pick Your Service" , select "Custom Services" and click "Create New Service".


  • Enter the following details and click "Create Service".



  • Now,  you will be prompted to enter the authentication credentials, Here it is the API Key. Enter the value and click "Connect".



2. Add to Trusted Domain:
  • Whenever you want to make third party API calls, you need to whitelist them by adding the third party domain to Trusted Domain.

  • To do this go to Setup → Security Control → Trusted Domain.


  • Click New Trusted Domain.


  • Enter the Name and Domain details and click Save.
3. Invoke the connection in Client Script and populate the field using Client Script.

  • The next step is to invoke the connection using Client Script using the invoke method.
  • For this, create a Client Script on Create Page of "Requests" custom module and specify the event as onChange Page event as follows and click Next.
     


  • Enter the below script and click Save.

Script :

  1. if (field_name == "Seller_Location" || field_name == "Manufacturer_Location") {
  2.     let origins = ZDK.Page.getField('Manufacturer_Location').getValue();
  3.     let destinations = ZDK.Page.getField('Seller_Location').getValue();
  4.     let dist = ZDK.Page.getField('Distance');
  5.     dist.setReadOnly(true);
  6.     var response = ZDK.Apps.CRM.Connections.invoke("measuredistance", `https://api.distancematrix.ai/maps/api/distancematrix/json?`, "GET", 1, { "origins": origins, "destinations": destinations }, {});
  7.     let distance = response._details.statusMessage.rows[0].elements[0].distance.text;
  8.     dist.setValue(distance);
  9. }
  • Here the values of the fields Seller_Location and Manufacturer_Location are captured using getValue() and are stored in origins and destinations respectively. The Third Party API - Distance Matrix returns the distance between origins and detstinations. So you need to pass these two parameters in the invoke() method and  capture the response and populate the distance to the "Distance" field using setValue() method.
  • As per the following syntax, you should pass the required parameters.
Syntax : invoke(connection_name, url, method, param_type, parameters, headers) 

  • The connection_name  is "distanceMatrix".
  • The URL is https://api.distancematrix.ai/maps/api/distancematrix/json?&key=${key}Note that the "key" is represented as ${key} as it is a variable. This is the variable name that you mentioned while creating the Connection.
  • GET is the method as we are fetching data.
  • For URL parameters , you should mention 1.
  • Parameters are { "origins": origins, "destinations": destinations } 
  • {} represents that there are no headers.
  • Now, create a record in Requests and enter the location details. You can see the "Distance" field getting populated as shown below.

  • Here is how the Client Script works.


6. Summary :

In this post we have discussed,
  • How to invoke a third-party API call in Client Script
  • How to create a Custom Service Connection
  • How to use Connections in Client Script.
  • How to add a new Trusted Domain
  • How to populate a field with the response of a third-party API call.

7. Recommended Reads :
______________________________________________________________________________________________________________________________________

Previous post :  Kaizen #134 : Manipulating Rich Text Field (RTF) using Zoho CRM APIs | Kaizen Collection : Home.                     

Join us for our upcoming Zoho CRM Developer Series: Zoho CRM APIs, where you can explore more about Zoho CRM APIs. Register Now!  
  



Cheers!
Maadhari M






    • Recent Topics

    • Kaizen #57 - Mass Update API in Zoho CRM

      Hello everyone! Welcome back to yet another post in the Kaizen series. This week, we will discuss the Mass Update API in Zoho CRM. In this post, we will cover the following: 1. Introduction 2. Mass Update Records API  3. Schedule Update and Get Status
    • Getting Attachments in Zoho Desk via API

      Is there a way to get attachments into Zoho Desk via an API?      We have a process by which a zoho survey gets sent to the user as a link in a notification.    The survey has several upload fields where they can upload pdf documents.    I've created
    • Multiple currencies - doesn’t seem to work for site visitors / customers

      I am trying to understand how the multiple currency feature works from the perspective of the website visitor who is shopping on my Zoho Commerce site. My site’s base currency is US Dollars (USD) but my store is for customers in Costa Rica and I would
    • Pincode based Product Restriction

      we have different types of products. 1) Very bulky items like plywood. 2) Too delicate items like glass These type of products we want to sell to local customers. Other products we want to supply all over India. There should be an option to restrict products
    • Can multiple agents be assigned to one ticket on purpose?

      Is it possible to assign one ticket to two or more agents at a time? I would like the option to have multiple people working on one ticket so that the same ticket is viewable for those agents on their list of pending tickets. Is something like this currently
    • Recruit paid support?

      Hi all, Could anyone who has paid support package advise if it provides value for money with regards to support response times? Exploring the idea as unfortunately when we have faced issues with Recruit it has been a 7+ day timescale from reporting to
    • Related Lists filter

      I have Contacts showing in our Accounts module. I customized the Contacts module with an Employment Status field, with the following picklist options: "Primary Contact", "Secondary Contact", "Active Staff(not a main contact)", and "No longer employed".
    • Stock count by bin location

      Is there a configuration to make a stock count by bin or area and not by product. these is useful to manage count by area Regards
    • Standalone custom function not generating logs

      Why dont't standalone custom functions generate logs when the're called from another function? I have some functions (workflow, buttons and blueprint) that have common parts, so I put that part in a standalone function which is called from the others.
    • Automated log-out/session end

      I'm concerned about security of our data. Is it possible to set an automatic time-out for user sessions on Zoho CRM, after a certain period of inactivity or when the session reaches a certain duration (12 hours perhaps)? 
    • Add "Reset MFA" Option for Zoho Creator Client Portal Users

      Hello Zoho Creator Team, We hope you are doing well. We would like to request an important enhancement related to Multi-Factor Authentication (MFA) for client portal users in Zoho Creator. Currently, Creator allows us to enforce MFA for portal users,
    • Support Bots and Automations in External Channels

      Hello Zoho Cliq Team, How are you? We actively use Zoho Cliq for collaboration, including with our external developers. For this purpose, external channels are a key tool since they work seamlessly within the same interface as all of our other channels
    • Urgent Security Feature Request – Add MFA to Zoho Projects Client Portal Hello Zoho Projects Team,

      Hello Zoho Projects Team, We hope you are doing well. We would like to submit an urgent security enhancement request regarding the Zoho Projects Client Portal. At this time, as far as we are aware, there is no Multi-Factor Authentication (MFA) available
    • Creator HTML page refresh

      Hi, I have added around 5 different html snippets in single creator page. I understand, I can refresh the entire page from page script using Navigational URLs https://help.zoho.com/portal/en/kb/creator/developer-guide/others/url-patterns/articles/navigational-urls
    • Zoho Desk - Custom Module Related List Columns on Tickets

      I have a custom module in Zoho Desk called Asana Tasks, each task has a lookup to a Ticket. On the Ticket I want to see the columns of the Asana Tasks in the related list . Is there a way to do this? Right now it just has the name of the record and I
    • Google Analytics import data inaccurate (as of October 11, 2025)

      We have Zoho Analytics connected to GA4 to import daily event data. This has been running without issue for a couple of years. However, a month ago we started noticing discrepancies. All data until October 10 lines up perfectly - October 11 onward is
    • What is your opinion of the new UI?

      Hi Everyone, I would like to see what everyone thinks of the new Zoho One Dashboard. I don't get it, but perhaps I'm missing something. What are your thoughts?
    • What are the OAuth scopes needed to access the Zoho MCP server?

      I think I'm authenticating with the MCP server endpoint successfully using a bearer token but I can't successfully initialize an MCP session. I'm using the official MCP Python sdk (https://github.com/modelcontextprotocol/python-sdk). I get as far as here
    • Support Uploading YouTube Videos Longer Than 60 Minutes

      Hi Zoho Social Team, How are you? We would like to request support for uploading YouTube videos longer than 60 minutes directly through Zoho Social. Your support team informed us that Zoho Social currently cannot upload videos over 60 minutes due to “API
    • Account blocked for IMAP use

      Hello, My email client (Evolution) can't sync mail anymore. It gives the error: "Your account is temporarily blocked for IMAP use. This may happen if you exceed the maximum number of simultaneous IMAP connections allowed. Kindly try again after some time."
    • Is SMTP included in the free plan?

      My client has a Zoho Mail Free 14 day trial that ends tomorrow. She has set up a domain email address with SMTP on a third party app and is wondering if it will continue working once her plan downgrades to the free forever plan. Thanks
    • Zoho mail issue.

      I have verified my domain ohhoexpress.online by adding necessary TXT and MX records. But when I am sending email to any external email id, it is showing as zohomail.com. Also while I am sending mail to internal mail id, it is saying user not found whereas
    • My email is blocked from sending

      I get this message when I try to send any message .. > Unable to send message, Reason 554 5.1.8 Email Outgoing Blocked We have urgent emails to send and the issue continues to persist from yesterday. Please help us with this issue as soon as possibl
    • [WEBINAR] Smooth year-end closure with Zoho Books (KENYA)

      Hello there, This webinar is for all Kenyan businesses looking to wrap up their financial year smoothly! Join our free session to learn how Zoho Books can simplify your year-end process. What to expect from this webinar: - All the latest updates in Zoho
    • cannot recieve or send emails

      we are not recieving or cannot send emails.Shows sysytem error
    • Zoho Sites - contact us form

      I have added a contact us form to my website. I wanted to change the layout so I deleted the section of Contact Us form. When I again try to add the section of Contact Us form, it shows error that "This form already exists on this page."  I am unable
    • Setting checkbox value on template in Sign from Creator

      Good day, Please help me understand how do I set a tick from a checkbox in Creator into a checkbox on a Sign template. Below is the only values on the Sign template and the code from Creator, "field_boolean_data": {}, "field_date_data": {}, "field_radio_data":
    • Zoho Forms - Improve the CRM integration field to query data from more than one module

      Hi Forms team, Something I get stuck on regularly is pre-populating a form with data when that data is spread across 2 or 3 modules. For example Contacts, Accounts and Deals. I don't want to duplicate the information in CRM so I end up writing a function
    • switching from POP3 to IMAPI do I need to change settings in Web email?

      hi so I am using Outlook with My Zoho mail, also have Verizon email /AOL. they no longer support POP3 and said imapi is much better, so I want to switch my ZoHo to imapai. I googled and it said i need to change it in my account....i looked at my account
    • What functionality is new in the Z025 Spaces UI dashboard compared to the previous Zoho One dashboard?

      My company is interested in creating a revamped dashboard this coming year, and are trying to weigh different platform options. The new Spaces UI is said to be a more "feature-rich" dashboard experience than the previous. Could a developer please explain
    • Collections Management: #5 Convenience on Offer, using Self-Checkout

      "Is this the right page? Oh, now, it wants my address again. Why am I being redirected?" These were the exact thoughts running through Karan's mind as he tried to subscribe to an application he genuinely liked. He clicked "Buy Now", expecting a quick
    • Uploading a signed template from Sign to Creator

      Good day, Please help me on how to load a signed document back into Creator after the process has been completed in Sign. Below is the code that I am trying, pdfFile = response.toFile("SignedDocument_4901354000000372029.pdf"); info pdfFile; // Attach
    • Tip #50- A Closer Look at the Unattended Access Dashboard- 'Insider Insights'

      Having complete visibility and quick access to everything you need certainly makes managing multiple remote devices a lot easier, and that is precisely what the Unattended Access Dashboard in Zoho Assist is designed to offer. Once you go to the Unattended
    • Super Admin Logging in as another User

      How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Moderation Update (8th Aug 2025): We are working
    • Zoho CRM Portal User Timeline History Unavailable

      Hi Support Team, We have noticed a feature limitation in the Zoho CRM portal. We created a portal for our vendors to edit records directly, but when vendors make updates, the Modified Time and Date fields are not being updated. Additionally, these updates
    • New in Smart Prompt: Record Assistant for contextual assistance, and support for new AI models

      Smart Prompt helps teams stay informed and move faster by providing relevant suggestions where work happens in CRM. With this update, Smart Prompt becomes more adaptable to your organization’s AI preferences. You can now choose which Large Language Model
    • Almost all Flows are being queued

      A few days ago I saw one of my Flows status was Queued. This was the first time this had ever happened. Now, almost every Flow that triggers is Queued for at least a few minutes. If I re-trigger the Flow (which causes separate problems) they sometimes
    • Zoho Map integration tasks have changed - you need to "Locate all instances of Zoho Map integration tasks in your Deluge scripts by searching for the v1 marker... before 16 January 2026"

      Details of an issue specific to Zoho CRM + Deluge Functions (originally posted in this forum) can be found here: https://help.zoho.com/portal/en/community/topic/zoho-map-integration-tasks-have-changed-you-need-to-locate-all-instances-of-zoho-map-integration-tasks-in-your-deluge-scripts-by-searching-for-the-v1-marker
    • How to update custom multi-user field in Zoho Projects?

      I'm trying to update custom multi-user fields in Zoho Projects via a Deluge function in CRM. The code I have so far is below. It works for updating standard project fields and single-line custom fields, but it does not work to update multi-user fields.
    • Tip of the Week #75– Manage your social media messages from a single shared inbox.

      Are you tired of jumping between apps or browser tabs to reply to your business's Facebook and Instagram DMs? Handling customer messages on social media might seem simple, but switching between multiple platforms can easily lead to lost messages, duplicate
    • Next Page