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
Adding a Deal to and Existing Contact
I want to easily add a Deal to an existing Contact. If I click on New Deal on the Contact page this currently this is what happens: All of the mandatory field (and other field) information exists within the Contact. Is there a simple way for it to automatically
Email was sent out without our permission
Hi there, One customer just reached out to us about this email that we were not aware was being sent to our customers. Can you please check on your end?
Flexible Partial-Use Coupons (Stored Value Credits)
Subject: Feature Request: Ability for users to apply partial coupon balances per transaction Problem Statement Currently, our coupons are "one-and-done." If a user has a $50 coupon but only spends $30, they either lose the remaining $20 or are forced
Prevent accidental duplicate entry of Customer Ordersome
Zoho Support has confirmed that Zoho currently does not have any method (using Deluge, flow or any other method) to alert a user when a sales order has been entered twice using the same customer reference number (i.e. a duplicate). Most ERP platforms
Customizing Helpcenter texts
I’m customizing the Zoho Desk Help Center and I’d like to change the wording of the standard widgets – for example, the text in the “Submit Ticket” banner that appears in the footer, or other built-in widget labels and messages. So far, I haven’t found
Migrating Brevo Automation Logic to Zoho Campaigns
Hello Zoho Campaigns Support Team, I am in the process of migrating my email marketing from Brevo to Zoho Campaigns. I have around 10,000 contacts, which I have already successfully exported from Brevo and imported into Zoho Campaigns. I now need guidance
Is there a way to delete workspaces?
I want to remove one of the workspaces in my Campaigns account. I don't see any obvious way to do this. Am I missing something?
Boost your Zoho Desk's performance by archiving tickets!
The longer your help desk operations are, the more likely it is to accumulate tickets that are no longer relevant. For example, ticket records from a year ago are typically less relevant than currently open tickets. Such old tickets may eventually lead
Collapsing and expanding of lists and paragraphs
hello Would you ever implement Collapsing and expanding of lists and paragraphs in zoho writer ? Best regards
New Custom View -Sorting the Custom fields
While creating a New Custom View in invoice , Customers, Bills ,expense etc , the sorting of custom fields are not available , a query function "order by / sort by " may also be included in Define new criteria module which will be more beneficial to
Make CAMPAIGNS email look as simple as possible
Hi there I'm trying to make my Campaigns email look as much like a normal email as possible. I'm a bit stuck with the "justification" of the email email block. Can I LEFT JUSTIFY the "whole email" to make it look "normal"? (Please see screenshot attached)
Change Last Name to not required in Leads
I would like to upload 500 target companies as leads but I don't yet have contact people for them. Can you enable the option for me to turn this requirement off to need a Second Name? Moderation update (10-Jun-23): As we explore potential solutions for
[Webinar] Top 10 Most Used Zoho Analytics Features in 2025
Zoho Analytics has evolved significantly over the past year. Discover the most widely adopted features in Zoho Analytics in 2025, based on real customer usage patterns, best practices, and high-impact use cases. Learn how leading teams are turning data
Sorry! we encountered some problems while sending your campaign. It will be sent automatically once we are ready. We apologize for the delay caused.
Hello. Lately we are having problems with some campaigns, which show us this error message. Sorry! we encountered some problems while sending your campaign. It will be sent automatically once we are ready. We apologize for the delay caused. We can't find
Can I remove or divert certain contacts from an active Campaigns workflow?
I have created a workflow in Zoho Campaigns, which sends different emails, once contacts have been added to a mailing list. To choose which email to send to the contacts, there are conditions, which divert contacts based on their company type and their company size. There was a subsection of this workflow, where company size wasn't selected correctly, and some contacts have been sent down the wrong path and received the wrong email. The workflow contains a reminder loop and a further series of emails.
File Upload field automatically replaces spaces with underscores – support experience
Hi everyone, I want to share my recent experience regarding the File Upload field behavior in Zoho Creator and my interaction with the Zoho support team. When a user uploads a file, the system automatically renames the document by replacing spaces in
How to map fields from Zoho Recruit to Zoho People
I've got these fields from my Job Offer that I'm trying to map to the Work information fields in Zoho People, but they arent showing up. For example, how do I get the department name field (in the job post) to map to the work information field in Zoho
UTM in zoho campaigns
Helloo everybody!!! Someone know how IF ZOHO CAMPAIGNS has UTM for tracking the url of any campaigns. thank u
Full Context of Zoho CRM Records for Zia in Zoho Desk for efficient AI Usage
Hello everyone, I have a question regarding the use of Zia in Zoho Desk in combination with CRM data. Is it possible to automatically feed the complete context of a CRM record into Zia, so that it can generate automated and highly accurate responses for
Knowledge base printing
I saw a posting about printing the knowledge base as I was looking for the answer, but we would like the ability to print out the entire knowledge base with a click, keeping the same organization format. Bonus would include an index of keywords and
Search not working!
I have items in my notebook tagged but when I search for a tag nothing comes up! Any fix for this?
Zoho Books | Product updates | January 2026
Hello users, We’ve rolled out new features and enhancements in Zoho Books. From e-filing Form 1099 directly with the IRS to corporation tax support, explore the updates designed to enhance your bookkeeping experience. E-File Form 1099 Directly With the
Updates for Zoho Campaigns: Merge tag, footer, and autoresponder migration
Hello everyone, We'd like to inform you of some upcoming changes with regard to Zoho Campaigns. We understand that change can be difficult, but we're dedicated to ensuring a smooth transition while keeping you all informed and engaged throughout the process.
File Upload field not showing in workflow
Hi, I have added a field on Zoho CRM. I want to use it in a workflow where that particular field is updated based on another field, however it is not showing up in the field list to select it in the workflow. Why is this please?
Drag 'n' Drop Fields to a Sub-Form and "Move Field To" Option
Hi, I would like to be able to move fields from the Main Page to a Sub-Form or from a Sub-Form to either the Main Page or another Sub-Form. Today if you change the design you have to delete and recreate every field, not just move them. Would be nice to
Sharing my portal URL with clients outside the project
Hi I need help making my project public for anyone to check on my task. I'm a freelance artist and I use trello to keep track on my client's projects however I wanted to do an upgrade. Went on here and so far I'm loving it. However, I'm having an issue sharing my url to those to see progress. They said they needed an account to access my project. How do I fix this? Without them needing an account.
How do i integrate google analytics to Zoho Campaigns?
Looking to track Zoho Traffic from email Current topic is outdated
How do teams manage meeting follow-ups across Zoho tools?
We’re using Zoho tools for collaboration and tracking, but managing meeting notes, action items, and follow-ups across teams is still challenging. Curious how others are handling this within Zoho workflows. Are there best practices or integrations that
Zoho Sprint Backlog View, filter by item status
Hello, In Zoho Sprints, it would be great to be able filter out specific items in the Backlog based on their status. We would like to track items that were Removed from our backlog without seeing them constantly in the Backlog view, as this view should
Customize Colors used on graphs and charts according to users desire.
It would be great if we could customize the graph's colors as we see fit. I hate that yellow is always the default color!
Let us view and export the full price books data from CRM
I quote out of CRM, some of my clients have specialised pricing for specific products - therefore we use Price Books to manage these special prices. I can only see the breakdown of the products listed in the price book and the specialised pricing for
Mejoras urgentes para ZOHO MEETING
Tengo unos meses usando Zoho Meeting. En general, es buena, pero hay cosas vitales que no logra cumplir con mínima calidad. 1) Calidad de audio y video: urge mejoras. Audio con retraso, imagen borrosa, mal recorte de silueta con fondos virtuales. Además,
Multiple header in the quote table???
Hello, Is it possible in Zoho CRM to add multiple headers or sections within the Quote product table, so that when the quote is printed it shows separate sections (for example “Products” and “Services”)? To clarify, I’m asking because: This does not appear
Saving sent email campaign as PDF
I'm looking to add all campaigns sent to an archive folder in sharepoint. Is there anyway to accomplish this in Zoho Flow ? I'm falling at the first hurdle ... can I automatically save a sent campaign as a PDF to a folder location ?
Exporting All Custom Functions in ZohoCRM
Hello, All I've been looking for a way to keep about 30 functions that I have written in Zoho CRM updated in my own repository to use elsewhere in other instances. A github integration would be great, but a way to export all custom functions or any way
How can Data Enrichment be automatically triggered when a new Lead is created in Zoho CRM?
Hi, I have a pipeline where a Lead is created automatically through the Zoho API and I've been trying to look for a way to automatically apply Data Enrichment on this created lead. 1) I did not find any way to do this through the Zoho API; it seems like
Conditional Layouts On Multi Select Field
How we can use Conditional Layouts On Multi Select Field field? Please help.
Appreciation to Qntrl Support Team
We are writing this topic to appreciate the outstanding level of support from Qntrl Team. We have been using Qntrl since 2022 after shifting from another similar platform. Since we joined Qntrl, the team has shown a high level of professionalism, support,
How can I hide "My Requests" and "Marketplace" icon from the side menu
Hello everybody, We recently started using the new Zoho CRM for Everyone. How can I hide "My Requests" and "Marketplace" from the side menu? We don't use these features at the moment, and I couldn't find a way to disable or remove them. Best regards,
Whatsapp Integration on Zoho Campaign
Team: Can the messages from Zoho Campaign delivered through Whatsapp... now customers no longer are active on email, but the entire campaign module is email based.... when will it be available on whatsapp.... are there any thirdparty providers who can
Next Page