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

                                                                                                            • Is there any way to recall an email sent using Zoho CRM?

                                                                                                              If an email is sent using Zoho Mail, there is a recall option/functionality that is available to the sender. Is there any way to recall an email if it was sent using Zoho CRM? I can't seem to find that option. Any help would be appreciated.
                                                                                                            • Quick Create needs Client Script support

                                                                                                              As per the title. We need client scripts to apply at a Quick Create level. We enforce logic on the form to ensure data quality, automate field values, etc. However, all this is lost when a user attempts a "Quick Create". It is disappointing because, from
                                                                                                            • is it possible to add more than one Whatsapp Phone Number to be integrated to Zoho CRM?

                                                                                                              so I have successfully added one Whatsapp number like this from this User Interface it seems I can't add a new Whatsapp Number. I need to add a new Whatsapp Number so I can control the lead assignment if a chat sent to Whatsapp Phone Number 1 then assign
                                                                                                            • Problem with reports due to "Connected" items change - Yes this IS a problem

                                                                                                              Now that the change has been made to use "connected" items I can no longer run the reporting I need in CRM. I should be able to start with Deals as the parent, connect down to the Account (Account_Name) on the deal as the child, then to any child items
                                                                                                            • Zoho sheet desktop version

                                                                                                              Hi Zoho team Where can I access desktop version of zoho sheets? It is important as web version is slow and requires one to be online all the time to do even basic work. If it is available, please guide me to the same.
                                                                                                            • Introducing notifications in the vendor portal

                                                                                                              Imagine this: You're a recruiter working with multiple vendors on a high-volume hiring project. You’ve just updated a job description after a last-minute change from the hiring manager. One of your vendors, however, is still working off the older version
                                                                                                            • CRM limit reached: only 2 subforms can be created

                                                                                                              we recently stumbled upon a limit of 2 subforms per module. while we found a workaround on this occasion, only 2 subforms can be quite limiting in an enterprise setting. @Ishwarya SG I've read about imminent increase of other components (e.
                                                                                                            • LESS_THAN_MIN_OCCURANCE - code 2945

                                                                                                              Hi I'm trying to post a customer record to creator API and getting this error message. So cryptic. Can someone please help? Thanks Varun
                                                                                                            • How to update "Lead Status" to more than 100 records

                                                                                                              Hello Zoho CRM, How do I update "Lead Status" to more than 100 records at once? To give you a background, these leads were uploaded or Imported at once but the lead status record was incorrectly chosen. So since there was a way to quickly add records in the system no matter how many they are, we are also wondering if there is a quicker way to update these records to the correct "Lead Status". I hope our concern makes sense and that there will be a fix for it. All the best, Jonathan
                                                                                                            • Analytics for notes created

                                                                                                              Is there a way I can see how many notes were created per day? Via reporting or analytics?
                                                                                                            • Add Custom Reports To Dashboard or Home Tab

                                                                                                              Hi there, I think it would be great to be able to add our custom reports to the Home Tab or Dashboards. Thanks! Chad
                                                                                                            • No TDS Deduction

                                                                                                              In some of our case, where we are reselling items at the same rate we purchased. In this scenario, Indian IT Law has a provision to request customer not to deduct TDS if the transaction value is same. TDS is paid by us (intermediary reseller) before we
                                                                                                            • Cannot update Recurring_Activity on Tasks – RRULE not accepted

                                                                                                              Hello, I am trying to update Tasks in Zoho CRM to make them recurring yearly, but I cannot find the correct recurrence pattern or way to update the Recurring_Activity field via API or Deluge. I have tried: Sending a string like "RRULE:FREQ=YEARLY;INTERVAL=1"
                                                                                                            • Add image to report...

                                                                                                              Greetings, I send a weekly color coded report via Creator email. I would like to add the legend somewhere in the report. Header, footer where ever. I have the legend saved on Google Drive and can access it via shared link. Sure someone has wanted to add
                                                                                                            • More controls for User Fields in CRM

                                                                                                              Dear All, We are here with a minor but crucial enhancement to the user fields—now set accessibility permissions to the records for user field. User field allows you to extend co-ownership of records to your peers. You can collaborate with them for certain
                                                                                                            • Calls to accounts rather than leads or contacts?

                                                                                                              So..... We have a dilemma and I'm hoping someone has encountered this before and figured out a fix. We have just migrated to Zoho. It's great.....expect for how "Calls" are handled.... We are B2B. We do not use the leads module. A "Lead/Prospect" for
                                                                                                            • Image Upload Field | Zoho Canvas

                                                                                                              I'm working on making a custom view for one of our team's modules. It's an image upload field (Placement Photo) that would allow our sales reps to upload a picture of the house their working on. However, I don't see that field as a opinion when building
                                                                                                            • Power of Automation :: Automated 'Delayed & Closed' Status Update Based on Due Date

                                                                                                              Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
                                                                                                            • Lead Blueprint transition in custom list view

                                                                                                              Hi, Is It possible to insert the Blueprint transition label in a custom Canvas list view? I am using Lead module. I see the status, but it would be great if our users could execute the Blueprint right from the list view without having to enter the detailed
                                                                                                            • Range names in Zoho Sheet are BROKEN!

                                                                                                              Hi - you've pushed an update that has broken range names. A previously working spreadsheet now returns errors because the range names are not updating the values correctly. I've shared a video with the support desk to illustrate the problem. This spreadsheet
                                                                                                            • Has anyone integrated SMS well for Zoho Desk?

                                                                                                              Our company does property management and needs to be able to handle inbound sms messages which create a ticket for Zoho Desk. We then need to be able to reply back from Zoho desk which sends the user an sms message. This seems like a fairly common thing
                                                                                                            • populate email address and name in zoho desk?

                                                                                                              Is it possible to populate the email address and name in the zoho desk widget? We only use it in the context of an authenticated user, so we already know the user's name and email. Thanks,
                                                                                                            • Are there default/pre-built dashboards in Zoho Desk?

                                                                                                              Hi, I am looking for some pre-built dashboard templates in Zoho Desk, similar to what we can find in CRM/Projects, etc Thank you
                                                                                                            • SAP S/4 HANA to CRM Integration - change the SAP Client ID

                                                                                                              Hi I am trying to push the business partners from SAP S/4 HANA to ZOHO CRM module. The SAP Client ID is 421 in my case....kindly let me know how do I specify the sap client because it's a dropdown with specific values as of now. Thanks Ravi Aswani
                                                                                                            • Enable Locations for Expense

                                                                                                              Hi, please enable Locations (ex Branches) for Zoho Expense so that there is consistency between this app and Zoho Books. Thanks in advance.
                                                                                                            • Adding branded signature to tickets reply

                                                                                                              Hi, i am unable to figure out how to add signatures with logo to tickets reply. please advice .
                                                                                                            • Zoho Marketing Automation 2.0 - Landing Page function not working

                                                                                                              Dear Zoho Team, I am working on implementing Zoho Marketing Automation 2.0, and am now looking into the section "Lead Generation". If I open the "Landing Pages" section, I immediately get an Error code: Error: internal error occurred. Can you help me
                                                                                                            • Zoho Mail Android app update: Manage folders

                                                                                                              Hello everyone! In the latest version(v2.9) of the Zoho Mail Android app update, we have brought in support for an option to manage folders. You can now create, edit, and delete folders from within the mobile app. You can also manage folders for the POP
                                                                                                            • How to share ticket numbers across different ticket types

                                                                                                              I'm running an event and have three different ticket types. Add on Event + Main Event - Early bird Main Event only - Early bird Add on Event only - Early bird And Standard class - shown but not available until early bird finishes Add on Event + Main Event
                                                                                                            • Adding Social Media Buttons to Basic Campaigns

                                                                                                              Hi, I'm quote new to using Zoho Campaigns and I can't work out how to add Social Media Buttons into my basic campaign? In MailChimp there's a button that brings the icons into your campaign for you. I've tried adding the social media icons as 'buttons' in Zoho but it's not looking great. Can anyone help? Thanks!
                                                                                                            • Hide Inactive Social Sign-In Providers from Login Screen

                                                                                                              Hello Zoho Team, We hope you are doing well. Currently, Zoho One allows admins to configure security policies and enable or disable Social Sign-In options for third-party providers such as Apple, Google, Microsoft, LinkedIn, Yahoo, Twitter, Facebook,
                                                                                                            • [Free Webinar] AI Agents in Zoho Creator - Creator Tech Connect

                                                                                                              Hello Everyone! We welcome you all to the upcoming free webinar on the Creator Tech Connect Series. The Creator Tech Connect series is a free monthly webinar that runs for around 45 minutes. It comprises technical sessions in which we delve deep into
                                                                                                            • Download All Attached Files

                                                                                                              It would be extremely useful to have "download-all" functionality for downloading files attached to a task, subtask, comment, forum post or hosted in the "Documents" section etc. We've instructed our users to zip multiple files prior to uploading, but of course they forget all the time. Having to download lots of files one-at-a-time off a comment or task wastes a lot of time.
                                                                                                            • unable to send message reason 554 5.1.8 Email outgoing blocked

                                                                                                              unable to send message reason 554 5.1.8 Email outgoing blocked
                                                                                                            • Ship via Carrier Not Working Since Commerce Update

                                                                                                              Since the recent update to the Commerce platform, I can no longer use the ship via carrier function. It will take me to the address screen and let me verify them but when I go to save and move tot he next screen it will not do anything. This is happening
                                                                                                            • automations: Can I execute a step on a specific date?

                                                                                                              I have created a form in Zoho forms, and created a contacts list. I have also begun setting up an automation with the intention of sending the form to the contact list on a specific date every month (via email) for the entire year (essentially sending
                                                                                                            • Zoho Expense - The ability to add detail to a Trip during booking

                                                                                                              As an admin, I would like the ability to add more detail to the approved Trips. At present a requestor can add flights, accommodation details and suggest their preferences. It would be great if the exact details of the trip could be added either by the
                                                                                                            • Adding Folders in Android App

                                                                                                              Is it possible to create a new email folder within the Zoho Mail Android app?  Or can this only be done from the desktop version of Zoho Mail? Cheers!
                                                                                                            • Schedule Exports for Regular Project Updates

                                                                                                              Tracking project data often means exporting data at regular intervals. Instead of manually exporting data every time, users can schedule exports for Phases, Tasks, and Tasks in Zoho Projects. These exports can be set to run once, daily, weekly, or monthly
                                                                                                            • Question about custom fields using Pivot Tables.

                                                                                                              I have created a pivot table showing annual revenue of a client and how much payment that client is paying my company. Is there a way using pivot table to add an additional field that subtracts those to fields / shows me a percentage of that difference?
                                                                                                            • Next Page