Bidirectional sync between Zoho Bookings and Zoho CRM - Part 1

Bidirectional sync between Zoho Bookings and Zoho CRM - Part 1

Hey, community members!

The default integration between Zoho CRM and Zoho Bookings is unidirectional, which means that any appointments booked, rescheduled, or deleted in Zoho Bookings will be reflected in Zoho CRM. However, any modifications made to events in Zoho CRM that originated from Zoho Bookings will not be reflected back in Zoho Bookings. Hence, as we're announcing in this community post, we've made the sync bidirectional.

This community post will cover the process of configuring appointment bookings from Zoho CRM in Zoho Bookings, as well as managing appointment statuses such as Canceled, No Show and Completed. We have addressed the rescheduling action in a separate post. To view it, please click on the following link: Reschedule Action

This community post will be beneficial for active Zoho CRM users who handle all their meetings within Zoho CRM. Additionally, you can use this community post as a reference to explore various automation possibilities tailored to your business requirements. For instance, with this post's guidance, when you update a booking's status field to "Completed" in Zoho CRM, it will automatically sync with Zoho Bookings and trigger an automated "Mark as completed" email to customers. This enhancement will improve your Zoho Bookings and Zoho CRM synchronization experience, making appointment management easier.

Prerequisites of bidirectional sync: 
  • Zoho Bookings Premium subscription
  • Zoho CRM paid subscription
  • Enable Zoho CRM integration within Zoho Bookings
The purpose of enabling the Zoho CRM integration within Zoho Bookings is to transfer booking details from Zoho Bookings to Zoho CRM. In this configuration, the mandatory field is the Booking ID, which is passed from Zoho Bookings to Zoho CRM through the integration. Whenever an appointment is booked, customer details will be sent to the designated CRM module, and a corresponding record will be created in the Meetings module within Zoho CRM, which will help in automating the workflow.

Here's the complete demo video that covers all the configurations discussed in the community post below:

Timestamps for your reference: 

0:35 - Purpose of this community post
1:26 - Zoho CRM plugin installation
4:43 - Custom field creation
7:20 - Function creation
9:22 - Connection creation
10:24 - Configuring arguments 
11:06 - Workflow creation
13:33 - Argument mapping
14:41 - Output verification
17:41 - Conclusion



How we're approaching this bidirectional sync

1. Booking an appointment from Zoho CRM

Install the Zoho Bookings for Zoho CRM plugin within your Zoho CRM application. This plugin enables the creation of a "New Appointment" button within the Zoho CRM Leads and Contacts module, which enables you to select the desired booking page you wish to open. You can choose from various workspace, service, or staff booking pages. After configuration, you can initiate the process of scheduling bookings directly from within your Zoho CRM account. 
2. Booking status: Completed or No Show

To update a booking's status (Completed or No Show), we've added a new picklist properties field named "Booking Status" in the Meetings module and configured it with two options: "completed" and "no show". Depending on the booking status chosen, the corresponding booking in Zoho Bookings will be updated.
  • Details on how to add a custom field to the Meetings module : Customizing modules

  • Here's a video that demonstrates how to add a field to a module in Zoho CRM: Adding fields
Reference:




3. Booking status: Canceled 

Whenever a meeting is deleted from the Meetings module, the corresponding booking in the Zoho Bookings app will also be canceled automatically. The meeting can be deleted either from the Meetings module or directly from the calendar.





To enable bidirectional sync between Zoho CRM and Zoho Bookings

Complete these steps in Zoho CRM.

Step 1: Creating connections

You first need to establish a connection between Zoho CRM and Zoho Bookings. Zoho Bookings is listed as one of the default connections in Zoho CRM, making it simple to set up. Select the Zoho Bookings connection, define the connection name and scope, and you'll be all set. This connection will enable you to link both applications and facilitate the seamless transfer of data. 
Read here for more details on how to create connection in Zoho CRM: Connections

Step 2: Creating functions

In this context, we'll be creating three functions: one for marking appointments as completed, another for canceling appointments, a third for marking appointments as no shows, and a fourth for rescheduling appointments. For each function, we must also configure arguments, which pass values or data into a function when making a call. Here, we'll pass the booking ID to the function as an argument to update the necessary booking status.

i. To create a function for marking appointments as completed:
 
     1. Go to Setup > Developer Space > Functions.
     2. In the Functions page, click + Create New Function.

     3. Configure the function name, display name, and description.
     4. Set the category as automation.

More details:  Functions

This opens the Deluge script page.

     5. Next, configure the function's arguments:
          A. Click on Edit Arguments on the Deluge script page.

          B. Set the Parameter Name as bookingID. (Please note that the "bookingID" value is case sensitive and must match 
               the term used in the code).
          C. Set the type as string.

Reference:


Please configure the below code in the Deluge script page. 

Code link: Completed



By completing these steps, we've configured a function that will mark appointments as completed.

ii. To create a function for marking appointments as no shows

      1. Go to Setup > Developer Space > Functions.
      2. In the Functions page, click + Create New Function.

      3. Configure the function name, display name, and description.
      4. Set the category as automation.

More details:  Functions

This opens the Deluge script page.

      5. Next, configure the function's arguments:
           A. Click on Edit Arguments on the Deluge script page.

           B. Set the Parameter Name as bookingID. (Please note that the "bookingID" value is case sensitive and must match
                the term used in the code).
           C. Set the type as string. 

Reference:


Please configure the below code on the Deluge script page.

Code link: No show



By completing these steps, we've configured a function that marks appointments as no shows.

iii. To create a function for marking appointments as canceled

      1. Go to Setup > Developer Space > Functions.
      2. In the Functions page, click + Create New Function.

      3. Configure the function name, display name, and description.
      4. Set the category as automation.

More details:  Functions

This opens the Deluge script page.

      5. Next, configure the function's arguments:
            A. Click on Edit Arguments on the Deluge script page.

            B. Set the Parameter Name as bookingID. (Please note that the "bookingID" value is case sensitive and must match
                 the term used in the code).
            C. Set the type as string. 

Reference



Please configure the below code on the Deluge script page.

Code link: Cancel appointment 



By completing these steps, we've configured a function that marks appointments as canceled.

Code explanation

Below is an explanation of the code that covers all the configurations present in the three functions mentioned above (cancel, mark as completed, and mark as no show).

Line 1: Based on the Zoho Bookings account's data center, we're setting up the API endpoint URL configuration. 
Lines 2 - 4: To update appointments, we utilize the Zoho Bookings API. Within the update appointment API, there are two mandatory fields that need to be included: BookingID and action (completed/cancel/noshow). 

Lines 5 - 10: We use the invokeURL task for API calls. To learn more about the invokeURL task, please refer to the following document: InvokeURL task for API calls

Now, let's proceed and learn about the process of creating a workflow and linking the established functions to it. This will enable us to automate the entire appointment status updating process.


Step 3: Creating a workflow

Workflow rules are sets of actions (email notifications, tasks and field updates) that are executed when specified conditions are met. Here, we'll generate workflow rules for each action to activate the respective function, thereby automating the appointment status updating process.

More details: Workflow overview

i. Creating a workflow for "canceling" appointments in Zoho Bookings when a meeting is deleted in Zoho CRM

Part 1: Creating the rule

      1. Go to Setup > Automation > Workflow Rules.
      2. In the Workflow Rules page, click Create Rule.

      3. Select "Meetings" under Module and configure rule name and description as required.

More details: Create Rule

Reference: 


Part 2: Specifying the rule trigger

More details: Specify rule triggers

      1. Select Record Action > Delete > Done to execute the rule when meetings are deleted.

      2. Configure condition > All Meetings.

      3. Instant Actions > Function.

      4. Click the New Function button.


      5. In the Configure custom function page, select the "cancel" function you created from among the functions users in your organization have created.


Part 3: Argument mapping

      1. Press # to choose an argument value.

      2. Select Meetings under Module and BookingId in the field.

      3. Click the Save and Associate button.

Reference:


Below is the final flow of the cancel booking workflow:


At the end of Part 3, we will have created a workflow that will be executed automatically when meetings are deleted in Zoho CRM. Simultaneously, the bookings associated with the meeting will also be canceled in Zoho Booking.

ii. Creating workflow for updating an appointment's status as "no show" in Zoho Bookings when the meeting's booking status is marked as no show in Zoho CRM

Part 4: Creating the rule

      1. Go to Setup > Automation > Workflow Rules.
      2. In the Workflow Rules page, click Create Rule.

      3. Select Meetings under Module and configure the rule name and description as required.

More details: Create Rule

Reference:

 
Part 5: Specifying the rule trigger

If you encounter difficulties while navigating through the steps mentioned below, please refer to Part 2 above, where we have provided step-by-step screenshots for clarification.

      1. Record Action > Edit. 

      2. Enable the Specific field(s) gets modified and configure it per the screenshot below.
          a. This is to ensure that the workflow is executed only when the booking status under the meeting module is
              updated to "No Show".

      3. Configure condition > All Meetings.
      4. Instant Actions > Function > New Function.
      5. In the Configure custom function page, select the "no show" function you created from among the functions
          users in your organization have created.

Part 6: Argument mapping:

If you encounter difficulties while navigating through the steps mentioned below, please refer to Part 3 above, where we have provided step-by-step screenshots for clarification.

      1. Press # to choose an argument value.
      2. Select Meetings under Module and configure the field as "BookingId".
      3. Click Save and Associate button.

Reference:


Below is the final flow of the "No Show" booking status workflow:


At the end of part 6, we will have created a workflow that automatically executes when the booking status field within the Zoho CRM Meetings module is updated to "No Show." This action will result in the associated bookings for that meeting also being marked as "No Show" in Zoho Bookings.

iii. Creating workflow for updating appointment status as "Completed" in Zoho Bookings when the booking status field of the meeting is marked as completed in Zoho CRM.

Part 7: Creating the rule

      1. Go to Setup > Automation > Workflow Rules.
      2. In the Workflow Rules page, click Create Rule.

      3. Select Meetings under Module and configure rule name and description as required.

Reference:



Part 8: Specifying the rule trigger

If you encounter difficulties while navigating through the steps mentioned below, please refer to Part 2 above, where we have provided step-by-step screenshots for clarification.

      1. Record Action > Edit.

      2. Enable the Specific field(s) gets modified setting and configure it per the screenshot below.
            a. This serves to ensure that the workflow is executed only when the booking status under the Meetings module is
                updated to "Completed".

      3. Configure condition > All Meetings.
      4. Instant Actions > Function > New Function.
      5. In the Configure custom function page, select the "completed" function you created from among the functions users
          in your organization have created.

Part 9: Argument mapping:

If you encounter difficulties while navigating through the steps mentioned below, please refer to Part 3 above, where we have provided step-by-step screenshots for clarification.

      1. Press # to choose an argument value.
      2. Select Meetings under Module and configure the field as "BookingId".
      3. Click Save and Associate button.

Reference:


Below is the final flow of the "Completed" booking status workflow:


At the end of part 9, we will have created a workflow that is automatically executed when the booking status field within the Zoho CRM Meetings module is updated to "Completed." As a result, the associated bookings for that meeting will also be marked as "Completed" in Zoho Bookings.

Conclusion

We've reached the end of this community post. With the integration mentioned above in place, you'll be able to book, cancel, and update the status of appointments in Zoho Bookings directly from your Zoho CRM application. This will help you effectively manage your appointments in one place. As mentioned above, we've covered the rescheduling action in a separate post, which you can access by clicking on the following link: Reschedule Action

Furthermore, we've outlined a method for automating appointment statuses in detail. You can use this document as a reference to explore the various possibilities that suit your needs.
 
If you have any questions or need assistance with your configuration, please email us at hello@zohobookings.com or support@zohobookings.com.

    Nederlandse Hulpbronnen


      • Recent Topics

      • Secure your help center profile with Multi-Factor Authentication (MFA)

        Hello everyone, With the rise in security breaches and compromised passwords, keeping your account secure has become more challenging. To address this and enhance security of the help center, businesses can enable Multi-Factor Authentication (MFA) for
      • Add Support for Authenticator App MFA in Zoho Desk Help Center

        Hello Zoho Desk Team, We hope you are doing well. We would like to request an enhancement related to security for the Zoho Desk Help Center (customer portal). Currently, the Help Center supports MFA for portal users via SAML, JWT, SMS authentication,
      • Improved RingCentral Integration

        We’d like to request an enhancement to the current RingCentral integration with Zoho. RingCentral now automatically generates call transcripts and AI-based call summaries (AI Notes) for each call, which are extremely helpful for support and sales teams.
      • Non-depreciating fixed asset

        Hi! There are non-depreciable fixed assets (e.g. land). It would be very useful to be able to create a new type of fixed asset (within the fixed assets module) with a ‘No depreciation’ depreciation method. There is always the option of recording land
      • Overview on users IMAP settings

        We have about 30 users who all have the channels/email/email configuration/IMAP integration/O365 enabled and emails are synchronized. Here my problem: Passwords for the email accounts are expiring on individual bases and most of the users forget to update
      • Can Zoho Sign “Send with Zoho Sign” be triggered from Blueprint and used to control stage progression?

        We are currently designing a process in Zoho CRM using Blueprint where a document needs to be sent for signature as part of the workflow. Our requirement is: From a Blueprint transition, trigger sending a document using Zoho Sign Once the document is
      • Timesheet Approval by Milestone Owner (Not Just Project Owner)

        Hi, In Zoho Projects Timesheet Approval Rules, we can only select "Project Owner" as an approver type when multiple projects are involved. However, our organization needs **Milestone Owners** to approve timesheets for tasks logged under their specific
      • Is Zoho Tables part of Zoho One

        Cant seem to add the app as part of my Zoho One Subscription?
      • Analytics Report Visibility Issue

        We are currently experiencing an issue with opening the analytics report, as the content appears invisible/unreadable. Kindly review and advise on the root cause or provide a corrected version at the earliest convenience. Your prompt support will be appreciated
      • How to add a filter

        Hi Team, How can I set a filter like excel, instead of adding a new button.
      • Feature Request - Make Available "Alias Name" Field In Item List View

        Hi Zoho Inventory Team, I have noticed that the "Alias Name" field does not appear on the list of selectable columns in the Customise Columns feature in the Items module. This would be very useful to see for businesses who are using the Alias Name field
      • [Free Webinar] Learning Table Series, May 2026 - Enhancing client collaboration with customer portals in Zoho Creator

        Hello everyone, We’re excited to announce the next session in Learning Table Series 2026, where we will continue with our purpose-driven approach—focusing on how Zoho Creator’s features help solve real-world business challenges. Each session in this series
      • Set rules for Release layout

        We have now extended the support of Layout Rules to the Release layout. You can now control how information should be displayed, organized, or action to be triggered based on the conditions. This stipulates how a specific release should be carried out
      • Zoho CRM mobile updates: Filter for lookup, approval recall, multi-select lookup, and tag support for Canvas, and more

        Hello everyone, We have a few exciting updates in Zoho CRM mobile apps to share with you. Here's whats new: Filters for lookup (Android) Let's say you have a lookup field called "Contact Name." When you tap on it, you'd normally see every single contact
      • Add Support to Upload Inventory Items with Categories or Enable Separate Upload for Inventory Categories

        Currently, Zoho Inventory does not support uploading new items along with their parent and sub inventory categories using the item import feature. This creates challenges for businesses with structured inventory hierarchies when trying to upload items
      • Marketing Tip #31: Increase order value with bundle discounts

        Flat discounts can attract buyers, but they also reduce your margins. A smarter approach is to offer bundle discounts, encouraging customers to buy related products together at a slightly lower combined price. Bundles increase the average order value,
      • Automation of CRM Items to FSM Work Order (Parts Section)

        Hello FSM Team, We would like to inquire about the possibility of automating the transfer of item details from CRM to FSM Work Orders (Parts section), specifically for LPO WO Job type. Currently, in CRM, we have detailed item information including: 1.
      • Build a Legacy of Support with Zoho Desk

        Hi everyone, World Heritage Day, also known by the name International Day for Monuments and Sites, is a moment to celebrate the stories, culture, and history preserved in the monuments, landscapes, and heritage around us. At Zoho Desk, heritage is not
      • Remove horizontal scroll bar

        Is there any way to remove or hide the horizontal scroll bars on the iframe reports? I removed columns, but it still stays there.
      • Creating packages according to actual shipping processes

        Hi community. I would like to ask a question to see if there's a better method or workflow for the creation of packages in Zoho Inventory. There is a little confusion in some of Zoho's language relating to the use of term Packing Slip when connected to
      • Add Product Category to the filed mapping between Zoho Books and Zoho CRM

        Currently there is no way of mapping the Product Category field in Zoho Books to Zoho CRM when using the Zoho Books Sync to CRM feature, which means CRM users are unable to filter, sort or access products by Category. Adding the Product Category to the
      • Zoho Books | Product updates | April 2026

        Hello users, Welcome to our April 2026 product updates roundup! Highlights include profit margin for sales transactions, insights in reports, recording deposits from undeposited funds in banking, and faster production workflows with improved assembly
      • Sync Attachments in Comments from Zoho Desk to Zoho Projects

        Hello Zoho Desk Team, We hope you're doing well. We are actively using the Zoho Desk–Zoho Projects integration, especially for reporting and managing bugs/issues between support and development teams. Current Limitation: After creating a bugs/issues via
      • Automated Multi-Subsidiary Consolidation Engine in Zoho Books

        For organizations managing multiple subsidiaries across different geographies or business units, consolidation is a quarterly/annual nightmare. Zoho Books lacks native consolidation tools, forcing companies to export data, manipulate it in Excel, and
      • Calls where the local audio is shared, have echo

        When another user is sharing their screen with audio, I get echo from my own voice. We tested this with multiple users, with different audio setups, and there's no obvious way to fix it. Is this a bug you could look into, or are we missing something?
      • SalesIQ Tip: Handle Multilingual Chats Without Switching Tools

        When you're chatting with visitors from different regions, language is always a barrier. It slows things down, breaks the flow, and makes conversations feel disjointed, for both you and your customer. So, how does Zoho SalesIQ make this better? SalesIQ
      • Backorder quantity change

        New Purchase Order × Almost there, but... Quantity of items in this purchase order is greater than the quantity that can be backordered from that sales order. Why can't I change the quantity of a backorder purchase? It looks like a normal order form and I would like to use it as one because I increased the amount and added some items. 
      • Mail bounces due to bad reputation

        Good evening. I'm seeing these errors from both hotmail/outlook and yahoo, as well as hard bounce from Virgin Media and talktalk for some time now. Bounce category: Connection issues Reason: uncategorized-bounce Message: 4.7.650 The mail server [136.143.188.237]
      • Kaizen #240 - Deal Notes Sentiment Analysis with Zia Assistant API, Workflow, Deluge in Zoho CRM

        Hello all! Welcome back to a fresh Kaizen week. In this post, we will explore how to detect negative sentiment in notes added to a deal in Zoho CRM using the Zia Assistant API with Workflow and Custom Functions. Introduction Sales teams capture every
      • Option for - CSV Export from Pipeline Deals by Stage (Including Products, Companies, and Contacts)

        I would like to know when we will be able to export a simple CSV file from pipeline deals, with the option to select a specific stage within the pipeline. This export should include data for products, companies, and contacts, all in a single view. For
      • Graph style changed in Zoho Sheets

        I've been working on a profit sheet. The grouped bar chart has changed from the last time I used it to now. It used to show where the bars started at 0. When I put in a negative number, it went negative past the zero (which is what I want) for only that
      • Avec le Sandbox dans Zoho Sign, expérimentez vos workflows de signature en toute sécurité

        Le changement fait partie intégrante de tout workflow. Un processus de signature implique souvent plusieurs organisations, différentes étapes de validation et de signature, des exigences de conformité réglementaire, ainsi que plusieurs applications intégrées.
      • ZohoDeskのCloudFrontにおけるSEO課題について

        ZohoDeskにてサポートサイトを立ち上げました。 少し複雑な立ち上げ方をしているため、もしご経験のある方がおりましたらぜひご教授いただきたいと思っています。 複雑な状態のため背景含めてご説明いたします。 ●背景 ZohoDeskのデフォルトドメイン(xxxxx.zohodesk.com)をオリジナルドメイン(support.mycompany.com)にして、ZohoDeskにてヘルプセンターを本格的に立ち上げました。 ただし、古いサーバーのURLをこのZohoDeskの新サーバーにリダイレクトさせるために、CloudFrontのCDNを仲介しており、support.mycompany.comのオリジナルドメインの実態はCloudFrontに紐づいている状態となっております。
      • 【参加受付開始】Zoho ユーザー交流会、東名阪3都市で開催|事例×AIセッションでリアルなZoho 活用を学びましょう(参加無料)

        ユーザーの皆さんこんにちは。Zoho の中野です。 6月に東京、大阪、名古屋の3都市で Zoho ユーザー交流会 NEXUSを開催します! 本日より参加登録受付開始しましたので、ぜひ以下よりご登録ください。 3都市それぞれ異なるユーザー事例をご用意。またAIセッション(Zia やZoho MCPの解説)も予定しています。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 🟠 Zoho ユーザー交流会 NEXUS 2026 📍 大阪|6月4日(木)18:00〜20:45
      • 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
      • Project's Activity Stream Needs to Include Task Comments

        When inside a Project, and clicking Dashboard -> Activity Stream, we see all Comments but we don't see any Comments posted within Tasks.  We need to see Task Comments as they are equally important when viewing an Activity Stream so that we don't have
      • What is the maximum length/size of a presentation on Apple TV?

        Hello, I have a presentation here that I regularly show on Apple TV. It’s always the same presentation, which keeps getting longer and more extensive over time. Almost every slide contains a graphic or photo that takes up the entire slide. That means:
      • Portal Module Permissions

        I am setting up a portal for some of my clients. Part of that process is for them to add new contacts and new accounts and generate a quote for those new contacts and accounts. I have tried to add the accounts module so they can add new accounts when
      • No Way to create SFTP Connection in Zoho Flow. Can do this in Zoho CRM but not In Zoho Flow

        Zoho Deluge has an integration task for SFTP but there is no way to create a connection in Zoho Flow so you can't execute and SFTP step in a custom function in Zoho Flow because it requires a connection for SFTP step :(
      • sub items or sub totals

        i need to make invoices that show detailed list of items but not individual prices how could i make an item that would group other items, this parent item having as rate the sum of the sub tiems rates ? alternatively without creating a parent items i would like to have a subtotal that would hide the single items indivdual prices ? eg  eggs                  4 butter                  250 g flour                       250 g sugar                  250 g subtotal ( or parent item)   cake                  
      • Next Page