Building extensions #4: Integrating Zoho Books with applications using connections

Building extensions #4: Integrating Zoho Books with applications using connections

In our last post, we looked at an overview of the key features available for creating a Zoho Books extension, including connections. In this post, we'll go over connections in depth, including their types and applications.

What are connections?

"Connections" is a component in the developer console that allows you to establish secure connections between applications. In general, a secure connection is essential for apps to work seamlessly for data transmission and synchronization. The connections functionality in the Zoho Books extension developer portal is ideal for securely connecting Zoho Books to other Zoho products or third-party applications.

Types of connections

The Zoho Books extension developer portal allows you to use both predefined and custom connections.

Predefined connections:
These are ready-to-use connections that are preconfigured for various applications to connect with Zoho Books. You can simply search for the application you want to connect to from the default list, choose it, enter some basic information (scope), and connect to Zoho Books.

Custom connections:
These are connections for apps not included in the default list. You can create a custom connection by manually setting up or configuring information about the application you want to connect to Zoho Books with—such as the authentication type and other corresponding details—and then proceeding with the connection.

Notes
Note: You can also create these custom connections for applications in the default list if you want to customize the connection with specific details.

Now, let's explore the steps to create these connections with an example for each.

Steps to create a predefined connection
  • Go to Sigma and access your workspace.
  • Enter the developer portal of the Zoho Books extension you're creating a connection for.
  • Navigate to the Build section and click Connections to view the connection details, types (predefined and custom), and support to create a new connection.

  • Click the New Connection button to create a new connection.
Notes
Note: Alternatively, you can use the View All option under a connection type to see all the services under that particular connection type and begin building connections.

  • You'll be redirected to the connections page of your extension's developer space, where you can select default or custom services to create connections.


In this post, we'll walk you through creating a predefined connection using the default services available.

For our example, let's create a connection for Wrike (a project management service) available in the default services list and integrate it with Zoho Books.
  • Choose Wrike from the default services list.

  • Click the Create Connection button.

  • Provide the connection details.
➤ Enter the connection name.
➤ Toggle and choose whether you want every user to enter their credentials during connection authorization.
➤ Choose the scopes necessary for your purposes for the connection.

  • Click Create And Connect. Proceed with the flow to accept the scopes and authorize the connection.
  • The connection is now authorized, and you'll be directed to the connection details page. This page will also contain sample code in both deluge and JSON formats that can be used to utilize this connection as part of your extension components. Depending on which component you want to invoke the connection in, you can use the appropriate sample code format.
Notes
Note: Giving the connection name in the script is critical to be able to use the connection in the extension.


  • Close the connection's detail page, and you'll be taken back to your extension's developer portal.
  • If needed, you can create multiple connections for your extension. The connections you've created will be visible in the My Connections section of the Connections page.

  • You can click on a connection to view its details or choose to revoke it, if necessary. You can reconnect a revoked connection whenever you need it.
Let's look at a simple scenario for the predefined connection we created. Assume that each time a project is created in Zoho Books, a new project is created in Wrike to handle project management in detail. In addition, if any tasks are available as part of that Zoho Books project, they'll be instantly created in Wrike alongside the project. This can be accomplished easily in an extension using workflows, custom functions, and connections.

Let's check out the steps to make this happen.
  • Create a custom function for the Projects module by selecting Automate, then Workflow Actions, then Custom Functions, then New Custom Function. Include the logic to fetch the details and its tasks from a Zoho Books project and create a matching project in Wrike.
createwrikeproject deluge function - Please find the code snippet as an attachment in the post
  • In the code above, the Zoho Books project's details, such as project name and task details, are fetched from the Project Map parameter in the custom function.
  • The retrieved project details are constructed as a Map and then passed to the invokeURL deluge task to invoke the Wrike API and create a project. Additionally, a check is made to see if the Zoho Books project has tasks associated with it. If it does, then those tasks are added to the project created in Wrike using the Wrike API to create tasks.
  • The Invoke URL task requires some basic parameters to invoke the API and provide a response.
➤ url: This is the URL of the application's API that will be invoked. In our case, it's the Wrike API URL for Create Project and Create Task.
➤ type: This is the method of the HTTP request required for the API. Since we're creating projects and tasks in Wrike, the type is POST in our example.
➤ parameters: These are data that need to be constructed and passed as the body for the API.
➤ connection: The name of the Wrike connection we created has to be supplied as the value for the connection parameter. This ensures that data transfer between Zoho Books and Wrike is authorized and secure.
  • Next, create a workflow rule for the Projects module by selecting Automate, then Workflow Rules, then New Workflow Rule.
  • Set the Action Type as "When project is created."

  • Now, associate the custom function (createwrikeproject) as a workflow action to this workflow rule. Save the workflow rule.


We've now completed our extension setup for our use case.

After testing and publishing our extension, whenever a new project is created in Zoho Books, a matching project is created in Wrike as well, along with any tasks.


This example demonstrated a seamless transfer of data from Zoho Books to Wrike with connections. This use case can be taken a step further, making sure the project and its tasks maintained in Wrike are also synchronized in Zoho Books.

In this post, we've seen how to set up a predefined connection and use it in a Zoho Books extension. In the next post, we'll look at custom connections and how to create them.

SEE ALSO


      • Recent Topics

      • Delete a channel

        I need delete a channel in tickets.
      • Copy / Duplicate Workflow

        I have workflows setup that are very similar to each other. We have a monitoring system watching servers, and all notifications - no matter what client it is about - will come from a  noreply@ address which is not very helpful in having it auto assigned to the right account. I have setup a workflow that will change the contact name of the ticket (currently it would say noreply@) to the correct customer which is based on the subject line, as that mentions which server the alert it is about. I need
      • Subtasks don't update parent task's times

        Hi there: I've recently upgraded to premium and check that subtasks completion % don't update the proportional completion of the parent tasks related to it.  We've been challenging with the problem of having to update twice or sometimes 3 times the completion of the related tasks. I've seen posts similar to this, of 3 years old.  Is there any roadmap for making this happen in a future release? Thanx César Ratto Lima, Perú.
      • Should I Use DMARC?

        When I configure Zoho Mail's DMARC settings, it's mandatory to fill in the RUA and RUF (Aggregate notification email address*, Forensic notification email address*) addresses. When we enter an email address in these fields, we receive reports from the
      • Mail ToDo & Tasks Webhooks

        Our company uses Zoho ToDo inside Mail to manage our tasks. When I create a task and assign it to a team member it does not notify them unless I add a reminder via mail. I'm trying to create a webhook for when a task is created to send a cliq message
      • Can't upload attachments.

        I can't upload attachment in Zoho Mail.
      • Tip #44 – Get Deeper Insights with Zoho Assist’s Custom Reports – ‘Insider Insights’

        In today’s fast-paced IT environment, having a clear view of your remote support activities is more important than ever. Zoho Assist’s Custom Reports feature gives IT teams the ability to generate tailored reports that provide actionable insights and
      • Message "...does not support more than 100 distinct values..." WHY????

        I get this message on one of my reports: Sorry, Zoho Reports currently does not support more than 100 distinct values in columns. 'Account Name * Sum(Amount),Count(Amount Tier)' contains more than 100 distinct values.  Possibly, you can apply filter to reduce the number of distinct values in 'Account Name' or drop the 'Account Name' field in Rows. I want to list all ACCOUNT NAMES (about 500) with SALES BY ACCOUNT.  What is blocking this?
      • Need Easy Way to Update Item Prices in Bulk

        Hello Everyone, In Zoho Books, updating selling prices is taking too much time. Right now we have to either edit items one by one or do Excel export/import. It will be very useful if Zoho gives a simple option to: Select multiple items and update prices
      • Let's Talk Recruit: Super-charge hiring with Zoho Recruit add-ons

        Welcome back to our Let’s Talk Recruit series! This time, we’re diving into something that might seem like a small upgrade but has a huge impact on recruiter productivity: Zoho Recruit add-ons. Think about how much of your day is spent in your inbox or
      • Vendor Signatures Needed for Purchase Orders

        Hello everyone, We have a unique requirement that necessitates that Vendors & Suppliers formally acknowledge our Purchase Orders upon receipt. I was hoping that there would be an option to do so in Zoho Books, but that does not appear to be the case.
      • Is there an API to "File a Ticket" in Desk

        Hi, Is there an API to "File a Ticket" in Desk to zoho projects?
      • Store "Sign in with Google/Microsoft/GitHub etc." details

        Quite often now, users are using a sign-in provider like Google or Microsoft to sign into various apps and services. It would be great if Vault could remember which providers you use for each website and sign you in with that provider instead of a username
      • Critical Issue: Tickets Opened for Zoho Support via the Zoho Help Portal Were Not Processed

        Hi everyone, We want to bring to your attention a serious issue we’ve experienced with the Zoho support Help Portal. For more than a week, tickets submitted directly via the Help Portal were not being handled at all. At the same time no alert was posted
      • Tip of the Week #72– Assign thread ownership to avoid confusion.

        When teams handle a large volume of emails, managing threads becomes important to stay organized. Without a clear system, duplicate replies, missed follow-ups, or confusion over responsibilities can happen. Thread assignment solves this by designating
      • Migrate Your Notes from OneNote to Zoho Notebook Today

        Greetings Notebook Users, We’re excited to introduce a powerful new feature that lets you migrate your notes from Microsoft OneNote to Zoho Notebook—making your transition faster and more seamless than ever. ✨ What’s New One-click migration: Easily import
      • Unarchive tickets

        How can I manually unarchive tickets?
      • Optimize your Knowledge Base for enhanced accessibility by adding alt tags for images

        Let's learn why alt tags are crucial for your articles. You can add alternative tags (alt tags) and alternative text (alt text) to the images you share on your community forums or when embedding them in articles. Alt tags refer to the HTML attribute,
      • FSM trying again

        have not linked FSM yet to the rest of out Zoho suit. It certainly looks like the apointment and service part is more manageable for our staff. The question is that our engineers multi task examples 1. deliver products to customers not fitted 2. Service
      • Feature Request: Conditional Field Mandatoriness Based on Display Status

        Hello Zoho Creator Team, I would like to suggest an enhancement to improve the flexibility of form validations. Currently, when we need a field to be mandatory only if it's displayed on the form, the only option is to: Set the field as not mandatory in
      • Data Migration Strategies for Moving to a Cloud Solution

        Hi everyone, I’ve been working on moving some of our critical systems, including CRM and project data, to a Zoho cloud solution, and one of the biggest challenges I’ve encountered is data migration. Transferring large volumes of data while keeping it
      • Commerce Order as Invoice instead of Sales Order?

        I need a purchase made on my Commerce Site to result in an Invoice for services instead of a Sales Order that will be pushed to Books. My customers don't pay until I after I add some details to their transaction. Can I change the settings to make this
      • How to set different item selling prices for Zoho Commerce and Zoho Books

        Item selling prices for Zoho Commerce and Zoho Books are in sync. If we update the Item selling price in Books, the same will happen in commerce and vice versa. I need a separate commerce selling price for online users and a separate books selling price
      • Time Entry Notifications

        Hi All - I have support staff who place notes of their work in the time entry section of Zoho Desk. Is there a specific workflow or setting I need to enable to have the ticket holder updated via email when an entry is saved?
      • Zoho CRMの流入元について

        Zoho CRMとZoho formsを連携し、 formsで作成したフォームをサイトに埋め込み運用中です。 UTMパラメータの取得をformsを行い、Zoho CRMの見込み客タブにカスタム項目で反映される状況になっています。 広告に関してはUTMパラメータで取得できているため問題ないのですが、オーガニック流入でフォーム送信の場合も計測したいです。メールやGoogle、Yahoo、directなどの流入元のチャネルが反映されるようにしたいのですが、どのように設定したら良いでしょうか。 また、
      • How to report 'Response violation' OR 'Resolution violation'

        Hi, I want to report on SLA Violation Type. I grouped my tickets on this column. It seems I only get 'Response and Resolution Violation' or 'Not Violated'. The former seems to be given to a ticket if only the Response Time was violated. I would expect
      • [Webinar] Automate sales and presales workflows with Writer

        Sales involves sharing a wide range of documents with customers across the presales, sales, and post-sales stages: NDAs, quotes, invoices, sales orders, and delivery paperwork. Generating and managing these documents manually slows down the overall sales
      • Power of Automation :: Quick way to associate your Projects with Zoho CRM

        A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
      • Date triggering Workflow rule

        I have a function triggered by a workflow rule. The function takes a date and creates a task for that date and fills in a field with the name of the day for that date. It also updates the status field of the record. The workflow rule is set to run whenever
      • Restricting contact creation

        Hi all! I am looking to use Zoho Desk in a part of the business that takes end user enquiries. These are generally single interactions, and not linked to an account name. As Desk is Account centric, has anyone designed a way to manage these incoming emails
      • Import Holiday Calendars

        HI Zoho Is there anyway of importing an online calendar like https://www.calendarlabs.com into the business hours calendars, to speed up setup of holiday calendars. Also could we also request a feature where you can specify a Holiday as hours, i.e it could be that the company is on a 1/2 day due to a holiday or when it is Eid in the UAE and they are only allowed to work restricted hours so we need the calendar to be flexible to allow for this. Regards Jamie
      • Filtering Tickets based on Email headers

        We're starting to get a lot more junk coming into our Zoho Desk, which is then triggering unnecessary email alerts to agents. Once thing we could do to cut this junk in half, is to filter tickets based on email headers. Any email containing the `List-Unsubscribe`
      • Error 550 5.4.1

        I’ve tried sending an email to someone but keep receiving this back. Any help would be greatly appreciated 
      • Billing Management: #2 Fair way of Billing- Prorated Billing

        Hello, From speaking about the traditional ways of billing in the previous post, we are moving into the deep sea of billing. We are now in a zone to break out the most complex yet, I would call it the fairest way of billing, the Prorated Billing. Prorated
      • Automatic Matching from Bank Statements / Feeds

        Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
      • Has Anyone successfully integrated Zoho and Sage Intact?

        Hey all, We’re evaluating Zoho One + Sage Intacct and I’m trying to connect with anyone who has actually implemented the two together.Specifically, I’d love to know: -- Which functions you kept in Zoho vs. Intacct (e.g., Product Catalog, AR/AP, invoicing,
      • How can I filter a field integration?

        Hi,  I have a field integration from CRM "Products" in a form, and I have three product Categories in CRM. I only need to see Products of a category. Thanks for you answers.
      • Adding image in HTML report page

        Hi, I want to know two things: 1. Can anyone advise how to add an image in HTML report. The tagged used is <img> but what path do I mention for the image to be added in the HTML report. 2. Also, I want to know if I am creating an application for the market
      • How to change view of HTML report based on device but always print in A4

        Hello everyone, I am aware that HTML report view can be configured to adjust according to the screen size like Laptop, Tablet and mobile using media queries. But my concern is no matter on which device the reports is opened when printed should always
      • Age Calculation

        I've attempted to calculate the age of someone based on their birthday input by using the formula field. It works but I don't want all those decimals on there. I then tried to use "set variable" after birthday input but I get a field type mismatch, long vs. floating. Any ideas would be wonderful.
      • Next Page