Bidirectional sync between Zoho Bookings and Zoho CRM - Part 2

Bidirectional sync between Zoho Bookings and Zoho CRM - Part 2

Hey community members,

Welcome again!

This post continues our discussion of the bidirectional sync between Zoho Bookings and Zoho CRM, focusing on how to reschedule appointments in Zoho Bookings from Zoho CRM. If you've arrived at this community post directly, we recommend checking out Part 1 of this topic for a better understanding. You can access Part 1 through the following link: Bidirectional sync between Zoho Bookings and Zoho CRM - Part 1

How we're approaching this reschedule action:

Whenever a meeting initially scheduled through the Zoho Bookings application is rescheduled either within the Meetings module or through the CRM calendar, the changes are recorded and the corresponding appointment within Zoho Bookings is also rescheduled.


 
Create a function for rescheduling appointments

Complete these steps in Zoho CRM.

Step 1: Creating connections

You don't need to create a separate connection for the reschedule action. You can utilize the same connection name that we established in Part 1 of the Zoho Bookings - Zoho CRM bidirectional sync.

Step 2: Creating functions

Configuring a function that reschedules appointments differs slightly from the functions we discussed in Part 1 of the Zoho Bookings - Zoho CRM bidirectional sync.

Note: Here, we'll fetch the time zone in which the customer scheduled the appointment so that when we reschedule the booking, it will be rescheduled within the same time zone the customer initially chose.

Here are the steps:
      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.

Reference


More details: Functions

      5. Next, configure the function's arguments. For the reschedule function, we'll have to pass two arguments: bookingID
           as a string, and from as a date.
           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.

        d. Click the +Add button to add a second argument.
        e. Set the Parameter Name as from and its type as date.


Here, we're using the reschedule appointment API. The term "from" specifically denotes the appointment's start time. In the reschedule API, the booking ID is a required parameter, and we must provide either the staff ID or the start time. Given that we're rescheduling based on the start time, we'll pass the start time as an argument and use "from" as the reference point.


Please configure the following code on the Deluge script page. 




Here's an explanation of the code used for the reschedule function, split into three parts for purposes of clarity:

Lines 1-10 serve to invoke the "get appointment" API to retrieve the relevant booking ID and obtain the associated details. The purpose behind fetching this booking data is to access the actual booking start time and the time zone in which the customer initially scheduled the appointment using the Zoho Bookings application. This information is essential for comparing it with the rescheduled date and time.
  • Line 1: Based on the Zoho Bookings account's data center, we'll set up the API endpoint URL configuration. More
                 details: Domain-specific API URLs
  • Line 3: To obtain appointment details, we utilize the GET Appointment API. In this API, the booking ID is a mandatory
                field, so we retrieve the booking ID from the Meetings module and subsequently pass it into the code to
                retrieve the corresponding booking details.
  • Lines 4-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
In lines 11-13, we execute booking data retrieval and date-time format conversion operations.
  • Line 11: Here, we're fetching the booking's exact start time as scheduled by the customer.
  • Line 12: Here, we're fetching the time zone in which the customer scheduled the appointment.
  • Line 13: We perform the date-time format conversion to ensure compatibility with the reschedule appointment API. This API requires the appointment's start time to be in the format dd-MMM-yyyy HH:mm:ss. We retrieve the start time from the Zoho CRM Meetings module, match it to your CRM application's date and time format, and convert it to the format Zoho Bookings' reschedule appointment API supports.
Lines 14-27 serve to perform comparison and rescheduling operations.
  • Line 14: Here, we're implementing an "if" condition to compare the actual booking start time (bookingstime) and the rescheduled time (time). We do this in order to execute the reschedule API function only if there is any change in the appointment's start date and time. If we don't implement the "if" condition to compare both inputs, the reschedule API function would enter a loop, continuously executing and potentially exceeding the API count limit.
  • Lines 15-27: We use the reschedule appointment API, which requires the booking ID as a mandatory parameter, along with either the staff ID or start time. In this case, as we're rescheduling appointments based on the start time, we provide both the booking ID and the start time. The reschedule appointment API functions similarly to the APIs we've previously discussed, such as the cancel, mark as completed, and no-show APIs.
By reaching the end of these final steps, we've successfully created a function that executes rescheduling actions.

Now, let's proceed with creating a workflow and linking the reschedule function to it. This enables us to automate the syncing of appointment rescheduling actions from Zoho CRM to Zoho Bookings.

Creating a workflow

Create a workflow that handles appointment rescheduling in Zoho Bookings whenever a corresponding meeting is rescheduled within the Zoho CRM application

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 the rule name and description as required.

Reference:



Part 2: Specifying the rule trigger

        1. Record Action > Edit. 

        
      2. Enable the Specific field(s) gets modified setting and configure it per the screenshot below.

This serves to ensure that the workflow is executed only when the "From" field of the meeting is edited.


      3. Configure condition > All Meetings.


      4.Instant Actions > Function.


      5. Click the New Function button.


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


More details: Specify rule triggers

Part 3: Argument mapping

        1. Press # to choose an argument value.

2. Select Meetings under Module and configure the field as "BookingId".
3. Select Meetings under Module and configure the field as "From".

        4. Click the Save and Associate button.

Reference:


Below is the final flow of the reschedule appointment workflow:



By the end of this process, we will have created a workflow that automatically executes when the "From" field in the Zoho CRM Meetings module is edited with a new date and time.  As a result, this workflow will also reschedule the associated bookings for that meeting to the new date and time in Zoho Bookings.

Conclusion

We've arrived at the end of the community post. As mentioned in Part 1 of the Zoho Bookings—Zoho CRM bidirectional sync community post, with all of these configurations in place, you'll be able to book, cancel, reschedule, and update the status of appointments in Zoho Bookings directly from your Zoho CRM application. Which will make your appointment management easier.

If you have any questions or need assistance with your configuration, please email us at hello@zohobookings.com or support@zohobookings.com



        • Recent Topics

        • Staff rules

          Hi! Do you people know what are the default staff rules when a new booking is created? We have two staff members in my team (me as the admin, and my employee). As we share the same services, I'm wondering how Zoho will pick the staff for new apointments.
        • Comment Templates

          Is it possible to add a template option for comments? We have some agents in the process who's responses require a pre-formatted layout. It would be incredibly handy to have a template for them where they can insert the template and then add their responses
        • [ZohoDesk] Improve Status View with a new editeble kanban view

          A kanban view with more information about the ticket and the contact who created the ticket would be valueble. I would like to edit the fields with the ones i like to see at one glance. Like in CRM where you can edit the canvas view, i would like to edit
        • Adding Markdown text using Zoho Desk API into the Knowledge Base

          Hi Zoho Community members, We currently maintain the documentation of out company in its website. This documentation is written in markdown text format and we would like to add it in Zoho Knowledge Base. Do you know if there is REST API functionality
        • An Exclusive Session for Zoho Desk Users: AI in Zoho Desk

          A Zoho Community Learning Initiative Hello everyone! This is an announcement for Zoho Desk users and anyone exploring Zoho Desk. With every nook and corner buzzing, "AI's here, AI's there," it's the right time for us to take a closer look at how the AI
        • Shared values: From classroom lessons to teaching moments in customer service

          While the world observes Teachers’ Day on October 5, in India, we celebrate a month earlier, on September 5, to mark the birth anniversary of Dr. Sarvepalli Radhakrishnan, a great teacher, renowned scholar, educationist, and advocate for empowerment.
        • Export to excel stored amounts as text instead of numbers or accounting

          Good Afternoon, We have a quarterly billing report that we generate from our Requests. It exports to excel. However if we need to add a formula (something as simple as a sum of the column), it doesn't read the dollar amounts because the export stores
        • Create a list of customers who participated in specific Zoho Backstage events and send them an email via Zoho CRM

          How to create a list of customers who participated in specific Zoho Backstage events and send them an email via Zoho CRM? I was able to do a view in CRM based on customer that registered to an event, but I don't seems to be able to include the filter
        • Zoho Desk blank page

          1. Click Access zoho desk on https://www.zoho.com/desk/ 2. It redirects to https://desk.zoho.com/agent?action=CreatePortal and the page is blank. Edge browser Version 131.0.2903.112 (Official build) (arm64) on MacOS
        • Clearing Fields using MACROS?

          How would I go about clearing a follow-up field date from my deals? Currently I cannot set the new value as an empty box.
        • I hate the new user UI with the bar on the left

          How can I reverse this?
        • Constant color of a legend value

          It would be nice if we can set a constant color/pattern to a value when creating a chart. We would often use the same value in different graph options and I always have to copy the color that we've set to a certain value from a previous graph to make
        • Question regarding import of previous deals...

          Good afternoon, I'm working on importing some older deal records from an external sheet into the CRM; however, when I manually click "Add New Deal" and enter the pertinent information, the deal isn't appearing when I look at the "Deals" bar on the account's
        • Client Script also planned for Zoho Desk?

          Hello there, I modified something in Zoho CRM the other day and was amazed at the possibilities offered by the "Client Script" feature in conjunction with the ZDK. You can lock any fields on the screen, edit them, you can react to various events (field
        • One person/cell phone to manage multiple accounts

          Hi. I have a personal Free account to keep my own domain/emails. Now I need to create a Business account to my company's own domain, but I have only one mobile phone number I use to everything. How do I do to manage this? Can I manage a Free domain and
        • Tracking KPIs, Goals etc in People

          How are Zoho People users tracking employee targets in People? For example, my marketing assistant has a target of "Collect 10 new customer testimonials every month". I want to record attainment for this target on a monthly basis, then add it to their
        • Zoho Desk: Ticket Owner Agents vs Teams

          Hi Zoho, We would like to explore the possibility of hiding the ‘Agents’ section within the Ticket Owner dropdown, so that we can fully utilise the ‘Teams’ dropdown when assigning tickets. This request comes from the fact that only certain agents and
        • CRM limit reached: only 2 subforms can be created

          we recently stumbled upon a limit of 2 subforms per module. while we found a workaround on this occasion, only 2 subforms can be quite limiting in an enterprise setting. @Ishwarya SG I've read about imminent increase of other components (e.
        • Can not Use Attachment Button on Android Widget

          this always pops up when I touch the attach button on android widget. going to settings, there is no storage permission to be enabled. if I open the app, and access the attach feature there, I can access my storage and upload normally.
        • Zoho Notebook Sync problem

          I'm facing a problem with syncing of notebook on android app. It's not syncing. Sometimes it syncs after a day or two.  I created some notes on web notebook but it's not syncing on mobile app. Please help!!!!
        • Custom Fonts in Zoho CRM Template Builder

          Hi, I am currently creating a new template for our quotes using the Zoho CRM template builder. However, I noticed that there is no option to add custom fonts to the template builder. It would greatly enhance the flexibility and branding capabilities if
        • Announcing new features in Trident for Mac (1.24.0)

          Hello everyone! Trident for macOS (v.1.24.0) is here with interesting features and thoughtful enhancements to redefine the way you plan and manage your calendar events. Here's a quick look at what's new. Create calendar events from emails. In addition
        • 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
        • Vendor Master Enhancements for Faster Purchase Entry

          I’d like to suggest a few features that will improve accuracy and speed during purchase voucher entry: Automated Item Tax Preference in Vendor Master Add an option to define item tax preference in the vendor master. Once set, this preference should automatically
        • Mass Mail Statistics - Number of unsent emails

          How do I find out which emails were not sent?
        • Button to add product to cart

          Is there a way to have a button on a page, that when clicked, will add Qty 1 of a product to the cart?
        • Est-il possible d'annuler l'envoi d'un mail automatique ?

          Bonjour, Lorsque je refuse un candidat, il reçois un mail dans les 24h pour l'informer que sa candidature n'est pas retenue. J'ai rejeté un candidat par erreur. Savez-vous s'il possible d'annuler l'envoi de ce mail ? Merci d'avance pour votre aide.
        • Can't change form's original name in URL

          Hi all, I have been duplicating + editing forms for jobs regarding the same department to maintain formatting + styling. The issue I've not run into is because I've duplicated it from an existing form, the URL doesn't seem to want to update with the new
        • New in Cadences: Option to Resume or Restart follow-ups when re-enrolling records into a Cadence, and specify custom un-enrollment criteria

          Managing follow-ups effectively involves understanding the appropriate timing for reaching out, as well as knowing when to take a break and resume later, or deciding if it's necessary to start the follow-up process anew. With two significant enhancements
        • embed a form in an email

          Hello, how to embed a form in an email that populates Zoho CRM cases? I would like to send emails to a selected audience offering something. In the same email the recipients - if interested - instead of replying to can fill in a Zoho CRM form that creates
        • Zoho Bookings - Reserve with Google

          Does Zoho Bookings plan to to integrate with Reserve with Google?
        • How to add Zoho demo site page designs to my Zoho Sites website

          Hi, I would like to add the design from the following demo URLs into my current Zoho website. I have already created two new pages on my site, named “Menu2” and “Menu3.” For the “Menu2” page, I want to use the design from this demo: https://naturestjuice-demo.zohosites.com/menu
        • Digest Août - Un résumé de ce qui s'est passé le mois dernier sur Community

          Bonjour chère communauté ! Voici le résumé tant attendu de tout ce qui a marqué Zoho le mois dernier : contenus utiles, échanges inspirants et moments forts. 🎉 Découvrez Zoho Backstage 3.0 : une version repensée pour offrir encore plus de flexibilité,
        • Zoho Books - Include Payment Terms as a Custom View filter

          It would be great if you could created a custom view based on Payment Terms. This would be really handy for seeing a list of customers who have credit terms. A workaround is not required. I could do something with a creditor checkbox, but it would be
        • Global Sets for Multi-Select pick lists

          When is this feature coming to Zoho CRM? It would be very useful now we have got used to having it for the normal pick lists.
        • Text snippet

          There is a nice feature in Zoho Desk called Text Snippet. It allows you to insert a bit of text anywhere in a reply that you are typing. That would be nice to have that option in Zoho CRM as well when we compose an email. Moderation Update: We agree that
        • Kaizen #206 - Answering your Questions | Displaying Related Purchase Orders from Zoho Books in CRM Deals using Queries

          Hello everyone! We're back with another post in the Kaizen series. We're grateful for the feedback we received from all of you! One of the questions we received was "I would like to see the list of Purchase Orders in Zoho Books for a Deal in CRM." We
        • Add Analytics function for Title case (capitalising each word in a string)

          At present, you can only capitalise each word in a string in Analytics during data import. It would be really useful to be able to do this with a formula column, but there is no Title Case function.
        • How to conditionally embed an own internal widget with parameters in an html snippet?

          Hello everyone, I'm trying to create a dynamic view in a page using an HTML snippet. The goal is to display different content based on a URL parameter (input.step). I have successfully managed to conditionally display different forms using the following
        • Introducing AI-powered Assessments & Zoho's native LLM, Zia

          We’ve shipped a cleaner, faster way to create assessments in Zoho Recruit. 🚀 Instead of manually building question banks or copying old templates, you can now generate ready-to-use assessments in just a few clicks, all tailored to the role you’re hiring
        • Next Page