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

    • My domain did not activate

      Hi, my domain (apsaindustrial.com.ar) did not activate, and the phone verification message never arrived. Please would you solve this problem? Thanks.
    • Host not found?

      Howdy! So i'm trying to add my custom domain for with the mail server. I have 100% control of my DNS and have tried every single option (TXT, CNAME, and even HTML) multiple times, ensuring i did it properly, to no luck. I get the same error message every
    • Emails are going to notification folder and not in inbox

      emails are going to notification folder and not into inbox
    • Error AS101 when adding new email alias

      Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
    • Report on opportunities showing only the last note added.

      Hi I need to create a report that shows the most recent note added to each opportunity. This is so management can see what the latest update is according to the assigned salesperson. One workaround is to use the status field but this implies added manual work and mistakes as the salesperson would have to copy the existing status to a note before adding the latest status... otherwise the activity history would be lost. My current workaround is a report on Notes with Opportunities as the related module.
    • Please add Zelle as an online payment option

      Hello, I would like to request Zelle be added to the online payment service providers for Zoho Invoice. Considering how ubiquitous Zelle has become as a way to pay people via the major banking institutions, I feel like many freelancers would benefit from
    • This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details

      Hello, Just signed up to ZOHO on a friend's recommendation. Got the TXT part (verified my domain), but whenever I try to add ANY user, I get the error: This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details I have emailed as well and writing here as well because when I searched, I saw many people faced the same issue and instead of email, they got a faster response here. My domain is: raisingreaderspk . com Hope this can be resolved.  Thank you
    • Getting Project Template List using the REST API

      I am trying to confirm that I can use the REST API to create a project using a project template. The API documentation indicates this is possible by providing the Template ID, but it is not clear at all how to get a list of available Project Templates
    • How to display the CONTACT ID in the Contact page

      Hi, I've seen this conversation below and it is exactly the same question I'm raising now, but unfortunately the last message is not solved https://help.zoho.com/portal/community/topic/show-contact-id-while-editing-contact-form I need to show the ContactId and I don't know how to do this. The last message included in the conversaton shows the way but not it is not completed. "I am sorry by default we do not have the option to show the record ID for the contacts in the field in a record. When you
    • How to change margins in templates

      Hi, I'm new to Zoho Campaigns, and am trying to figure out how to adjust the margins within an email template.  The default margins make the text go all the way to the edges of the page.  Please advise.
    • Create Canvas list view templates from images powered by Zia

      Currently available for all paid editions of Zoho CRM in the US, EU, IN, JP & CN DCs. Designing a personalized CRM interface just got even easier. In today’s fast-evolving digital landscape, AI is transforming the way we work by automating complex tasks
    • Painfully Slow Zoho mail

      Since yesterday Zoho Mail seems to have starting functioning very slowly and having a few bugs. It's slow to open mails, slow to send, slow to change between email accounts. Sometimes clicking on a particular folder (eg Sent folder) stops working and
    • "Wrong password or login" Problem to configure Zoho on MAIL App on my Macbook

      Hi, I'm having problems to configure my e-mail on my MAIL App(Macbook pro). My e-mail is hari@trespontoum.net Actually was working perfectly, and still working on my Iphone. My MAIL App prompt me that my login or password is wrong. I tried to change 3
    • "User already exist in your org"

      Hello, I've just read a discussion about this issue, which didn't solve my problem. I'm trying to add the following emails: sales@kiss-my-boutique.co.uk returns@kiss-my-boutique.co.uk orders@kiss-my-boutique.co.uk I'm getting an error message each time I try and add them. None of them are primary or secondary emails and none of them have been created as users before. I know this as when I try and login and do 'forgot my password' all I get is an error message saying 'user invalid'. Please advise.
    • Operation Not Permitted

      Hi, I have problem in adding user after verifying the domain but it seems like error appeared which is "operation not permitted". For your information, I had delete other domain before did it.
    • Email forwarding setup fails

      I'm trying to set up email forwarding from my Zoho email to my gmail address. I followed the directions to set up email forwarding here: https://www.zoho.com/mail/help/email-forwarding.html. I did only steps 1-6. After doing this, rather than setting
    • Passing the CRM

      Hi, I am hoping someone can help. I have a zoho form that has a CRM lookup field. I was hoping to send this to my publicly to clients via a text message and the form then attaches the signed form back to the custom module. This work absolutely fine when
    • Shopify store email issues- Not getting emails

      Hi We have migrated from Microsoft outlook to Zoho back in March, we have a shopify store, the domain is hosted on namesilo, not shopify, I have seen some people here complaining about not getting emails from customers who fill out the contact form on
    • How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.

      How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.
    • Invoice Discount Account

      Is there a way to change the account used for Discounts applied to an invoice? The current Discount account (ZB native account) type is an "Income" type. I would like to change it to "Other Income", but that is not possible, I am assuming because it contains
    • Need Inactive accounts to be visible in Reports in Zoho Books

      I N=need Inactive accounts to be visible in Reports in Zoho Books to do recons of the accounts but when i see the same they are not visible in the Accountant - Account Transactions report
    • API Support for Creating Invoices with Batch-Tracked Items

      Hi Zoho Community, I am working on an integration where we create invoices in ERPNext and push them to Zoho Books. I need to send batch-tracked items (batch numbers) when creating invoices. I could not find any reference in the Zoho Books API documentation.
    • javax.mail.authenticationfailedexception 535 authentication failed

      Hi, I am facing 535 authentication failed error when trying to send email from zoho desktop as well as in webmail. Can you suggest to fix this issue,. Regards, Rekha
    • Phantom Opening Balance

      While experimenting w/ creating a composite item, Zoho added funds to Petty Cash and added Bank Account equal to previous day's balance. I'm unable to undo the adding of funds. Attaching screenshots of both bank account and petty cash transactions.
    • Importing customer comments and multiple shipto addresses

      I am evaluating Zoho Books and have most of my data imported with two exceptions: (1) Import customer comments - in my current system I have several comments of different types, and I need to bring these into Zoho. Preferably Books customer records, but
    • Detailed Account Reports - Add Running Balance

      When one clicks into an account from a report (say P/L or Balance Sheet), the default reports have the Debit, Credit, and then the Amount. The Amount column (last one) is duplicate information. It would be far better and fit more peoples' use cases if
    • How to Billed from two different GST Numbers

      How to Billed from two different GST Numbers. Suppose ABC & Co had GST registration in Delhi and Haryana and Zoho account is created with Delhi GST Registration number. Now i also want to issue invoice from Haryana GST Registration number. How can i proceed ?
    • Payment system for donations management

      I manage an organization where we receive donations from payers. Hence, there is no need to first create invoices and then create payments received against the invoices. What are the recommended best practices to do this in ZohoBooks?
    • Zoho IP blocked by SpamHaus

      ERROR CODE :550 - 5.7.0 Your server IP address is in the SpamHaus SBL-XBL database, bye
    • IMAP Communication Problems - IMAP Down Again

      We are experiencing the same problems over the last week or so that were supposedly 'solved' according to this thread. Zoho Imap Down Again This is affecting attempts to use IMAP on multiple ISPs and users so is definitely narrowed down to Zoho problems.
    • Can't login to Zoho mail

      I'm logged into Zoho but when I try to go in zoho mail I get: Invalid request! The input passed is invalid or the URL is invoked without valid parameters. Please check your input and try again. I just set up my mx records and stuff with namecheap a few
    • Hotmail is STILL blocking the zoho mail IP

      Greetings, as I already mentioned in my last message, my Zoho IP has been blocked by Hotmail for more than 15 days. Although someone said that the issue was "solved," it still isn't, and this amount of time seems neither normal for a "serious" company,
    • Keyboard shortcut M key

      I'm trying to customize my keyboard shortcuts and assign the "m" key. But it says the key is already assigned. I've looked through all my shortcuts and can't see any assigned "m". When I select an email and press the M key, nothing happens. What is the
    • Manage customer access across multi-brand help centers

      Hello everyone! Managing customer's access across multiple brands has been streamlined with the ability to invite, reinvite, approve, reject, and deactivate contacts individually for each help center brand . This enhancement gives administrators precise
    • White Label certificate

      Hi all, About 72 hours ago, we fulfilled all steps for white labeling (CNAME to point to mail.cs.zohohost.eu), but since then the configuration page is now stuck at "generating certificate" since 3 days. When I execute an NSLOOKUP mail.webfoundry.be it
    • Unusual activity detected from this IP. Please try again after some time

      When i try to create new addresses on my account i am getting this error, it has been 24 hours now and i am still getting this error can anyone help
    • How to add a new domain in my account?

      Probably zoho has the worst UI in the market. Cannot add a new domain to manage a new email address.
    • Ability for admin to access or make changes in zoho form without asking for ownership

      Currently in zoho form only form owner can make the changes in the form and if someone else has to make changes then we have to transfer the ownership to them and even admin also cant access it . So i think admin must have the ability or option to access
    • Why does Zoho’s diff viewer highlight parts of unchanged lines?

      Hi everyone, I’ve noticed something odd in the Zoho editor’s diff view. When I delete a single line, the diff doesn’t just mark that line as removed. Instead, it highlights parts of the next line as if they changed, even though they are identical. Example:
    • Report sorting not working

      I make extensive use of Summary reports and Pivot Tables. Most of these reports are structured such that I have several columns of "information" data that I want displayed, followed by one or more "Data" summarizations. For example, I have the following
    • Next Page