Extension Pointers #1: A step-by-step guide to integrate Google Contacts using Sigma

Extension Pointers #1: A step-by-step guide to integrate Google Contacts using Sigma

Integrating and syncing data is a significant factor for effective customer relationship management.

Let's consider a scenario where an entrepreneur is planning on starting a new venture. An important factor in propelling any business towards success is a solid customer base. Maintaining important information about potential customers is also a critical element in managing a business effectively. In this post, we want to show you how to establish an integration that will manage data synchronization between different services efficiently.

Why integrate?

Integrating two services allows data to sync seamlessly between them. The Zoho Developer platform, Sigma, lets you build plug-in software extensions. Connector is a feature in Sigma that allows you to integrate with a third-party application through these extensions.

So let's say that an entrepreneur needs to sync Zoho CRM (client application) with Google Contacts (third-party application) and develops an extension using Sigma. Using the Connectors component, we can accomplish this integration between the applications. This integration will effectively sync contacts between the apps, providing consolidated customer information. This saves the entrepreneur's time and manual work. Below, we'll see the exact steps on how to establish a connection between these two services and export a contact from Zoho CRM to Google Contacts.

Topics covered:
➤ Creating a connection between Zoho CRM and a third-party application
➤ Registering with Google to obtain client credentials
➤ Adding a custom button and associating it with a custom function to perform an action

How to establish connections between services

To enable secure synchronization with a third-party application, certain authorization protocols must be followed. Zoho Developer provides two approaches for integrating services based on the type of user authentication supported by the third-party application:

1. If the third-party application that you want to integrate with Zoho CRM supports OAuth 2.0 protocol for user authentication, you can use connectors.
2. If the application you want to integrate with Zoho CRM only supports API key forms for user authentication, you can use custom variables.
In our scenario, lets see how to use connectors to create a secure connection with Google Contacts.

How to use connectors to establish a connection via OAuth 2.0

 You will need URLs for a request token, access token and refresh token along with a client ID and secret to complete the connection process.


1. Choose Connectors from the left panel of the Zoho CRM console under Utilities, and then click Create Connection.



2. Provide the required information in the respective fields.
  • Connector Name: A name for the connection to be established.
  • Name of the Service: The name of the third-party application.
  • Signup URL: The signup URL of the third-party application.
  • Request Token: The URL for sending an authorization request to the third-party application server from the client application.
  • Access Token: Once the request is authorized by the server, the access token is sent to the client. This token is exchanged every time the client needs to access the third-party application data.
  • Refresh Token: There are few access tokens that expire after a limited time. In that case, this URL should be used to request a different access token.
Note: The URLs for a request token, access token, and refresh token can be obtained from the API documentation of Google.

For your reference, the values used in our example are as follows: 

3. Click Save after providing the necessary details.



4. In order to obtain the Client ID and Client Secret, you must register with a web service (in our example, Google). If you need further instruction on how to obtain the Client ID and Client Secret, please take a look at the following section.
Note: The Redirect URL appearing in the Client Credentials dialog box is necessary to create the Client ID and Client Secret in the upcoming section.

5. Click Save after entering the Client ID and Client Secret to set the Client Credentials successfully.

6. Click Authorize Connector to Authorize the connection between the services. A connection is now successfully established between Zoho CRM and Google Contacts.

How to register with Google and obtain the Client ID and Client Secret?

1. Log into the Google API Console with your Gmail account credentials. Create a New Project.



2. Click ENABLE APIS AND SERVICES to manage the necessary APIs.



3. Search for the Contacts API, and click the ENABLE button to activate it.



4. Select the Credentials section present in the left panel, and click the CONFIGURE CONSENT SCREEN to fill in the application information.



5. Click Create after choosing either Internal or External depending on your target users.



6. Enter the Application name and the Authorized domain, and click Save.



7. Go back to the Credentials section, click CREATE CREDENTIALS, and choose OAuth client ID.



8. Provide the Application Name along with the Redirect URL that was listed on the CRM developer page during connector creation, and click Create.



9. The OAuth client credentials are now created and appear in a dialog box



10. Enter the unique Client ID and Client Secret obtained here in the Zoho CRM Client Credentials dialog box.

Add API calls and associate them with the connector

Upon authorizing the connection, the next step is to create a connector API that specifies how the components should interact. The steps to create connector APIs in the client application are:

1. Click Create Connector API. Enter the necessary details in the Create Connector API dialog box. In our example for adding a contact from Zoho CRM to Google:

Name of Connector API
PushContacts
Method Type
POST
URL

Request Body: 
  1. <atom:entry xmlns:atom="http://www.w3.org/2005/Atom"

    xmlns:gContact="http://schemas.google.com/contact/2008"

    xmlns:gd="http://schemas.google.com/g/2005">

    <atom:category scheme="http://schemas.google.com/g/2005#kind"

    term="http://schemas.google.com/contact/2008#contact"></atom:category>

    <gd:name>

    <gd:givenName>${FirstName}</gd:givenName>

    <gd:familyName>${LastName}</gd:familyName>

    </gd:name>

    <atom:content type="text">Notes</atom:content>

    <gd:email rel="http://schemas.google.com/g/2005#work"

    primary="true"

    address="${Email}" displayName="${FirstName}"></gd:email>

    <gd:phoneNumber rel="http://schemas.google.com/g/2005#work"

    primary="true">

    ${Mobile} 

    </gd:phoneNumber>

    <gd:organization rel="http://schemas.google.com/g/2005#work" primary="true">

    <gd:orgTitle>${Title}</gd:orgTitle>

    </gd:organization>

    </atom:entry>
2. Click Create to create the Connector API successfully.



3. Click Execute to set the token variables. 



4. Click Set & Execute, and observe the response code to check if the API works. 



5. Click Publish after successfully executing the API. 



Once published, the API needs to be associated with the extension. It appears under the Associated Connectors tab. Click Add to associate the connector GoogleSync with our extension CRMsyncGoogle.


Click View All APIs to check the Unique API Identifier.


Here, crmsyncgoogle.googlesync.pushcontacts is the Unique API Identifier. 


Exporting contacts to Google from Zoho CRM

After the successful execution of the API connector, the next step is to implement the desired function. There are multiple options to do this. In our example, let's create a button and associate it with a custom function to push a contact from Zoho CRM to Google Contacts upon clicking. 

Creating a "Push Contact to Google" custom button to perform the POST operation
Choose the Components section in the left panel of the extension console page. Select the Links & Buttons tab and click Create New Button.



Choose the Contacts tab, name the button, and choose the place where the button needs to be located. Select Writing Function as the action that will be performed by the button.



Write your custom function "pushcontact" to implement the "Push Contact to Google" button operation. This will allow you to push a contact from the Zoho CRM Contacts module to your Google Contacts.

pushcontact function Code Snippet:


cont_resp  zoho.crm.getRecordById("Contacts",contact.get("Contacts.ID").toLong());

Firstname = cont_resp.get("First_Name");

Lastname = cont_resp.get("Last_Name");

mail = cont_resp.get("Email");

mobile = cont_resp.get("Mobile");

title = cont_resp.get("Title");

map = {"FirstName":Firstname ,"LastName":Lastname ,"Email":mail ,"Mobile":mobile ,"Title":title }; 

response = zoho.crm.invokeConnector("crmsyncgoogle.googlesync.pushcontacts",map);

return "Contact Pushed";

How to check and test the functionality?

Click the Test your Extension button to check how your extension functions in the sandbox testing environment.


Under the Contacts module, in the testing environment, let's try and export "Customer2" to our Google Contacts. Click the Push Contact to Google button, and go to the Google Contacts to view your contact being added.


There are many different scenarios where connectors can be of use. In our example, we have seen how to add a contact from Zoho CRM to Google.
We recommend that you try using the connectors feature available in our developer platform to integrate with other third-party applications and reap the best benefits it has to offer.

                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                

    • Sticky Posts

    • Kaizen #222 - Client Script Support for Notes Related List

      Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
    • Kaizen #217 - Actions APIs : Tasks

      Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
    • Kaizen #216 - Actions APIs : Email Notifications

      Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
    • Kaizen #152 - Client Script Support for the new Canvas Record Forms

      Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
    • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

      Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
    • Recent Topics

    • Books Api: listing expenses created after certain dates

      Is there any parameter I can add to the List Expenses endpoint that will let me look up expenses by when they were created?
    • Add RTL (Right-to-Left) Text Direction Support Across All Zoho Learn Editing Interfaces

      Hi Zoho Learn Team, Hope you're doing well. We would like to request an important enhancement to Zoho Learn regarding support for right-to-left (RTL) languages such as Hebrew and Arabic. 🔹 Current Issue While the Knowledge Base Article editor provides
    • Add Hebrew Support for Meeting Transcripts Provided by ZIA in Zoho Cliq

      Hi Zoho Cliq Team, Hope you're doing well. We would like to request the addition of Hebrew language support for the Meeting Transcript and Summary feature in Zoho Cliq. Currently the transcript and summary feature is available for recorded meetings and
    • Remote Control Functionality During Screen Sharing in Zoho Cliq

      Hello Zoho Cliq Team, We would like to request the addition of remote control functionality during screen sharing sessions in Zoho Cliq. Currently, while screen sharing in Cliq is very useful, it lacks the ability for another participant to take control
    • Real-Time Screen Annotation During Zoho Cliq Screen Sharing

      Hi Zoho Support Team, Hope you're doing well. We’d like to request the addition of real-time screen annotation tools during screen sharing sessions in Zoho Cliq video calls. 🔍 What We're Looking For: The ability for the presenter—and optionally, other
    • Centralized Organization Information Management in Zoho One

      Dear Zoho One Support, I'm writing to propose a feature that would significantly improve the user experience and streamline data management within Zoho One. Current Challenge: Currently, managing organization information across various Zoho One apps requires
    • Enhance Zoho One Conditional Assignment to Fully Reassign App Settings When Changing Departments

      Hi Zoho Team, We’d like to submit a feature request regarding the current behavior of Zoho One’s conditional assignment logic when moving a user between departments. 🔧 Current Limitation As it stands, Zoho One’s conditional assignment does not remove
    • Ability to Filter Alias Mailboxes in Zoho Recruit

      Dear Zoho Recruit Team, I hope you are doing well. We would like to request a feature enhancement regarding the handling of alias mailboxes in Zoho Recruit. Currently, when we connect an alias mailbox (e.g., jobs@domain.com) from our Zoho One account
    • Automatic Department and Employee Sync Between Zoho One and Zoho People

      Dear Zoho Support, I'm writing to propose a valuable feature request that would streamline data management and improve user experience within the Zoho ecosystem: automatic synchronization between departments and employees in Zoho One and Zoho People.
    • Add Attachment Support to Zoho Flow Mailhook / Email Trigger Module

      Dear Zoho Support Team, We hope you are well. We would like to kindly request a feature enhancement for the Mailhook module in Zoho Flow. Currently, the email trigger in Zoho Flow provides access to the message body, subject, from address, and to address,
    • Prefered Bin Missing in android APP

      Andoroid app dosent show preferred bin in the picklist. The workaround support reccomend is to use the computre to create the picklist. it shuld be information to be shown aas basic for the pciker.
    • Open Sans Font in Zoho Books is not Open Sans.

      Font choice in customising PDF Templates is very limited, we cannot upload custom fonts, and to make things worse, the font names are not accurate. I selected Open Sans, and thought the system was bugging, but no, Open Sans is not Open Sans. The real
    • Function #1: Convert an accepted Estimate to Sales Order automatically in Zoho Books

      As you’re aware, Zoho Books provides a default option to have the estimates automatically converted to invoices once your customer accepts them. Many of you wanted a similar option for sales orders, so here’s a workflow that converts accepted estimates
    • Write-Off multiple invoices and tax calculation

      Good evening, I have many invoices which are long overdue and I do not expect them to be paid. I believe I should write them off. I did some tests and I have some questions:  - I cannot find a way to write off several invoices together. How can I do that,
    • Reusable Jira Connection for Multiple Zoho Projects Imports

      Hello Zoho Projects Team, We would like to raise a concern and submit a feature request regarding the Jira → Zoho Projects migration process, specifically around how Jira connections are handled. Current Behavior: When setting up a Jira connection for
    • Zoho invoice doesn't support Arabic language

      I added a clause in the terms & conditions section in Arabic but it doesn't appear when I sent or print it.
    • Recurring Invoice Placeholder Not Updating Billing Period

      Hi, I’m using Zoho Invoice Free and want the billing period to update automatically in recurring invoices. In Item Description I tried: Billing Period: %(m-6)% %(y)% to %(m-1)% %(y)% but even if the invoice date is in 2026, it still shows the period based
    • Related list Mobile Device

      Hello, We use an the Zoho creator application to make reports linked to Accounts. On the computer: it's easy to go the Account and see all the created reports in the related list below On iPad/Phone ZOHO CRM APP: we cannot see the reports on those accounts
    • Can't update the company address in zoho invoice

      Dear Sir/Madam, I want to update the company address in Zoho Invoice but failed. It popped out a sentence "Invalid value passed for Website". Please advice how to solve this problem. Thank you.
    • Is there a plan to allow for the hierarchical organization of Customers / Companies in Zoho Billing?

      We have a few customers who have organizational structures that we haven't quite found a way to deal with in Zoho Billing. In CRM, these sub-companies (or subsidiaries or whatever you want to call them) all have another CRM account as the parent account.
    • 【Zoho CRM】作業リスト機能リリースのお知らせ

      ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中から、作業リスト機能リリースのお知らせ情報をご紹介します。 目次 作業リスト機能 概要 機能① 自分の未完了の活動 機能② 処理待ち 機能③ 自分の作業リスト 作業リスト機能 概要 営業チームでは、CRM内に業務やデータが分散しているため、管理が煩雑になりがちです。この断片化は、機会の見逃しや生産性の低下につながります。 作業リスト機能は、タブを横断する業務項目をひとつのカスタマイズ可能なダッシュボードに集約し、業務を効率的に管理できるようにします。
    • SalesIQとPageSenseの利用について

      初めての投稿で場違いだったらすいません。 弊社ではSalesIQを運用しているのですが、追加でPageSenseの導入もしたいと現場からの声があります。 両サービスともクッキー同意バナーが必要なサービスなのですが 弊社では同意無しに情報はとりませんという方針なので 2つ入れると2つバナーを出す必要がでてきます・・・ 両サービスを運用されてる方があれば運用状況とか教えてほしいです。 PageSenseについては詳細まで機能を理解してないなかでの質問です。
    • Zohomail - The "All Messages" vs "In Box"

      Why do some new email message appear under the all messages view but not in my inbox? That's really annoying but to be fair I've experienced the same with gmail.
    • Parent-Child Tickets using API or Deluge

      Hi Everyone, We are looking at the parent-child ticketing features in Zoho Desk. We want to be able to create a parent ticket at customer level and nest child tickets underneath. The issue we are facing is to be able to automate this. I'm checking the
    • Closing connected ticket after closing WA conversation

      Hi, At the moment, once someone sends a message to our WA number, a corresponding ticket is automatically created. After the question is answered, our support department closes the chat/conversation. However, after that, the connected ticket is still
    • Note sync turn off

      Hi, Is it possible to turn off notes sync between task notes and the parent module? (Account/Deal)
    • Basic Plan Active but Survey Creation Still Limited to 3 Surveys

      I have an active Basic (Monthly) subscription (valid period: Dec 24, 2025 – Jan 24, 2026), but the system still limits survey creation to only 3 surveys, which matches Free plan behavior. The subscription appears active in Portal Information, however
    • 2025 in Review: Powering Field Services Forward—One Feature at a Time

      As 2025 draws to a close, it’s time to pause and reflect on a year of meaningful progress at Zoho FSM. This year was all about listening closely to our customers and partners, building with purpose, and continuously improving the way field service teams
    • Syncing with Google calendar, Tasks and Events

      Is it possible to sync Zoho CRM calendar, task and events with Google Calendar's tasks and events. With the increasing adoption by many major tool suppliers to sync seamlessly with Google's offerings (for instance I use the excellent Any.do task planning
    • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

      Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
    • FOLDER DISAPPEARED

      Hello Zoho Community. I recently found a problem with no explanation: a folder in Zoho Analytics just disappeared, but the tables and SQL sentences still existed, the folder was not deleted. The solution for me in this case was to create a new folder,
    • New to automation - please help

      Hi there! We are new to automations in Zoho. We built out one automation campaign and it seems to be firing off for some people but others not. Please advise what's the best practice or if anything we should tweak. Thank you so much!
    • Unable to Create Zoho Booking via the Book Appointment API

      Its giving the below error {     "response": {         "errormessage": "Error setting value for the variable:customer_details\n null",         "status": "Error"     } } Request: POST Url: https://www.zohoapis.in/bookings/v1/json/appointment attached Zoho-oauthtoken
    • Task Details on task template

      When creating a task template in settings that task details seem to be missing. Is it not possible to set the details of a task, such as the priority, type, reminder settings, and custom field values?
    • Building Toppings #3 -Testing and publishing Bigin toppings

      Hey Biginners! In previous forum posts, we discussed what a Bigin topping is and explored the Bigin Developer Console's features. In this post, we're going to create a topping from scratch and discuss how to test and publish it. Our topping will automate
    • markdown files?

      How can I import a markdown file into a note?
    • Mail to Zoho Notebook

      In the Instuctiosn I faound as email add@notebook.app In my account I see add@eu.notebook.app What is correct please
    • Auto-Invite Users to Portals in Zoho CRM based on Conditions

      Hello Everyone, You can now automate portal invitations in Zoho CRM with the new Auto-Invite users feature in Portal management. No more manually enabling portal access one by one. With this enhancement, you can automatically send invites for users to
    • Growth You can Count On: Zoho Billing's 2025 Journey

      As we wrap up 2025, we’re reflecting on a year rooted in steady progress and meaningful growth for Zoho Billing. Every enhancement we have introduced was built to support scalable and reliable billing growth for your business. From launching the Enterprise
    • Need help with creating workflow with Bigin and Clickup

      Can you please help me with this? I am trying to create a workflow in Zoho Flow wherein a bigin Pipeline deal moves to Decision Closing, it will create a task and subtasks in Clickup, under the condition/filter that the Deal name contains the word Social
    • Next Page