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
Attachments between Zoho and Clickup, using Flow.
Olá suporte Flow, tudo bem ? Estamos usando o flow para integrar Zoho Desk com o clickup. Não localizamos a opção de integrar anexos entre do zoho Desk para o clickup. Gostaríamos de saber se migrando para o plano pago, teremos suporte para fazer a integração
Adding an Account on Zoho Mail Trigger in Zoho Flow
I'm trying to create a flow using the zoho mail trigger "Email Receive". My problem is that when I select this trigger, it only shows one account from the account dropdown. I'm planning to assign it on a different email. How can I add other email ad
Linnworks
Unless I am missing something, the Linnworks integration is very basic and limited. I have reached out to support but the first response was completely useless and trying to get a reply in a timely manner is very difficult. Surely I should be able to
Test data won't load
I am using a Flow to receive orders from WooCommerce and add them to a Zoho Creator app. I recently received an order which failed, and when attempting to test the order I found that it just shows a loading animation and shows up in the history as "queued."
AddHour resets the time to 00:00:00 before adding the hour.
Based on the documentation here: https://www.zoho.com/deluge/help/functions/datetime/addhour.html Here's my custom function: string ConvertDateFormat(string inputDate) { // Extract only the date-time part (before the timezone) dateTimePart = inputDate.subString(0,19);
WhatsApp Link is not integrating
Hello, I am using zoho flow. when new row added in google sheet it sends email to respected person. In email body I have a text "Share via WhatsApp". behind this text I putted a link. But when the recipient receives email and wants to share my given info
Zoho flow - Webhook
If I choose an app as a trigger in Zoho Flow, is it still possible to add a webhook later in the same flow?
Zoho Flow + Bigin + Shopify
We are testing Zoho Flow for the first time and want to create a flow based in first purchases. When a client makes his first order, we're going to add the "primeiracompra" (first order) tag to his account in Shopify (it's not efficient, but that's the
Is it The Flow? Or is it me?
I want to do some basic level stuff, take two fields from a webhook, create a zsheet from a template using one field with date appended, create a folder using both fields as the name, and put the zsheet into that folder. I was going to elaborate - but
Having problem with data transferring from Google sheet to ZMA
When connecting Google sheet with Zoho marketing automation it is having the email as a mandatory field. Can I change it as non-mandatory field or is there any other way to trasnfer data from google sheet to ZMA. I have leads which we get from whatsapp,
Dropbox to Workdrive synchronisation
I want to get all the files and folders from Dropbox to Workdrive and each time a new file or folder is added in dropbox i want it to be available in Workdrive and wise versa. Sync Updates to Files Trigger: "File updated" (Dropbox). Action: "Upload file"
Microsoft Planner Task to Service Desk Plus Request - error n4001
Hi there. I'm trying to create a flow that will create a new request in ServiceDesk Plus when a new task is created in Microsoft Planner. I have succesfully connected both Planner and ServiceDesk Plus, and have configured the 'create request' section
Trailing Space in "Date and time scheduled "
I am trying to use the Zoho Projects - Create event action in a flow. It is failing with the output error as: "Action did not execute successfully due to an unknown error. Contact support for more details." The input is: { "Duration - Minutes": 30, "Project":
Project name by deal name; project creation via flow
Hello, I want to create a project in zoho projects using flow by a trigger at the crm. My trigger is the update of a deal (stage). The project name should be the account name/ deal name. But I dont find the solution to it. Can you please give me the answer
Slack / Zoho Flow; Repl
I am trying to add a comment in a zoho ticket when someone reply's to a message in a thread. The Message posted to public channel trigger doesn't seem to pick up thread messages. I also cannot use the thread_ts field as it doesn't seem to pull that in.
Get Holiday ready with Zoho Mail's Templates
As the holiday season approaches, it’s time to step away from work and unwind. You may not be able to respond to every email or send individual messages to wish everyone holidays greetings—but It is still important to stay connected. How do you send thoughtful
Customize folder permissions in a Team Folder in a Team Folder via zoho Flow
HI All, on the nth level folder of a team folder I would like to Customize folder permissions when it's created in the flow of Creating folders. That last level I only want to grant access to a specific group, goup ID 201XXXXXXXX. Can you help with a
Associating a Candidate to a Job Listing
Hello, I am trying to use Zoho Forms embedded on my website for candidates to apply for a job opening. I want the form then to tie directly with zoho recruit and have the candidate be automatically inputed into Recruit as well as associated with the specific
Automate reminder emails for events
Hi team, I am trying to automate send event reminders via zoho campaign to my attendees 1 day prior to my scheduled events. I used zoho flow, autoresponder in zoho campaign, as well as I used workflow and automation - but none of these methods are working.
Update related module entry Zoho Flow not working with custom module ?
Hi everyone. I am facing an issue here on Zoho Flow. Basically what I am doing is checking when a module entry is being filled in with an Event ID. Event is a custom module that I created. If the field is being filled in I fetch the contact with its ID
How to disable time log on / time log off
Hi We use zoho people just to manage our HR Collaborators. We don't need that each persona check in and out the time tracker. How to disable from the screen that ?
Zoho Flow - Add to Google Calendar from trigger in Zoho Creator App
Hello! New to Zoho Flow, but I believe I have everything setup the way it should be however getting an error saying "Google Calendar says "Bad Request". Any idea where I should start looking? Essentially some background: Zoho Creator app has a trigger
Email authentication
أريد التحقق من البريد الإلكتروني
What’s New in Zoho Analytics – December 2025
December is a special time of the year to celebrate progress, reflect on what we have achieved, and prepare for what’s ahead! As we wrap up the year, this month’s updates focus on refining experiences, strengthening analytics workflows, and setting the
Marketing Tip #12: Earn trust with payment badges and clear policies
Online shoppers want to know they can trust your store. Displaying trust signals such as SSL-secure payment badges, return and refund policies, and verified reviews shows visitors that your store is reliable. These visual cues can turn hesitation into
The improved portal experience: Introducing the template view for inventory modules, enhanced configurations, and PDF export support
Availability: Open for all DCs. Editions: All Hello everyone, You can now achieve a seamless, brand-aligned portal experience with our enhanced configuration options and the new template view for inventory modules. Your clients will now be able to view
Zoho Analytics Bulk Api Import json Data
HI, I’m trying to bulk-update rows in Zoho Analytics, and below are the request and response details. I’d like to understand the required parameters for constructing a bulk API request to import or update data in a table using Deluge. Any guidance on
Project Management Bulletin: December, 2025
The holiday cheer is in the air and it’s time to reflect on the year that was. At Zoho PM Suite, we've been working behind the scenes on something huge and exciting all year and now we are almost ready—with just a bit of confetti—for our grand release
Inventory batch details
Hi there, I'm trying to get the batch details of an item, here's what I've done so far. I've sent cUrl request to the below endpoint and I get a successful response. Within in the response I find the "warehouses" property which correctly lists all the
Auto check out after shift complete
i'm just stuck here right now, i wanna know how to do this thing, now tell me, how can i configure a custom function that runs after complete shift time if employee forget to check-out ?
How to create a flow that creates tickets automaticaly everyday based on specific times
Hi guys Does anyone know how to create a flow that will create tickets automaticaly in ZOHO Desk when a certain time is reached. Im havin a hard time configuring a flow that will create tickets automaticaly everyday during specific hours of the day For
ZOHO FLOW - ZOHO CREATOR - ZOHO WRITER : Get Related records
Bonjour, J'ai besoin que vous m'ajoutiez la solution "Get related Records" dans la liste de choix de zoho creator (sous Zoho flow). En effet, j'ai besoin de récupérer les champs d'un sous formulaire pour l'ajouter à l'impression de mon document. Mer
Will zoho thrive be integrated with Zoho Books?
title
Connecting email for each department in ZohoDesk
Hi! Could someone help me to go through connecting emails for each department?
How do I trigger a Flow based on a campaign response?
Is there a way to trgiider a Zoho Flow based upon a lead opening an email sent via Zoho Campaigns? I see that the data is recorded in the 'Campaigns' section of Zoho CRM under 'Member Status' and I want to trgigger a flow based upon that record changing.
All Zoho Flows are filtered
My two flows operate perfectly when I run them as a test, but when they're activated each run ends with a status of neither success, nor fail, but filtered. I haven't set up any filters. I don't see where to turn off filters. When I test run on a sequence
Creating Multiple Items on Sales Order
Hi, I’m trying to automate some processes using Zoho Flow, specifically the creation of sales orders in my Zoho Inventory. However, Zoho Flow's Create Sales Order function can only add one item. I would like to include multiple items in a single sales
Problem Connection from Zoho Flow and Gravity Form
I obtained my API key from Gravity Forms via WordPress. However, when I enter my Zoho Flow, it states: Gravity Forms says, 'You are not authorised to access the API." I tried recreating a new API key, but it is still not working.
Eventbrite Email Field in Zoho Flow Returns "Info Requested" Instead of Actual Email
Hi Zoho team, I'm using Zoho Flow to connect Eventbrite with Zoho CRM. My goal is to automatically add event attendees as leads in Zoho CRM. I’ve set up the flow and mapped the ${trigger.profile_email}} field to the Email field in CRM. However, I'm running
"Invalid value passed for Product ID" Error in Zoho Flow "Create Sales Order" Node
Hello Zoho Community, I’m facing an issue with Zoho Flow while trying to create a sales order in Zoho Inventory using the "Create Sales Order" node. Here’s a detailed explanation of my setup and the problem: What I’m Trying to Achieve I’m building an
Next Page