When building a topping to extend Bigin's functionality and connect it with third-party applications, creating and handling connections is an important step. Connections provide a secure way for your topping to authenticate and communicate with other applications' APIs without exposing sensitive credentials to end users. This abstraction is both secure and makes the integration easier because it eliminates the need for developers to implement complex authorization flows manually or handle authorization tokens directly.
Bigin's Developer Console offers a feature called a connection, which acts as a bridge between your topping and the third-party application you wish to integrate with. Once a connection is configured, you can reference it in your topping's functionalities using its unique link name. This enables the topping to execute REST operations such as fetching, updating, or syncing data with the connected application securely.
Now that we've achieved a basic understanding of what a connection is and how it helps toppings interact with other applications, the next step is to understand the types of connections available in Bigin's Developer Console.
Establishing connections with services
The connections feature in Bigin's Developer Console offers two types of services to help developers configure integrations according to their requirements: default services and custom services. Default services are preconfigured services available in Bigin's Developer Console that simplify integrations with some Zoho and third-party applications. If the application you want to integrate with isn't listed in the default services, you can create a custom service and configure it according to the API specifications of the third-party application.
Default services
The connections feature offers certain default services as preconfigured options that can be easily integrated with Bigin. These services come with predefined settings such as authentication type, token endpoints, scopes, and headers, which reduces the need for manual configuration. Currently, there are around 50 default services available in the Developer Console, covering a wide range of applications and platforms. This enables developers to connect to services with minimal effort.
If the application you want to integrate with your topping isn't listed in the default services, you can create a new custom service.
Custom services
Custom services enable developers to configure all aspects of a connection manually, including the authentication type, endpoints, headers, and scopes, which enables integration with third-party applications.
When setting up a custom service, developers can specify the exact authentication flow required by the external application, whether it's basic authentication, OAuth, an API key, or another method.
Note:
Refer to the official API documentation of third-party applications when configuring these settings, as this will provide the necessary details for authentication and data access.
To create a custom service, navigate to the Connections section and choose Custom Services in the Developer Console. Based on the authentication type supported, configure the custom service for the required product.
For more details on creating and configuring custom services, please refer to this
guide.
Note:
Always handle sensitive information such as client IDs, client secrets, and API keys securely, and never share them publicly. After configuring and authorizing a custom service, reference it in Deluge scripts and workflow functions by using its unique connection link name, just as you do with default services.
Next, let's look at how to implement the default service connection with an example.
Create a default service connection
Let's say you're developing a Bigin topping to synchronize contact information between Bigin and Zoho Books. This integration enables contacts created or updated in Bigin to be automatically reflected in Zoho Books. The topping uses Zoho Books APIs to create, update, and retrieve customer data using a default service connection.
To create a default service connection for the topping, choose Connections from the left panel of the Developer Console and click Get Started.
Next, navigate to My Connections or Default Services. To fetch data from the Contacts module in Bigin, create a connection first. From Default Services, select Bigin and then click Create Connection to set it up.
The system will prompt you to enter the connection details. Provide a name for the connection (for example: Bigin Connection). A connection link name is generated automatically.
Next, select the scopes required for the topping's functionality. In this use case, select ZohoBigin.modules.ALL to access data from Bigin's Contacts module.
After selecting the scope, click Create and Connect to initiate the authorization process. The system redirects you to the authorization page. Click Connect, and you'll be taken to the service's login page. Choose the Bigin organization for which the topping was created, click submit, and the connection will be created.
After establishing the connection with Bigin, you must also create a connection for Zoho Books to enable record creation. To do this, create a default service connection for Zoho Books, similar to the one created for Bigin. Select the scope ZohoBooks.fullaccess.ALL to grant complete access to modules and operations in Zoho Books.
Once you've created the connections for both Bigin and Zoho Books, the system will generate connection link names for each. These link names must be used in the business logic.
Note:
During development, authorize the connection in the Sandbox environment to test integration workflows safely.
To understand the authorization process and how to implement them, please refer to this
guide on authorizing connections.
After you authorize the connection, set up a workflow rule in the Bigin Developer Console that gets triggered whenever you create or update a contact in your Bigin account. Here, we need to specify the conditions that apply to the workflow and check that the email field isn't empty.
Note:
In our use case, we'll use the email address to check whether the newly created contact in Bigin already exists as a customer in Zoho Books.
When the workflow meets the specified conditions, an instant action - in this case, a function - which will execute a custom functionality that performs the following operations:
- Retrieves the contact details from Bigin by referencing the established connection link name biginandbooksconnection0__booksconnection.
- Searches Zoho Books for an existing contact that matches the email.
- If a matching contact exists, update the contact's phone and contact person details in Zoho Books.
- If the script doesn't find a matching contact, it creates a new contact in Zoho Books with the relevant information.
Below is the code that automates contact synchronization between Bigin and Zoho Books:
- //Retrieve contact details from Bigin using the established connection
- biginContact = zoho.bigin.getRecordById("Contacts",contact.get("Contacts.ID"),Map(),"biginandbooksconnectionnew__biginconnection");
- //Extract relevant contact data
- biginData = biginContact.get("data");
- contactDetails = biginData.get(0);
- email = contactDetails.get("Email");
- phone = contactDetails.get("Phone");
- mobile = contactDetails.get("Mobile");
- fullName = contactDetails.get("Full_Name");
- //Search Zoho Books for existing contacts by email
- searchParams = Map();
- searchParams.put("search_text", email);
- booksContactsResponse = invokeurl
- [
- url :"https://books.zoho.com/api/v3/contacts"
- type :GET
- parameters:searchParams
- connection:"biginandbooksconnectionnew__booksconnection"
- ];
- info "Searched by name in Books: " + booksContactsResponse;
- booksData = booksContactsResponse.get("contacts");
- if(booksData != null && booksData.size() > 0)
- {
- // Extract the existingContactId
- existingContactId = booksData.get(0).get("contact_id");
- // Update existing contact
- updateParams = Map();
- updateParams.put("contact_name",fullName);
- updateParams.put("phone",phone);
- updateParams.put("mobile",mobile);
- updateParams.put("email",email);
- // Define contact person details
- contactPerson = Map();
- contactPerson.put("last_name",fullName);
- contactPerson.put("mobile",mobile);
- contactPerson.put("phone",phone);
- contactPerson.put("email",email);
- contactPerson.put("is_primary_contact",true);
- contactPersonsList = List();
- contactPersonsList.add(contactPerson);
- updateParams.put("contact_persons",contactPersonsList);
- //Prepare and execute update request
- parameters_data = Map();
- parameters_data.put("JSONString",updateParams.toString());
- info "parameters_data value:" + parameters_data;
- updateResponse = invokeurl
- [
- url :"https://books.zoho.com/api/v3/contacts/" + existingContactId + "?organization_id=XXXXXXX"
- type :PUT
- parameters:parameters_data
- connection:"biginandbooksconnectionnew__booksconnection"
- ];
- info "Updated Contact: " + updateResponse;
- }
- else
- {
- // Create new contact
- contactDetails = Map();
- contactDetails.put("contact_name",fullName);
- contactDetails.put("email",email);
- contactDetails.put("phone",phone);
- contactDetails.put("mobile",mobile);
- // Define contact person details
- contactPerson = Map();
- contactPerson.put("last_name",fullName);
- contactPerson.put("mobile",mobile);
- contactPerson.put("phone",phone);
- contactPerson.put("email",email);
- contactPerson.put("is_primary_contact",true);
- // Add to contact persons list
- contactPersonsList = List();
- contactPersonsList.add(contactPerson);
- contactDetails.put("contact_persons",contactPersonsList);
- // Prepare and execute the create request
- parameters_data = Map();
- parameters_data.put("JSONString",contactDetails.toString());
- createResponse = invokeurl
- [
- url :"https://books.zoho.com/api/v3/contacts?organization_id=XXXXXXX"
- type :POST
- parameters:parameters_data
- connection:"biginandbooksconnectionnew__booksconnection"
- ];
- info "Created Contact: " + createResponse;
- }
After you configure the workflow and associate the function with the instant action, test the topping in the sandbox environment.
- To do this, click Test Your Topping in the upper-right corner of the Developer Console. This action will redirect you to the Bigin sandbox account, where you can create a new contact to test whether the functionalities work properly.
- After creating a new contact in Bigin, navigate to the Customers module in the Sales section of Zoho Books. When you set up the integration correctly, you'll see the newly created contact here, which confirms that Bigin and Zoho Books are synchronizing as expected. This process provides a safe and effective way to validate the workflow before deploying the topping to a production environment.
In this post, we've explained that default service connections in Bigin simplify authentication and connection with third-party applications by using predefined settings such as authentication type, token endpoints, and scopes. These connections are convenient because the Developer Console pre-configures the authentication flow and endpoints of the application you're integrating with.
To sum up: Bigin's connections feature provides a flexible foundation for integrating with a wide range of external services, and using these connections, developers can extend Bigin's integration capabilities.
Stay tuned for more about developing toppings and exploring other related features available in the Bigin Developer Console.
Recent Topics
An important update for Zoho Cliq desktop users
The latest version of the Zoho Cliq desktop app (v1.8.0) will no longer be supported on macOS 10.15 Catalina and earlier versions. This is because the framework we use (Electron) no longer supports some older macOS versions. If you’re using macOS 10.15
New Toolbar in Zoho Sheet
We have revamped our toolbar design in this new version of Zoho Sheet. Below are some screenshots to help you get accustomed to this new interface. Click on the picture below to view the animated image in its original size. Scroll down this post to learn about the changes. Highlight of Changes: The previous format tab is now split into 2 tabs - Home and Format. The Home tab contains the commonly used functions and the Format tab holds formatting related options. Under the Home tab towards the far
Zoho inbuilt Telephony made a lot of issues!
Hi there, I am a user that I am working with zoho inbuilt telephony around 1 month. Non of my colleagues are happy with this app! most of the time customer cannot hear my customer service team, customers say our voice is breaking. whenever Telephony support
Sending workflow notifications using popular chat services
Hello everyone, We have introduced instant and scheduled notifications on some of the most popular chat platforms to facilitate easy collaboration, quick action, and wider reach. Workflow notifications can be sent to the following chat platforms: Zoho
Adding Images to a Quote in Zoho CRM
We are currently preparing to use Quotes in Zoho CRM and we are building out our Quote templates. We came across an issue of not being to add Images of the products to the Quote - specifically in the body of the Quote templates. This is a problem,
Applications built with Zoho Creator
Hi, I’m really interested in seeing how others have built their application using Zoho Creator, especially those designed for external users (clients, vendors, or the public). If you’ve developed something along those lines and don’t mind sharing, I’d
Is it posssible to add Asap Widget on Wordpress?
I have tried to add the ASAP widget so users could iniciate chats and see the KB information but nothings seems to work. I have tried to add the script using a php snippet that adds the to the footers and also tried one for the header in the functio
Require ticket resolution
Hi Zoho team, Is there a way to require resolution even if an agent did not use a blueprint? for example, our blueprint has a "resolve" transition but what if agent revoked blueprint and manually set the status of ticket to closed? Is there a way where
Tables from ZohoSheets remove images when updated from source
I have a few tables from a ZohoSheet in a ZohoWriter document that will remove the images in the cells when I refresh from the source. The source still has the images in the table when I go to refresh. After updating from the source, as you can see the
API Pagination Error: 'from' Parameter Limit
Hello, I am encountering an error while paging through the Zoho Desk API results: Status code: 422 - {"errorCode":"UNPROCESSABLE_ENTITY","message":"The value passed for field 'from' exceeds the range of '0-4999'."} Is 5000 the maximum number of records
How to go to the next open ticket in the queue when agents closes ticket
Zoho Desk When agent closes a ticket - eg when they choose 'Send and Close" - where is the setting that automatically redirects them to the next open ticket in the queue?
Custom templates for calendar report
What about being able to design custom templates for the calendar report, as well as for other types of reports? I think more users are waiting for this.
Disable payment thank-you emails
Hello, can someone please tell me how to disable sending of the "Payment Thank-You" emails?
Maximum tags possible in Contacts Records
I read in some documentation that Zoho allows a total of 200 tags across all records. Is this correct? So is it not possible to have one tag per record for 500 records?
Any way to "Pay with Check" or "Refund with Check" for Credit Notes?
When we have a Bill in Zoho Books, we can select the "Pay with Check" option which then allows us to print/cut the check directly out of Zoho Books. When we created a Credit Note and want to refund the customer, is there any way to Refund with Check,
CRM Mobile reports
When our engineers finish a job they like to email the customer a job report. This is best done todate as an email template but we can find no way to include an image field from that module. Is there any other options?
¿How to integrate Zoho Inventory to Zoho SalesIQ?
Is it possible to integrate Zoho Inventory with SalesIQ? I want to integrate it because I have a bot in Zoobot that uses a ChatGPT assistant. I need it to check the inventory of our items so it can determine whether or not our items are available.
When Zoho Tables Beta will be open to EU data center
Hello all, We in EU are looking at you all using and testing and are getting jealous :) When we will be able to get into the beta also? We don't mind testing and playing with beta software. Thank you!
Start Form on a different page (i.e., hide form pages)?
I have a Zoho form that uses the `Field Alias - Prefill URL` feature. My goal is to have a pre-filled field that directs the user to a specific starting page in the form. For example: The URL will have a field alias that will auto-populate a field with
How can we disable "My Requests"?
We are not using this functionality in our system at all and our users get confused.
PayPal payment received recording problem
Hi, A little while back one of our customers used the PayPal payment option to pay an invoice For some reason though the payment is showing up twice within the Payments section of the invoice! Instead of setting the invoice value to ZERO, it now shows a negative value Anyone else face this problem? I've checked PayPal and there is only 1 payment in reality... A bug? Actonia ps: for anyone from Zoho Customer Service or tech team, its Invoice 785 in our account
server response: 451.4.7.1
Good day. Some email clients of our domain receive an error about sending and receiving letters. while for the rest everything works fine. access to the mail made by pop protocol. Bless the mistakes: "server response: 451.4.7.1 System error".
string(87) "{"code":"INVALID_TOKEN","details":{},"message":"invalid oauth token","status":"error"} " grtting this error
Using access token i am trying to add sales orders through api but it is throwing errors like the above i have mentioned. Please help me for that
How to mute chat notification sound by default in Zoho SalesIQ?
We’ve recently embedded the Zoho SalesIQ chatbot on our website, and we’ve noticed that notification sounds sometimes play even when the visitor hasn’t interacted with the chat widget yet. We’re trying to understand two things: Why do these sounds occur
Kanban View for Projects.
At our organization, we describe active projects with various statuses like "In Proofing" or "Printing" or "Mailing". In the Projects view, one can set these project statuses by selecting from the appropriate drop-down. While this works, it's difficult to view and comprehend the progress of all of your projects relative to each other in a table. Creating a Kanban view for projects where I can move them from one status to another allows me to see where each project is in the order of our workflow.
How to Hide Article Links in SalesIQ Answer Bot Responses
I have published an article in SalesIQ, and the Answer Bot is fetching the data and responding correctly. However, it is also displaying the article link, which I don’t want. How can I remove the link so that only the message is shown?
Currency limitation when integrating Zoho CRM & Zoho Books
Brief Video of Problem: https://www.loom.com/share/d61d1d07d0904e149d80c1901a22418e. Background · Our business is based in Australia and we have to have Zoho Books in AUD to comply with tax and reporting regulations in Australia. · We sell
Add RECURRING option when adding email to calendar events
When you add an email to a calendar event, there is no option to make that new calendar event into a recurring event. It is counterproductive to make an event from your email to then have to go to your calendar, find the event, and make it recurring.
LINE Auto Message Connect to Zoho
When I integrated LINE into the CRM, I was prompted to disable “Chat,” “Auto Response,” and “Greeting Messages,” and to enable the webhook. However, since I have already set up some auto-reply features in LINE, including Rich Messages and greeting automation,
Option to block bookings from specific email address or ip adresss in zoho booking
Sometime few of our client keep booking irrelevant booking service just to resolve their queries and they keep booking it again and again whenever they have queries. Currently its disturbing our current communication process and hierarchy which we have
Threaded conversations for emails sent via automation
Hi Guys, I hope you are doing well. Don't you guys think we should have an option in a workflow to notify users either as a new email or the previous email thread. For example, if you have one deal in the process and there are 10 different stages during
Create folder is fetch fails
coming from zapier... zapier has a google drive task that searches for a specific folder in google drive, and if it fails to find the folder it will create a folder based on the search criteria, and contine along the singluar path of the flow. Trying
Meetups de Usuarios de Zoho - Noviembre 2025
¡Hola, Comunidad! Durante el mes de noviembre celebraremos los Meetups de usuarios de Zoho, encuentros presenciales pensados para quienes queráis mejorar vuestras estrategias de lead nurturing y aprender a sacar el máximo partido a herramientas como Zoho
Introducing 8 New Connectors in Zoho DataPrep!
We’ve just made data management even easier - Zoho DataPrep now supports 8 new external connectors to help you build more robust, scalable ETL pipelines. Why it matters: ✅ Broader data access ✅ More automation, less manual work ✅ Smarter pipelines, better
First day of trying FSM in the field.
What we found. 1. with out a network connection we were unable to start a service call? 2. if you go to an appointment and then want to add an asset it does not seem possible. 3. disappointed not to be able to actually take a payment from within the app
How to Automate Email Sequence
I'm having trouble trying to set up a workflow to automate an email sequence. Once a group of emails in a Task has been tagged by a certain tag, I want an instant email template to be sent. After 7 days with no response, another email template would be
Zoho Sprints Android v2.0.4 app update: Item reminders, archive Epics, Kanban projects, Epic progress
Hello everyone! In the latest version(v2.0.4) of the Zoho Sprints Android app update, we have introduced various new features. Let's take a look at what's new! Item Reminder Stay organized and never miss an important date with the all-new Item Reminder
Credit Management: #3 Setting Credit Limit for Customers
Think about that one familiar customer of yours who always buys on credit. They usually pay on time, maybe a little late here and there, but not alarming. So, you are fine saying, "Sure, pay later." Then, one day, they place a significantly bigger order
Update on the client portal URL for Guest users
We’re updating the way Guest users access their Connect network. As part of this change, all client organization portals used by Guest users will now be accessible through a dedicated domain specific to each data center. The access URLs mentioned here
Unable to see Zoho contacts in Zoho app on ios
Hi Support Team, I am a new user, I have created my account and installed zohomail app on iOS 16 which works. I was also able to import my Gmail contacts into Zoho Contacts, which I can see. The problem is that I can’t see these imported cobalts in Zohomail
Next Page