Kaizen #22 - Connections in Zoho CRM

Kaizen #22 - Connections in Zoho CRM

Hello everyone!

Welcome back to another post in the Kaizen series!
This week, we will discuss Connections in Zoho CRM.

In this post, we will discuss the following:
  1. What are connections?
  2. Authentication types
  3. Creating a connection
  4. Using a connection

1. What are Connections?
A Connection (or a connector) is a simple authentication mechanism to connect your Zoho CRM account with a third-party app. 
 
Zoho provides default integration support to a wide range of apps like core Google services (Contacts, Calendar, and Google Ads) and Microsoft software (MS Office, MS Outlook, etc).
However, there is no default integration with third party services like PandaDoc, SignEasy etc,. In these cases, you can use a connector to expand Zoho's third-party support. Connectors use the OAuth 2.0 or other authentication types to facilitate this integration.

You can use connections to invoke any third-party apps' REST APIs and get access to the authenticated data through your functions or widgets.

Zoho provides more than 20 connections to the most popular third-party apps, out of the box. You can also create your own connection and integrate your app with Zoho CRM.

2. Authentication types
Since different services have different methods of authentication for their service, Connections are equipped with four different modes of authentication.
      a. Basic Authentication
      b. API Key
      c. OAuth 1.0
      d. OAuth 2.0

a. Basic Authentication
This is the authentication method where the user's username and password are sent in the header, form data, or the query string in the format username:password. This method uses the Base64 encoding standard to encode the username and password.

b. API Key
This is a token that the client provides that you can send in the query string or in the header. The API key is unique to every user and stays the same for that user as long as the user uses the service.

c. OAuth 1.0
This method uses a Request Token and an Access Token to get access to the resources on the resource server. The access token does not expire until the user revokes it.

d. OAuth 2.0
This method provides an app limited access by providing an access token only to specific resources. The access token is valid only for an hour.

3. Creating a Connection
To create a new connection,
  1. Go to Setup > Developer Space > Connections
  2. Click Get Started. The Create Connection page opens.
  3. The Pick your Service tab lists all the connections that are already available. Choose the one that meets your needs.
  4. If any third-party app is not listed under this tab, you can add a new service under the Custom Service tab.
  5. For already existing services (under the Pick Your Service tab),
    a. Select the service of your choice.
    b. Enter the details of the connection such as the
    name and choose the scope you require from the list.
    c. Click
    Create and Connect. The below image shows a sample connection created for the YouTube app, and you can use the code shown in the box to invoke the YouTube APIs.
  6. For a new service (services not listed under the Pick Your Service tab),
    a. Click the Custom Service tab.
    b. Enter the name of the service and choose the authentication type that the third-party service supports.
    c. For services that use the OAuth1.0 or OAuth2.0 protocol, enter the following details:
    Client ID and Secret you obtained from the third-party service.
    The URLs to obtain the request token and the access token (OAuth1.0).
    The URLs to obtain the access token and refresh token (OAuth 2.0).
    You must obtain these details from the third-party service's documentation.
    The below image shows a sample connection created for the third-party service "SignEasy".

  7. Enter the name of the connection and the required scope.
  8. Click Create and Connect.
  9. The connection will be created and the summary will be displayed.
    The system also displays the code you must use in a function to invoke the connection.
    The below image shows the sample connection created for the third-party service "SignEasy". You can use the code in the box to use the APIs of SignEasy.
  10. Where, 
    url: The URL that you can obtain from the third-party service.
    type: The HTTP request method (GET, POST, PUT, or DELETE) that the request performs.
    parameters: The parameters that the function uses to replace the dynamic values present in the API with user-specific values.

4. Using a Connection
After creating a connection, you can use them in functions to invoke them.

Let us consider a case where you want to send out newsletters through a MailChimp campaign to the contacts stored in Zoho CRM. Before you can send them the newsletters, you want to obtain their consent through a consent form stored in Google Drive. 
Here, you must establish a connection between MailChimp and Google Drive and have the consent form as a button in the View page of the Contacts module in CRM.
You can choose to place this widget as a button in the View page of a contact. When the CRM user (an agent) clicks this button, the Consent form widget opens where the agent fills the details of the user.
This triggers the function where an email is sent to the customer. When the customer grants consent, the details of that contact are added to the MailChimp campaign list.

Simply put, you must
      a. Establish a connection between Google Drive and MailChimp.
      b. Write a function to call the APIs of both these apps.
      c. Make the function available as an API.
      d. Create a widget and invoke the function.

Let us now see these steps in detail.

a. Establish a connection between Google Drive and MailChimp

Follow the steps in the "Create a Connection" section, and create connections for Google Drive and MailChimp.





b. Write the function code
  1. Go to Setup > Developer Space > Functions > +New Function.
  2. Enter details like the function name, display name, description, and choose the function category (Standalone, in our case).
  3. Write the code in the console as shown below. You can find the code as an attachment to this post.
    What does this sample function do?
    a. Invokes the MailChimp API.
    b. Checks for the Campaign ID.
    c. Checks for the email address. If the email already exists on the campaign list, throws the message "The member has already subscribed to the newsletter." Otherwise, adds the email to the campaign list.
    d. Invokes the Google Drive API to get the link of the Consent form.
    e. If the consent form exists on Google Drive, sends the form to the email address.
    e. If the form does not exist, throws the error "No document found".


  4. This function takes the following parameters
    listId (string) - The Campaign ID from MailChimp,
    emailAddress (string) - The email ID of the contact you want to send the newsletter to,
    extraDetails (string) - To capture any extra information about the contact after they grant consent such as the mobile number, address etc.
  5. Click Save and Execute. Provide the listId, emailAddress, and extraDetails to check if the function works as expected.
  6. Click Close.

c. Make the function available as an API
  1. Go to Setup > Developer Space > Functions.
  2. Choose the required function and click the Settings icon. Select REST API.
  3. Enable the OAuth2.0 and API key sliders and click Save.
  4. The function is now available as an API. You can use the URL as a webhook to trigger the function or use the API name of the function in your code to trigger it.
For more details about functions, refer to this post.

d. Create a widget and invoke the function
Since the function is now available as an API, you can use it in any widget and trigger the function based on your needs.
The HTML and the script for the below consent form is attached to this post.
You can also write your own implementation of the widget. Refer to this page to know how.

What does the sample widget code do?
a. The HTML renders the widget.
b. When the user hits the "Subscribe" button, the script invokes the connection and calls the above function (4.b.3) via JavaScript.



We hope you found this post useful. Stay tuned for more!

Cheers!


    Access your files securely from anywhere







                            Zoho Developer Community





                                                  Use cases

                                                  Make the most of Zoho Desk with the use cases.

                                                   
                                                    

                                                  eBooks

                                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho Desk.

                                                   
                                                    

                                                  Videos

                                                  Watch comprehensive videos on features and other important topics that will help you master Zoho Desk.

                                                   
                                                    

                                                  Webinar

                                                  Sign up for our webinars and learn the Zoho Desk basics, from customization to automation and more

                                                   
                                                    
                                                  • Desk Community Learning Series


                                                  • Meetups


                                                  • Ask the Experts


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner




                                                            • Sticky Posts

                                                            • Kaizen #197: Frequently Asked Questions on GraphQL APIs

                                                              🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                            • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                              Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                            • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

                                                              Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
                                                            • Kaizen #193: Creating different fields in Zoho CRM through API

                                                              🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                            • Client Script | Update - Introducing Commands in Client Script!

                                                              Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands


                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources


                                                                                              Zoho Writer Writer

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ






                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                            • Recent Topics

                                                                                                            • One Contact with Multiple Accounts with Portal enabled

                                                                                                              I have a contact that manages different accounts, so he needs to see the invoices of all the companies he manage in Portal but I found it not possible.. any idea? I tried to set different customers with the same email contact with the portal enabled and
                                                                                                            • WebDAV / FTP / SFTP protocols for syncing

                                                                                                              I believe the Zoho for Desktop app is built using a proprietary protocol. For the growing number of people using services such as odrive to sync multiple accounts from various providers (Google, Dropbox, Box, OneDrive, etc.) it would be really helpful if you implemented standard protocols such as WebDAV / FTP / SFTP so that alternative inc clients can be used.
                                                                                                            • What's New in Zoho Inventory | Q2 2025

                                                                                                              Hello Customers, The second quarter have been exciting months for Zoho Inventory! We’ve introduced impactful new features and enhancements to help you manage inventory operations with even greater precision and control. While we have many more exciting
                                                                                                            • How to refresh a ticket view ?

                                                                                                              I am doing a widget where I send a rest api call to make a new draft to the ticket I am viewing. The issue is sometimes it refresh a ticket view and I can see inserted draft right away, but sometimes I do not see it even if it is inserted correctly and
                                                                                                            • Ugh! - Text Box (Single Line) Not Enough - Text Box (Multi-line) Unavailable in PDF!

                                                                                                              I provide services, I do not sell items. In each estimate I send I provide a customized job description. A two or three sentence summary of the job to be performed. I need to be able to include this job description on each estimate I send as it's a critical
                                                                                                            • Merge Items

                                                                                                              Is there a work around for merging items? We currently have three names for one item, all have had a transaction associated so there is no deleting (just deactivating, which doesn't really help. It still appears so people are continuing to use it). I also can't assign inventory tracking to items used in past transactions, which I don't understand, this is an important feature moving forward.. It would be nice to merge into one item and be able to track inventory. Let me know if this is possible.
                                                                                                            • Supervisor Rules - Zoho Desk

                                                                                                              Hi, I have set up a Supervisor Rule in Zoho Desk to send an email alert when a ticket has been on hold for 48 hours. Is there a way to change it so that the alert only sends once and not on an hourly basis? Thank you Laura
                                                                                                            • ResponseCode 421, 4.7.0 [TSS04] Messages from 136.143.188.51 temporarily deferred due to user complaints

                                                                                                              Had email bounce. Let me know if you can fix this. Thanks. Michael
                                                                                                            • Zoho Canvas - Custom templates for related lists

                                                                                                              Hi, I see that the example pages load always one of our related lists in a custom template, but I dont know how to work with that:  1) How can i make my own custom templates for related lists?  2) Where and how can i check out existing custom templates?
                                                                                                            • Automation #15: Automatically Adding Static Secondary Contacts

                                                                                                              Rockel is a top-tier client of Zylker traders. Marcus handles communications with Rockel and would like to add Terence, the CTO of Zylker traders to the email conversations. In this case, the emails coming from user address rockel.com should have Terence
                                                                                                            • New Zoho triggers Google Dangerous flag due toabnormal charcters

                                                                                                              Just signed up and doing my first email test. I sent it to my google email account but it got flagged as Dangerous" due abnormal characters. My DNS setup looks ok. Page snips attached Help Please Thanks, Rick DC PowerWorld
                                                                                                            • Is there a API to fetch tasks in a Board/Section

                                                                                                              I am writing a scheduled function that retrieves all the tasks and send an reminder on cliq. I cannot seem to find a API to fetch tasks (by user / board / section) What are the way to fetch tasks?
                                                                                                            • Having trouble fetching contents of Zoho Connect Feeds using the API, requesting alternative API documentation.

                                                                                                              I'm trying to retrieve feed/post data from Zoho Connect using the API but facing challenges with the current documentation. What I've tried: OAuth authentication is working correctly (getting 200 OK responses) Tested multiple endpoints: /pulse/nativeapi/v2/feeds,
                                                                                                            • Adding an Account Name to Tasks/Reminders

                                                                                                              Does anyone know how to add the related account name to a task?  When we look at the list of activities and when the reminders pop up, there is no way of quickly seeing who the account is. 
                                                                                                            • Top Bar Shifting issue still not fixed yet

                                                                                                              I mentioned in a previous ticket that on Android, the top bar shifts up when you view collections or when you're in the settings. That issue still hasn't been fixed yet. I don't wanna have to reinstall the app as I've noticed for some reason, reinstalling
                                                                                                            • Triggering Zoho Flow on Workdrive File Label

                                                                                                              Right now Im trying to have a zoho flow trigger on the labeling/classification of a file in a folder. Looking at the trigger options they arent great for something like this. File event occurred is probably the most applicable, but the events it has arent
                                                                                                            • SendMail to multiple recipients

                                                                                                              Hi, I'm trying to send an email to a list of recipients.  Right now the "to" field is directed to a string variable. (List variables won't work here). In the string variable, how can I make it work? trying "user@app.com;user2@app.com" or "user@app.com; user2@app.com" just failed to send the emails. Ravid
                                                                                                            • Populate drop down field from another form's subform

                                                                                                              Hello, I found how to do that, but not in case of a subform. I have a Product form that has a subform for unit and prices. A product might have more than one unit. For example, the product "Brocoli" can be sold in unit at 3$ or in box of 10 at 25 $. Both
                                                                                                            • Usar o Inventory ou módulo customizado no CRM para Gestão de Estoque ?

                                                                                                              Minha maior dor hoje em usar o zoho é a gestão do meu estoque. Sou uma empresa de varejo e essa gestão é fundamental pra mim. Obviamente preciso que esse estoque seja visível no CRM, Inicialmente fiz através de módulos personalizados no próprio Zoho CRM,
                                                                                                            • Signup forms behaviour : Same email & multiple submissions

                                                                                                              My use case is that I have a signup form (FormA) that I use in several places on my website, with a hidden field so I can see where the contact has been made from. I also have a couple of other signup forms (FormB and FormC) that slight differences. All
                                                                                                            • getting error in project users api

                                                                                                              Hello, I'm getting a "Given URL is wrong" error when trying to use the Zoho Projects V3 API endpoint for adding users to a project. The URL I'm using is https://projectsapi.zoho.com/api/v3/portal/{portalid}/projects/{projectid}/projectusers/ and it's
                                                                                                            • Change total display format in weekly time logs

                                                                                                              Hi! Would it be possible to display the total of the value entered in the weekly time log in the same format that the user input? This could be an option in the general settings -> display daily timesheet total in XX.XX format or XX:XX.
                                                                                                            • Different Company Name for billing & shipping address

                                                                                                              We are using Zoho Books & Inventory for our Logistics and started to realize soon, that Zoho is not offering a dedicated field for a shipping address company name .. when we are creating carrier shipping labels, the Billing Address company name gets always
                                                                                                            • How to display historical ticket information of the total time spent in each status

                                                                                                              Hi All, Hoping someone can help me, as I am new to Zoho Analytics, and I am a little stuck. I am looking to create a bar chart that looks back over tickets raised in the previous month and displays how much time was spent in each status (With Customer,
                                                                                                            • Zoho Projects iOS app update: Global Web Tabs support

                                                                                                              Hello everyone! In the latest version(v3.10.10) of the Zoho Projects app update, we have brought in support for Global Web Tabs. You can now access the web tabs across all the projects from the Home module of the app. Please update the app to the latest
                                                                                                            • Zoho Community Weekend Maintenance: 13–15 Sep 2025

                                                                                                              Hi everyone, We wanted to give you a heads-up that Zoho Community will undergo scheduled maintenance this weekend. During this period, some community features will be temporarily unavailable, while others will be in read-only mode. Maintenance Window:
                                                                                                            • Agent Performance Report

                                                                                                              From data to decisions: A deep dive into ticketing system reports An agent performance report in a ticketing system provides a comprehensive view of how support agents manage customer tickets. It measures efficiency and quality by tracking key performance
                                                                                                            • Show both Vendor and Customers in contact statement

                                                                                                              Dear Sir, some companies like us working with companies as Vendor and Customers too !!! it mean we send invoice and also receive bill from them , so we need our all amount in one place , but in contact statement , is separate it as Vendor and Customer, 
                                                                                                            • URL validation

                                                                                                              We use an internal intranet site which has a short DNS name which Zoho CRM will not accept.   When attempting to update the field it says "Please enter a valid URL". The URL I am trying to set is http://intranet/pm/ Our intranet is not currently setup with a full DNS name and given the amount of links using the shortname probably isn't a feasible change for us.
                                                                                                            • Pourquoi dans zohobooks version gratuite on ne peut ajouter notre stock d'ouverture??

                                                                                                              Pourquoi dans zohobooks version gratuite on ne peut ajouter notre stock d'ouverture ??
                                                                                                            • How can I adjust column width in Zoho Books?

                                                                                                              One issue I keep running into is as I show or hide columns in reports, the column widths get weird. Some columns have text cut off while others can take a fourth of the page for just a few characters. I checked report layout guides and my settings, but
                                                                                                            • Invalid value passed for file_name

                                                                                                              System generated file name does not send file anymore - what is the problem?
                                                                                                            • Custom Function for Estimates

                                                                                                              Hey everyone, I was wondering if there was a way to automate the Subject of an estimate whenever one is created or edited: * the green box using following infos: * Customer Name and Estimate Date. My Goal is to change the Subject to have this format "<MyFirm>-Estimate
                                                                                                            • This domain is not allowed to add. Please contact support-as@zohocorp.com for further details

                                                                                                              I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
                                                                                                            • Search in module lists has detiorated

                                                                                                              Every module has a problem with the search function :-/
                                                                                                            • YouTube Live #1: AI-powered agreement management with Zia and Zoho Sign

                                                                                                              Hi there! We're excited to announce Zoho Sign’s first YouTube live series, where you can catch the latest updates and interact with our Zoho Sign experts, pose questions, and discover lesser-known features. We're starting off by riding the AI wave in
                                                                                                            • Search in module lists has detiorated

                                                                                                              Every module has a problem with the search function :-/
                                                                                                            • Sales Receipts Duplicating when I run reports why and how do we rectify this and any other report if this happens

                                                                                                              find attached extract of my report
                                                                                                            • Add Zoho Forms to Zoho CRM Plus bundle

                                                                                                              Great Zoho apps like CRM and Desk have very limited form builders when it comes to form and field rules, design, integration and deployment options. Many of my clients who use Zoho CRM Plus often hit limitations with the built in forms in CRM or Desk and are then disappointed to hear that they have to additionally pay for Zoho Forms to get all these great forms functionalities. Please consider adding Zoho Forms in the Zoho CRM Plus bundle. Best regards, Mladen Svraka Zoho Certified Consultant and
                                                                                                            • Bigin: filter Contacts by Company fields

                                                                                                              Hello, I was wondering if there's a way to filter the contacts based on a field belonging to their company. I.e.: - filter contacts by Company Annual Revenue field - filter contacts by Company Employee No. field In case this is not possibile, what workaround
                                                                                                            • Next Page