Approve or deny appointments based on criteria

Approve or deny appointments based on criteria

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!!!


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: 


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:

  • Single line field format: ${trigger.customer_more_info.fieldname}

  • Multiple line field format: ${trigger.customer_more_info.get("fieldname")}

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.

More details on send mail task: Send Mail Task

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.


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 or

    Zoho Developer Community

                              Zoho Desk Resources

                              • Desk Community Learning Series

                              • Digest

                              • Functions

                              • Meetups

                              • Kbase

                              • Resources

                              • Glossary

                              • Desk Marketplace

                              • MVP Corner

                              • Word of the Day

                                  Zoho Marketing Automation
                                          • Sticky Posts

                                          • Approve or deny appointments based on criteria

                                            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

                                          Manage your brands on social media

                                                Zoho TeamInbox Resources

                                                  Zoho DataPrep Resources

                                                    Zoho CRM Plus Resources

                                                      Zoho Books Resources

                                                        Zoho Subscriptions Resources

                                                          Zoho Projects Resources

                                                            Zoho Sprints Resources

                                                              Qntrl Resources

                                                                Zoho Creator Resources

                                                                  Zoho WorkDrive Resources

                                                                    Zoho Campaigns Resources

                                                                      Zoho CRM Resources

                                                                      • CRM Community Learning Series

                                                                        CRM Community Learning Series

                                                                      • Tips


                                                                      • Functions


                                                                      • Meetups


                                                                      • Kbase


                                                                      • Resources


                                                                      • Digest


                                                                      • CRM Marketplace

                                                                        CRM Marketplace

                                                                      • MVP Corner

                                                                        MVP Corner



                                                                          Design. Discuss. Deliver.

                                                                          Create visually engaging stories with Zoho Show.

                                                                          Get Started Now