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
Reminder Settings - Time Tracker
On the time tracker in Reminder Settings I created a reminder according to the Zoho manual. But a manager asked me to change the message that goes in the email. Is it possible to change the message? I didn't find that in the Zoho manual. Another question: I configured to receive the reminder everyone who logged in less than 40 hours. Does Zoho consider less than 40 hours of the current week or the whole month? Another situation, I put it so that I and another specific user would receive the notification,
Create Item group from a composite Item
I have applied my mind for hours but cannot figure this out. Can you have a composite item in an item group?. E.g. We bundle different color and size SKU's together as composite items. Also Using composite items as Bill of Materials. We want to create
Main difference of Zoho Recruit Corporte version and Staffing HR vesion
Hi Zoho, I need help to fully understand what is the main key point differences of Recruit Corporate version versus the Staffing HR version? We are currently using Corporate HR version and we are looking on having an insightful automated reporting, does
Out of Stock items showing in Commerce
I have over 6000 items and most are not in stock, but all items are showing up in Commerce whether they are inventory or not. What option or feature can you use to hide items in Commerce at zero or negative quantities? I currently am using Commerce for
Is it possible to transfer data from one related list to another within the same module ?
In the Leads module, there is an existing default Product related list that already contains data. Recently, I added a custom multi-lookup field, which created a new related list in the same Leads module. Now, I need to move the existing data from the
How to implement new online payment gateway?
Hello, Can you tell me how to proceed to implement my local payment gateway? DIBS has an open avaiable API that should be easy to implement into ZOHO BOOKS. http://tech.dibspayment.com/dibs_payment_window
Formula working in MS Excel , is not working in Zoho Sheets, Filter fuction which is working in MS sheets per the attached workbook / Daily update.
Filter function , which is working in MS Excel is not working in Zoho sheets. Please help on function of filter of particular class sheets and extract students name who has more than 3.5 hours of study hours on particular day depending on date in D7 cell.
New in Smart Prompt: Record Assistant for contextual assistance, and support for new AI models
Smart Prompt helps teams stay informed and move faster by providing relevant suggestions where work happens in CRM. With this update, Smart Prompt becomes more adaptable to your organization’s AI preferences. You can now choose which Large Language Model
Improved Integration Failure Information (And Notification Options)
Hi, When an attachment service for example fails, you just get "Field x - Error", I can check the field it is failing on and find nothing wrong, same file size, type, dimensions, etc. so more information as to the actual issue would be helpful. And an
Change User Role in a Form
Hi, When in a form, it would be good (And consistent) to be able to change the user role/permission like you can with Shared Reports, All Entries or the actual User itself, rather than having to delete the users permission and then add it back again with
Reassign Partially Saved Entries
Hi, I would like to be able to go to Partially Saved Entries and like the option to delete them I would like the option to multi-select and be able to reassign them to another user to complete (Such as when a user has left the company). Thanks Dan
Increase the "Maximum Saved Entries per User" Options Limit
Hi, You can create lots of saved entries, yet the Limit when you apply one is 25, we may often expect 32 to be in draft, and therefore want to enforce that, can we increase the limit of this field from 25 to 100 (As you can just turn it off and have more
Product Updates in Zoho Workplace applications | December 2025
Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications this December. Zoho Mail Block emails without notifying the sender Block emails without sending a rejection notification
Zoho CRM for Gmail Extension Not Working in Brave Browser?
Is anyone able to get the Zoho CRM Chrome Extension working in the Brave browser? They're both built on the Chromium platform and every other Chrome Extension works with the exception of Zoho CRM for Gmail so any ideas here?
Set Frozen Cells in the Report Settings
Hi, It would be nice to be able to set the frozen cells in the report Settings, and have an option if this is fixed or can be changed after loading (On the next load it still goes back to the Settings). Thanks Dan
Microsoft Teams now available as an online meeting provider
Hello everyone, We're pleased to announce that Zoho CRM now supports Microsoft Teams as an online meeting provider—alongside the other providers already available. Admins can enable Microsoft Teams directly from the Preferences tab under the Meetings
Tip of the week #26: Import/ Export calendars in Zoho Calendar.
Any calendar on the web or calendars that you create in any other calendar application can be imported in to Zoho Calendar. This will help you to add the events from the calendars that you import to your Zoho Calendar. You also have the option to export
Add Zoho Forms to Zoho CRM Plus bundle
Great Zoho apps like CRM and Desk have very limited form builders when it comes to form and field rules, design, integration and deployment options. Many of my clients who use Zoho CRM Plus often hit limitations with the built in forms in CRM or Desk and are then disappointed to hear that they have to additionally pay for Zoho Forms to get all these great forms functionalities. Please consider adding Zoho Forms in the Zoho CRM Plus bundle. Best regards, Mladen Svraka Zoho Certified Consultant and
Social icons, open in new tab?
Hello, I have two social icons on my footer, Facebook and Psychology Today. Clicking on the Facebook icon opens a new tab, the Psychology Today icon does not. I would like them both to open a new tab. Am I missing a setting somewhere?
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
Autofill address using smart fields mapped over the pdf document
Hi, I'm using mail merge to map smart fields onto PDF documents I plan to distribute for signing. I already have a Zoho Sign subscription. When mapping smart fields from the Employee form, I only see the permanent and current addresses which include the
How do I cap employee leave accrual
HI there, How do I cap an employee's leave accrual? The policy is that you accrue 15 days leave annually (1.25 days a month) and once you reach 15 days, you wont accrue more until you take leave. Thank you!
Open sub form from a button as a popup form
Is there a way within a form to use similar code as below to show a button in the form when clicked opens the subform for data to be added to the record being viewed in the form OpenUrl("#Form:<Customer_Delivery_Address>?<Delivery_Address>=" + input.ID,"popup
Dont have backup option in setting
Hi guys. I started using zoho book a week ago. I bought premium package yet I don't have backup option in setting. I hope anyone can help me find a solution. Thanks in advance
Making Tags Mandatory
When creating an expense, is it possible to make the Tags field mandatory? I see the option in settings to make other fields mandatory, like Merchant, Description, Customer, etc, but nothing about Tags. Thanks! Kevin
Is there a plan to integrate zoho voice with zoho books?
Hello, Is there a plan to integrate zoho voice with zoho books? Right now we are using the Twilio SMS integration into zoho books, but have recently decided to switch to zoho voice for calls and sms. Is there a plan to integrate zoho voice natively into
Pass variables to Zoho Desk via URL to create a fast new ticket landing page
We are integrating our phone system into Zoho Desk. Currently when a helpdesk agent answers the phone, a soft client opens a new tab with zoho desk at the new case page. https://desk.zoho.com/support/companyname/ShowHomePage.do#Cases/new We would like
Zoho Books Extension: What Happens If Custom Fields Already Exist?
When developing Zoho Books extensions, what happens if the target Zoho Books organization already has a custom field with the same API name as one defined in the extension? I’m asking because we originally created an on-Books version of this functionality,
Modular Permission Levels
We need more modular Permissions per module in Books we have 2 use cases that are creating problems We need per module export permission we have a use case where users should be able to view the sales orders but not export it, but they can export other
Free Webinar on 21 January: Looking back at Zoho Mail in 2025
Hello Zoho Community! Curious about how Zoho Mail evolved in 2025? Wondering how these updates can make your everyday email work simpler? We’ve got a session you won’t want to miss. In our Zoho Mail 2025 recap webinar, we’ll walk you through the key features
Cliq Networks users can see all other network users contact information
Is there a way to hide user contact information from each user in networks? I would only like the users to see the admin's contact information, not other users. Network users information shared by default
Zoho Sheet - Printing - Page Breaks and Printing Customization
I think the title is descriptive enough in that I cannot find help documentation on a simple task of adding in page brakes for separating pages on print. Thanks
Missing the "Find & Merge Duplicates" choice
Hi, I am missing the "Find & Merge Duplicates" choice. I looked under the "More Actions" menu in Contacts, Accounts, Vendors, and Leads and it is not there. I have full permissions. Please assist me on finding this feature. Thanks!
OAuth integration issues
I'm experiencing persistent OAuth errors when trying to connect Make with Zoho API. I've tried multiple approaches but keep encountering the following issues: First error: 'Invalid Redirect Uri - Redirect URI passed does not match with the one configured'
Marketing Tip #16: Ideal sizes and formats for adding images to your online store
Images can make (or break) your storefront experience. When your banners and product photos follow the right sizes and aspect ratios, your store looks cleaner, loads faster, and feels more trustworthy—especially on mobile. Here are recommended image sizes
Improve WhatsApp Module in Zoho CRM
The current WhatsApp module UI in Zoho CRM feels cluttered and complex, especially when handling high volumes of conversations. It would be great to enhance the WhatsApp module UI/UX by adopting a clean and simplified interface similar to Bigin CRM’s
Blueprint transitions on locked records
We use the ability to automatically lock records (quotes, sales orders, etc.) based on criteria, such as stage. For instance, if a quote has been sent to a client, the quote is then locked for further edits. Our ideal quote stage process is: Draft>Sent>Won.
Enhance productivity with the revamped Zoho Sheet View
Hello folks, For some time now, you've been able to use the Zoho Sheet View to quickly edit multiple records or to insert a batch of new records. Its tabular interface allows users to engage in these tasks productively. Despite this, the existing Sheet
No OR Filter for Views with a Related Modules Criteria
We would like to create a Deal View where the User can see all their deals. For that, we would need an OR to connect the criteria. One of the Fields is a "multiselect User", these (Related Modules Criteria) can only be Filter with an AND. Even between
Good news! Calendar in Zoho CRM gets a face lift
Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
Next Page