Setting up and using connections in Bigin toppings

Setting up and using connections in Bigin toppings

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.
Notes
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.
Notes
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.



Notes
Notes
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.

Notes
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:
  1. Retrieves the contact details from Bigin by referencing the established connection link name biginandbooksconnection0__booksconnection.
  2. Searches Zoho Books for an existing contact that matches the email.
  3. If a matching contact exists, update the contact's phone and contact person details in Zoho Books.
  4. 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:
  1. //Retrieve contact details from Bigin using the established connection
  2. biginContact = zoho.bigin.getRecordById("Contacts",contact.get("Contacts.ID"),Map(),"");
  3. //Extract relevant contact data
  4. biginData = biginContact.get("data");
  5. contactDetails = biginData.get(0);
  6. email = contactDetails.get("Email");
  7. phone = contactDetails.get("Phone");
  8. mobile = contactDetails.get("Mobile");
  9. fullName = contactDetails.get("Full_Name");
  10. //Search Zoho Books for existing contacts by email
  11. searchParams = Map();
  12. searchParams.put("search_text", email);
  13. booksContactsResponse = invokeurl
  14. [
  15. url :"https://books.zoho.com/api/v3/contacts"
  16. type :GET
  17. parameters:searchParams
  18. connection:""
  19. ];
  20. info "Searched by name in Books: " + booksContactsResponse;
  21. booksData = booksContactsResponse.get("contacts");
  22. if(booksData != null && booksData.size() > 0)
  23. {
  24. // Extract the existingContactId
  25. existingContactId = booksData.get(0).get("contact_id");
  26. // Update existing contact
  27. updateParams = Map();
  28. updateParams.put("contact_name",fullName);
  29. updateParams.put("phone",phone);
  30. updateParams.put("mobile",mobile);
  31. updateParams.put("email",email);
  32. // Define contact person details
  33. contactPerson = Map();
  34. contactPerson.put("last_name",fullName);
  35. contactPerson.put("mobile",mobile);
  36. contactPerson.put("phone",phone);
  37. contactPerson.put("email",email);
  38. contactPerson.put("is_primary_contact",true);
  39. contactPersonsList = List();
  40. contactPersonsList.add(contactPerson);
  41. updateParams.put("contact_persons",contactPersonsList);
  42. //Prepare and execute update request
  43. parameters_data = Map();
  44. parameters_data.put("JSONString",updateParams.toString());
  45. info "parameters_data value:" + parameters_data;
  46. updateResponse = invokeurl
  47. [
  48. url :"https://books.zoho.com/api/v3/contacts/" + existingContactId + "?organization_id=XXXXXXX"
  49. type :PUT
  50. parameters:parameters_data
  51. connection:""
  52. ];
  53. info "Updated Contact: " + updateResponse;
  54. }
  55. else
  56. {
  57. // Create new contact
  58. contactDetails = Map();
  59. contactDetails.put("contact_name",fullName);
  60. contactDetails.put("email",email);
  61. contactDetails.put("phone",phone);
  62. contactDetails.put("mobile",mobile);
  63. // Define contact person details
  64. contactPerson = Map();
  65. contactPerson.put("last_name",fullName);
  66. contactPerson.put("mobile",mobile);
  67. contactPerson.put("phone",phone);
  68. contactPerson.put("email",email);
  69. contactPerson.put("is_primary_contact",true);
  70. // Add to contact persons list
  71. contactPersonsList = List();
  72. contactPersonsList.add(contactPerson);
  73. contactDetails.put("contact_persons",contactPersonsList);
  74. // Prepare and execute the create request
  75. parameters_data = Map();
  76. parameters_data.put("JSONString",contactDetails.toString());
  77. createResponse = invokeurl
  78. [
  79. url :"https://books.zoho.com/api/v3/contacts?organization_id=XXXXXXX"
  80. type :POST
  81. parameters:parameters_data
  82. connection:""
  83. ];
  84. info "Created Contact: " + createResponse;
  85. }
For details about the API endpoints and request formats used in this code, refer to the Bigin Deluge reference library and Zoho Books contacts API documentation.
After you configure the workflow and associate the function with the instant action, test the topping in the sandbox environment.
  1. 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.
  2. 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.

<< Previous                                                                                                                                                      Next>>                                                                                                                                                                                                                                              

    Nederlandse Hulpbronnen


      • Recent Topics

      • Adding Multiple Files to a Zoho Vault Entry

        There is a old blog post talking about adding multiple file attachments to one Zoho Vault Secret: https://www.zoho.com/blog/vault/introducing-new-features-in-zoho-vault-powerful-password-sharing-wider-storing.html Is that still possible, I can see how
      • FNB South Africa Bank Feed

        I should've thought this wouldn't work. As suspect, Zoho claims to be able to pull bank feeds from First National Bank (South Africa), but fails everytime. I suppose Xero (or even Sage One) is the way to go? If they (miraculously) get it to work again,
      • Zoho unreliable

        Some mails are delivered, others not. How can I trust Zoho any more? Some friends get my e-mail, some don't. Same with receiving e-mails: Some I get, some not. If I use Google, everything works well. But Zoho?!!! How to solve this problem? I already reported this problem before, but didn't get any reply. Thanks, Kim
      • the custom domain forwards by default to the old career site / how to switch it off??

        dear friends, how to switch off the old version of the career site?? The set up custom domain forwards directly to the old site, so that I cant publish it... Any ideas? Thank you! KR, Victoria
      • Preserve Ticket Issue Mapping When Migrating from Jira to Zoho Projects

        Hello Zoho Projects Team, We hope you are doing well. We are currently exploring a full migration from Jira to Zoho Projects, and we identified a critical limitation during the migration process involving Zoho Desk integration. Current Situation: We use
      • Recording Shopify/Amazon fees in Zoho Books - Zoho Inventory

        We are currently flushing out the connections between Shopify/Amazon and Zoho Inventory. For other users of Zoho Books - Zoho Inventory, where and at what point do you record the merchant fees associated with theses channels? I have gotten mixed responses
      • Pre-fill webforms in Recruit

        I don't want to use the career site portal (as I have my own already), but I would like to direct users to the application forms for each role, from my website job pages. Is there a way to pre-fill fields in Recruit application forms, so that I only have
      • Taxes Payable Adjustment

        I am from Canada and I need to make an adjustment to my Taxes Payable (HST) account.  Basically I need to take a portion of the amount within Taxes Payable and expense that portion to another account.  The adjusting entry would like like the following:
      • ASAP Widget Not showing "My Tickets"ed

        Hello Team, I have created a ZOHO ASAP Widget and embedded to my portal app.clearvuiq.com , widget renders ok and I can open tickets from widget. However I want my opened tickets to be visible in the widget. How can I achieve that?
      • How to view CRM Sales Orders in Desk

        What's the usual way to view all CRM sales orders linked to a contact, when viewing a ticket in Desk? I don't want to have to open a new tab to see the order in CRM. And the Desk CRM sidebar doesn't seem to be configurable. Would I have to use an extension
      • Kaizen #219: Actions API - Webhooks APIs - Part 1

        Hello all!! Welcome back to a fresh Kaizen week. In the previous weeks, we covered Workflow Rules APIs, Actions APIs - Email Notification APIs, Tasks Update API, and Field Update API. This week, we will continue with another Actions API - Webhooks API
      • Pricing Strategies: #3 Services never Stop with just Plans

        "Hey, while you're here, could you also take a look at the vegetable patch?" Aaron hears that line almost every week. He runs a small gardening service, the kind where customers subscribe to a simple monthly plan that includes basic maintenance, mowing,
      • Cropping Photos for Zoho Sites

        Hi, I'm wondering if there is a built in crop tool for zoho sites for my photos so I can crop them and see what the crop looks like on the site?
      • Possible for first Signer of Sign Form to specify the next signer in the sequence

        We have many use cases where multiple signers need sign the same document. We'd love to be able to use sign forms, where the a signer who uses the Sign Form link can specify the name and email address for the next person in the sequence.
      • BUG: Can't copy-paste data outside Sheet

        Currently I can't paste data copied from inside any of my Zoho Sheet files to any other app. Copy-paste works inside the sheet It does NOT work between two different sheets These sheets are built from automation templates Everything works fine if I create
      • Zoho CRM Community Digest - November 2025 | Part 1

        Hello Everyone! Here’s what came through in the first half of November: new updates and a few helpful community discussions with real, notable solutions. Product Updates: Android App Update: Inctroducing Swipe Actions You can now swipe left or right on
      • Upload own Background Image and set Camera to 16:9

        Hi, in all known online meeting tools, I can set up a background image reflecting our corporate design. This doesn't work in Cliq. Additionally, Cliq detects our cameras as 4:3, showing black bars on the right and left sides during the meeting. Where
      • Truesync for Linux

        Is Truesync available on linux ?
      • Hidding/excluding specific picklist options from filter

        Hi. Is it possible to hide/exclude specific picklist options from this filter? I don't want them to be shown when someone tries to filter in the leads module
      • Subforms to Capture Multi-Row Data in Job Sheets

        Subforms transform your job sheets from simple checklists to powerful, data-rich forms. In field service work — whether maintenance, inspection, installation, or repair — a single job can involve multiple repeatable entries: readings, parts used, activities
      • Add "Fetch Composite Item" Action for Inventory

        I want to make a Flow that uses information returned in the GET call for Composite Items, and it's not currently available in Zoho Flow. Please consider adding this functionality.
      • Adress Labels for sending of the oder und barcode

        We want to print with my address labels to stick on the order of the ware can. there are these options?
      • printing individual labels - Dymo LabelWriter

        I am trying to print individual labels to my Dymo LabelWriter - has anyone done this? Latest Update (December 2025): The Canvas Print View is now available! We encourage you all to try it out and share your feedback with us. Learn more here: Zoho CRM
      • Zoho Creator for Agriculture

        Greetings, I am starting to work on  Zoho Creator specifically for the agricultural field, any recommendations, tips or ideas that might be helpful ? Also, if you are interested by any means in working on such project, kindly contact me. The project is
      • Custom Print Layout

        I would like to create a custom print layout of a Lead or Contact. Is there a way to do that? What I mean is that if I'm viewing a specific lead or contact I'd like to be able to print or export that lead/contact and only print and/or export certain information.
      • Print View

        Nothing happens when I'm in a module , ie; Contacts, and I hit the Print View Button. Even when it does come up and say "loading", nothing loads
      • Get Holiday ready with Zoho Mail's Offline mode

        With the holiday season right around the corner, this is the perfect time to get ready to unplug, relax, and enjoy a well-deserved break. In addition to preparing yourself, you can also make sure your organization members are set for their time away from
      • Solution to Import OST File into Office 365.

        MailsDaddy OST to Office 365 Migration Tool is an outstanding solution to recover OST files and migrate them into Office 365 without any hassle. Using this software users can multiple OST files into Office 365 with complete data security. It offers users
      • Zoho CRM Kiosk issues

        Firstly this is for a system on the AU servers if that makes a difference. Issues are as follows (For Kiosk): 1. Re-ordering fields in the screen builder is broken. The fields seem to be re-ordering themselves, unless you order everything by moving the
      • Email Template Edits Not Saving

        I can make an edit, click save, and see the blue bar annimation at the top, but the edits don't actually save. Important, because my email templates are now broken and clients are receiving bad emails. Tried on Chrome, Firefox and IE.
      • Can I have different users see different pick list values for Potential Stage?

        We have some users focusing on new business and others focusing on existing business, and they follow different sales processes/cycles, so we would like them to see different pick list values for Stage (eventually leading up to Closed Won/Lost in both cases).   And just to keep it interesting - some of these users will of course do a combination, so would need to see one pick list for their New business potentials and a different pick list for their Existing business ones.   Salesforce does this
      • Tracking Snippet not working in Zoho Marketing Automation!

        First off, the fact that you have to wait about 12-24 hours for every response is terrible. How are we supposed to conduct business? Second, we have been trying for several days to get the Tracking Code Snippet in marketing automation to work, to no avail.
      • Is there any way to send an Excel received by email to Dataprep?

        Every day I receive an email alert with an Excel file that I want to process through a Dataprep pipeline. To do this, I need to: -Save the file to disk -Open the pipeline -Run the pipeline -Update the source -Several clicks to select and open the saved
      • Read webpage - MSXML2.ServerXMLHTTP

        I have the following VBA script, put together from various sources (mainly zoho forum/help/support, so it once worked, I guess): private Sub GetListOfSheets() Dim url As String Dim xmlhttp As Object Dim parameters As String Dim html As String range("B1").value
      • Zoho Creator Form Search

        I'm new to Zoho Creator and so far i do like it but im shocked there seems to be no easy way to add a search function and/or navigation to there forms as this readily available in every platform i have used in the past. Anyway i have a form which i have
      • How to setup DKIM / SPF in Zoho Mail

        Hello there! I'm having a hard time understanding how to setup the TXT records for SPF and DKIM with Zoho Mail. I'm following the instructions here: https://www.zoho.com/campaigns/help/setup-spf-dkim.html Specifically, when it comes to the value for the
      • Mass update cant trigger a workflow?

        Hello there, Is this a normal Creator behaviour? In a report, if I manually edit each data row, it will pass those changes to all other reports. However, if I perform a Mass Update on a few data rows at once, the new data is not pushed to other reports.
      • search and Smart Bar both missing in Mail

        One of the users on my account does not have the search bar at the top right or the Smart Bar at the bottom left of the desktop Mail app. Any ideas how to get those back?
      • Let us add Lookup fields in the Blueprint Transitions

        We are unable to add Lookup Fields in the blueprint transitions in Zoho Desk, we wanted to make it a requirement for our workflow but since it's not available in the transition we cannot. The lookup field exists in the Layout: But it cannot be added/selected
      • Zoho Projects API Scope for Issue Attachments

        I try to download issue attachments via the API, unfortunately I always get the following error code when trying to download the file from the supplied URL: {"ERROR_MESSAGE":"INVALID_OAUTHSCOPE","ERROR_CODE":401} indicating an auth scope error. I've tried
      • Next Page