Hey, community members!
Have you ever wondered how to automatically approve or deny appointments?
While we're still working on building that feature, we've got an alternative method to cancel appointments if they don't meet your specific criteria.
Let me share a recent client request as an example: Our customer has two types of services that are similar: One is for grown-ups and the other is for children. However, often adults mistakenly book these services without realizing that they are not intended for them. This results in unnecessary confusion for our customers, as they have to contact those who accidentally booked appointments and reschedule them, causing a significant amount of administrative work.
Here's how we helped our customer: We added a criteria field to the booking page (e.g., "What is your age?") Then, we automatically cancel appointments where the input age is greater than 15 and we'll even notify the grown-up client that their appointment has been canceled and guide them to book the appropriate service.
To make this happen, you'll need Zoho Bookings and the Zoho Flow Standard Plan.
Here's a simplified breakdown of the process in three steps:
Zoho Bookings will collect the criteria data and pass it to Zoho Flow.
In Zoho Flow, we'll configure a workflow to verify the validity of the data.
If the data is invalid, Zoho Flow will trigger a cancellation request to Zoho Bookings, resulting in the appointment being canceled.
Don't forget these additional steps: Edit the booking confirmation page and notification email to proactively inform customers that their booking maybe subject to cancellation.
Let's dive into the details together!!!
STEP 1: TO BE FOLLOWED IN ZOHO BOOKINGS APPLICATION:
1. Create a mandatory field in Zoho Bookings Forms.
A. For service booking form: Add Field
B. For workspace booking form: Add Field
NOTE: Workspace-level settings apply to group and resource bookings, while for One-on-One bookings, you will need to make the necessary changes within the specific One-on-One service settings.
At the end of step 1, let's say we have created a mandatory field called "What is your age?". Now the customers on the booking page will have to provide their age to book an appointment.
Additional Step:
Canceling an appointment without the customer's knowledge might affect the customer experience. Therefore, we should acknowledge the customers in every possible way.
Here are some tips:
A. We can use the 'Custom Redirection' feature to redirect customers to a custom page after they book an appointment, instead of the default booking confirmation page.
Here is how to change booking confirmation page: Booking Confirmation Page
Here is the sample custom page:

B. By using the "Terms and Conditions" check box, you can include the following message in the box: "This service is specifically designed for children under the age of 15. Bookings made by individuals above the age of 15 may be subject to cancellation". Customers will then need to check the box to confirm their agreement before completing their bookings, ensuring that they are aware of this policy.
More details:
STEP 2: TO BE FOLLOWED IN ZOHO FLOW APPLICATION
A: Log in and search the template
Sign in to Zoho Flow application and create a new flow using the create flow option.
Select App > search for Zoho Bookings in the search bar.
Select the "Appointment Booked" trigger.
Select "Connection" and "Variable" > Done.
How to create a flow in Zoho Flow: Create a flow from scratch
How to create connection in Zoho Flow application: Create a Connection
At the end of step A, we have created a new flow including Zoho Bookings application.
B: Set Variable
In the Logic option > Flow Control > Set Variable > Edit the variable
Name the variable and in the value provide the input in following format "${trigger.customer_more_info.get("What is your age?")} " > Click on done.
NOTE: In Step 1, we created a multi-line field named "What is your age?" If you have instead created a single-line field without spaces (e.g., "Age?") on the booking page, the format for the field would be as follows:
At the end of step B, we are fetching the output of the "Age" field from the Zoho Bookings form.
C: Create Condition
In the Logic option > Flow Control > Decision.
In the condition 1, configure as Set Variable(Age) > is not null.
At the end of step C, we set up conditions to ensure that all bookings made through the Zoho Bookings application meet the requirements specified in the above conditions.
D: Custom Function
In the Logic option > Custom Functions > Create Function.
Configure function name, return type and input parameter.
Details on custom function: Custom Function
Reference below:
Below is the sample code which you can have for reference. You can configure and modify the code according to your specific requirements.

Code Explanation:
Line 1: To pass the input data below to the code
Age: This is used to verify and analyze the customer's input.
Customer Email: This is required to send an email notification to the customer in the event of an appointment cancellation.
Booking ID: This serves the purpose of identifying the specific booking that needs to be canceled using its unique booking ID.
Line 3: We are implementing an "if condition" to verify the customer's input. In this case, we will check if the entered age is greater than 15. If it meets this condition, the following loop will be executed.
Line 5 - 8: To update appointments, we are utilizing 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). In cases where the criteria are not met and an appointment needs to be canceled, we will pass the action field as "cancel".
Line 9 - 14: We are using invokeURL task for API calls. To know more about invokeURL task please refer to the following document: InvokeURL task for API calls Line 16 - 21: We utilize the sendmail task to send an email to the customer when their appointment is canceled. Additionally, the Zoho Bookings application automatically sends a cancellation email to the customer in such cases. Therefore, you have the option to either use the sendmail task or rely on the default notification system to inform the customer about the cancellation of their booking.
This is what the final flow will look like:

Here is the demo video: In this demo video, we have showcased the behaviour of our setup configuration for different inputs from customers. One input satisfies the configured condition, while the other input does not meet the configured condition.
CONCLUSION:
In the preceding discussion, we have outlined a method for automatic appointment cancellation. You can use this document as a reference to explore the various possibilities that suit your needs.
In the upcoming posts, we will explore various scenarios and methods for updating the appointment status. Furthermore, we have covered the process of canceling an appointment after it has been booked.If you are wondering whether there is a way to verify customer inputs before booking an appointment, the answer is yes. We will delve into that topic in the next series.
As the above configuration may differ based on individual business requirements, we have provided a generic example for reference. If you have any questions or need assistance with configuration to align with your specific business needs, please email us at
hello@zohobookings.com or
support@zohobookings.com.
Recent Topics
Custom image for each contact using merge tag
Hi, I'm wondering if it's possible to set up an email campaign to display a different image for each contact using a custom field for the image url. I tried inserting custom html: <img src='$[UD:APP_IMAGE_URL||]$'/> but the editor seemed to reject this and did not actually add anything to the email template. Has anyone got any ideas? cheers, Jeremy
Comment Reactions like a Thumbs Up
Can we please have the ability to emoji react on comments or at the very least, thumbs a comment up? Literally every other project management system out there can support this and it is very much needed to just acknowledge a comment instead of completely
Zoho Mail Search Engine Sucks
Hello There! I really like all the features of Zoho Mail and I believe is way better than Gmail except for the Search Function. I believe Zoho Mail has a very poor search function, if you misspelled a word in the search box, Zoho Mail won't display any
Allow Subtasks and Task Lists to have their own Layout
I'd like to have the ability for subtasks and task lists to have their own layout. A subtask for us doesn't require all the fields that a parent task has. The subtask seems cluttered with all the extra fields. Within a project Task List had different purposes. I'd like the task layout to be different for some task lists.
How to update Customers in Zoho Books through Zoho Flow?
Updating customers in Zoho Flow using a "update customer" action is deleting contact persons in Zoho Books.
Conect chat of salesiq with zoho cliq
Is there any way to answer from zoho cliq the chat of salesiq initiated by customers?
How to transfer credit between customers?
Hi All, We have a slightly odd situation. It happens that we have two separate customers that are related to each other personally. One customer has an amount of credit, and would like to use that credit to pay the *other* customers invoice. How would
Zoho Books Reports: Basic report with total items sold and Cost of goods sold
How can books show a report with Item Name || Qty Sold || Total Revenue || Total Cost of Goods Sold || Margin I need to factor in also invoices that have been credited where customers returned good. This seems like such a basic report, I'm sure I'm missing
The amount entered is more than the balance due for the selected bills."
Hi Team i am trying to record payments for vendors using API and getting this error in response as { "code": 28011, "message": "The amount entered is more than the balance due for the selected bills." } JSON is prepared according to Documentation and
VBA handling named ranges
In VBA I'm able to work with a single cell named range. E.g. Set Jr = Range ("Year").Value. Also other options are working fine, like Range("Year").Address shows $L$3. However a named range refering to multiple cells is not working for me. Eg. tbl_Test
Kaizen #176 - Optimizing the Use of Record ID Variables in Zoho CRM Queries
Hello everyone! Welcome to another week of Kaizen! Since the release of Queries, we have covered Handling Query Variables in Zoho CRM, Serialization and Schema Management, and Leveraging the 'crmAPIResponse' object in Queries in previous posts. Today,
Unbilled Items Report?
Hello! Is there any way to display a list of items that remain unbilled, without creating an invoice for each customer to see if the unbilled items box is displayed? ;-) Ben
Consolidation of Multi currency
Would like to discuss on the possibility of consolidating the ZOHO companies
Landed Cost Allocation / Custom Duty manual data entry
My client is an import business. They must manually enter the duty for each item with landed cost allocation in Bill. This is because customs duties cannot be allocated based on Quantity, Value, Weight, and Dimensions. Manual data entry is highly time-consuming
Territories Just Don't Work
I have been on chat and screenshare support for the past 3 days and am getting no resolution so hopefully, someone here can help me. I am the Super Admin of my organization. We publish books globally. I want to break down the books into territories so
Negative Opening Balance
How can I add Negative Opening balance - meaning a credit balance to a Customer or a debit balance to a vendor? If I go thru Sales-->Customers, and if the opening balance is Rs. 1000 (credit balance), it does not allow me to enter a "minus" sign or mention
Single-Line Invoicing from Sales Order Despite Multiple SKUs Shipped
We deal mostly with Government Tenders And Lets say we got a tender that needs 125 XYZ Laptops Then we found 95 Laptops with a different SKUs and 30 Laptops with different SKUs We talk with the IT department of the government company and they approve
📣📣 Zoho Bookings Schedulathon 2025 is here!
Hey Zoho Bookings fam, We're excited to invite you to our first-ever hackathon: Yes, Zoho Bookings Schedulathon 2025 is live now. This is a virtual event and you can participate anywhere from the world. Businesses should be able to set up meetings from
I want to send out a new newsletter each month
Without rebuilding a whole journey is there a way to create a new newsletter that is sent to an existing journey monthly?
Reinstalling Workdrive Truesync client
Hi, I attempted to update to the beta version of TrueSync, but it was unstable and kept crashing, so I need to revert to the stable version. How do I properly reinstall TrueSync on a Windows PC? I couldn't install the 3.15.x version directly over the
Evaluating Creator; yesterday fine; today connection times out
Yesterday I spent hours creating a new app, and it worked fine. Today I cannot access creator.zoho.com. Is this common? I'm in the evaluation mode, but I'm thinking I'm going to keep looking. It worked from my home computer, and now I'm checking it from my work computer. My work computer always works just fine, so I shouldn't htink there would be special settings or anything. If there are, how to find out what they could be? Using Chrome on Windows XP The error I get is: The webpage at https://creator.zoho.com
Pivot Chart seems to show "old" data - how do I make it update?
I wonder how to make a Pivot Chart "update" its data contents. Here is the background: I need to report a subset of data that is so complicated that it is easier to make a calculation and put the result in a "reporting form", and then display the data from that form. So, I get data from the "original form" GRANTS, make some calculations and put the result in the "reporting form" PERIOD. Now I can watch the result in a list called LIST, which works fine. The list LIST shows that form PERIOD contains
Upcoming Changes to LinkedIn Parsing in Resume Extractor
Starting 31 July 2025, the Zoho Recruit Resume Extractor will no longer support direct parsing of candidate data from LinkedIn profiles. Why Is This Change Needed? In accordance with LinkedIn’s platform policies, extracting profile data through browser
Is there a way to map complex product variants from Magento into Zoho CRM without losing SKU-level details?
Hi everyone, I’m working on a Magento-based store that uses highly detailed product variants, and I’m struggling to map them into Zoho CRM without losing SKU-level details. The problem is that variants often collapse into single entries, which affects
how to create view in leads module to that will show all leads + converted leads?
is it possible to make custom view that combine all leads + converted leads? how to do that
Deal Stage component/widget/whatever it is... event
Deal Stages I am trying to access the event and value of this component. I can do it by changing the Stage field but users can also change a Deal Stage via this component and I need to be able to capture both values. Clicking on 'Verbal' for instance,
Reply and react to comments
Hi everyone! We're excited to bring to you a couple of new features that'll make your sprint process simpler. A cloud application brings with it an array of social media features that can be efficiently used in your organizational setup. As an agile scrum
Announcing Early Access to "Zoho CRM for Everyone" — A new and exciting update to Zoho CRM
Zoho CRM For Everyone is now officially available to all customers, and the Early Access Program has come to a close. We want to extend our sincere thanks to everyone who participated in the program. Your valuable feedback played a key role in shaping
Avalara Sales Tax integration - AVATAX
Just wondering if anyone else is having troubles with this integration? Seems as though Avalara changed their billing process, unbeknownst to Zoho, and now ALL transactions are counted by Avalara, not just transactions in a taxable jurisdiction. This caused a huge price adjustment billed to us by Avalara within a month of us signing up. And Avalara is not cheap to begin with! Avalara has been great in waiving that increase, but there seems to be no fix. Zoho is aware of the problem, but slow
Invalid value passed for description
Dear Sir, When I am entering the purchase bill , the following message showing "Invalid value passed for description" what should I do ? I am attaching screenshot. With Regards, Harish harish@cracku.in 7978841636
Zoho Creator - 2024 Release Projection 1
Hello everyone! As we enter 2024, we'd like to extend our warmest wishes for success and prosperity. Your fantastic response to our Product Roadmap page last year has been incredibly motivating. Continuing on this path, we're excited to share a glimpse
Automation Assistance for Zoho Form Integration and Workflow
Hi, We are currently using a Zoho Form to send out our Global Credit Application and would like to automate the process further. Specifically, we’d like the ABN number submitted through the form to automatically populate the GST/VAT Number field in Zoho
COQL does not return queryable value if the result set is empty
See linked video for running code illustration of the problem: https://workdrive.zohoexternal.com/external/d49bb40033b43b288d56fdf843095b7c65b28391d3ec5d09c854f416d853003d Moderation update: We are appending the comment that was removed, to add context
Zoho CRMでの商談の管理のしかたについて初歩的な質問です。
先月からZoho CRMを試験的に導入して運用しています。 商談の管理(運用?)の仕方について教えてください。 商談の数が増えてくると、ダッシュボードの「ステージ別進捗状況」にどんどん過去の商談が蓄積されてくると思うのですが、 現在動きのあるものを中心に確認したくなる気がします。 そのあたりについては、どのように運用が一般的なのでしょうか? アドバイスいただけるととてもありがたいです。 よろしくお願いします。
Composite Items & Purchase Orders
The Composite Item is great way to bundle different products and services into a single line and sell it as a single line item in Estimates, Sales Orders and Invoices. However, on the other side - i,e,. Purchasing - this item creates quite a bit of a
using custom function is it possible to update the created by field in Zoho Crm custom module
using custom function is it possible to update the created by field in Zoho Crm custom module
Slow Sloww Slowwww Responses
Good day, Has anyone been experiencing slow responses from support? Since Thursday I migrated my Whats app to Sales Iq and I had to synch with Social to get the otp they were sending. Apparently What's app can't be automatically added so I reached out
You have exceeded the maximum number of attempts for this action. Please retry doing the same in 30 minutes.
When one of Zoho Books user tries to select a vendor, recording a new bill, these message appears: You have exceeded the maximum number of attempts for this action. Please retry doing the same in 30 minutes. Other user, at the same time, but different
Enable Conversation Context Retention for SalesIQ Answer Bots
Hello Zoho SalesIQ Team, We hope you are doing well. We have noticed that SalesIQ bots currently fail to maintain conversation context in Hebrew. For example, when we follow up on a previous answer or ask for clarification in Hebrew, the bot either provides
Automatic Hebrew Small Talk Setup Without Duplicate Term Errors & Manual Configuration
Dear Zoho SalesIQ Team, Greetings, We would like to request an enhancement to the Small Talk feature in Zoho SalesIQ, specifically for Hebrew language support. Current Challenge: When setting up Small Talk for Hebrew, we encounter multiple issues: Simple
Next Page