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

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:

  • 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.




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.

    • 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
    • Recent Topics

    • Maximum file limit in zoho people LMS

      Dear Team, I am having approximately 4.9 GB of material, including PPTs and videos for uploading in zoho people LMS course. May I know what is the maximum limit limit for the course files Thanking you, With regards, Logeswar V Executive _ Operations
    • Displaying related quotes in sales order and back

      Hi, My colleague liked to see to which sales orders, the quote has been converted. Quote shows Invoices, but not SO. Same, they would like to see the quotes in the sales order, as they can see invoices, packages, shipment, How can we achieve this ? Thank
    • Dynamically prefill ticket fields

      Hello, I am using Zoho Desk to collect tickets of our clients about orders they placed on our website. I would like to be able to prefill two tickets fields dynamically, in this case a readonly field for the order id, and a hidden field for the seller
    • Optimize your Knowledge Base for better visibility by allowing search engine crawling and indexing

      All you need to know about no-follow and no-index in KB. What are article crawlability and indexability? Crawlability and indexability are vital for making an article visible and accessible to search engines. When a search engine crawls an article, it
    • Has anyone created a public ASAP Guide that I can check out?

      I am thinking of adding an ASAP guide to my web application, but I have noticed that the ASAP widget itself can be really slow to load sometimes. Has anyone created a public ASAP Guide that I can check to see how performant it is? I don't want to spend
    • Zoho Desk Partners with Microsoft's M365 Copilot for seamless customer service experiences

      Hello Zoho Desk users, We are happy to announce that Zoho Desk has partnered with Microsoft's M365 to empower customer service teams with enhanced capabilities and seamless experiences for agents. Microsoft announced their partnership during their keynote
    • What’s New in Zoho Analytics – September 2025

      Hello Users!! In this month’s update, we’re raising the bar across multiple touchpoints, from how you bring in data, plan and track projects to how you design and brand your dashboards. We’ve added the all-new Gantt chart for project visualization, expanded
    • Zoho MCP has no tools for Creator or 3rd Party Apps?

      I don't see a Zoho MCP community forum so putting this here. Two big problems I see: 1) Although Zoho advertises "over 950 3rd party apps" as available through their MCP, when I go to "Add Tools" there are ZERO 3rd party apps available to choose from.
    • Zoho Forms - Zoho Drive connection - Shared Drives not supported

      Hello i am stuck with Google Drive Connection There is no supported shared drives Connection is not support shared drives boolean Query Parameters - supportsAllDrives=true&supportsTeamDrives=true to activate fetch files from the shared drives. Ahat need
    • Can't create package until Bill created?

      I can't understand why we cannot create a package until a Bill is created? We are having to created draft Bills to create a package when the item is received, but we may not have received a Bill from the supplier. Also, Bill # is required, but we normally
    • Whats the Time out Limit for API Calls from Deluge?

      Hi Creator Devs, We are making API calls to third party server via Deluge. Getting this error message: Error at line : 24, The task has been terminated since the API call is taking too long to respond. Please try again after sometime. Whats the default
    • Community Digest Agosto 2025 - Todas las novedades en Español Zoho Community

      ¡Hola, Zoho Community! Agosto llega a su fin y septiembre nos trae aire fresco a la comunidad: más inteligencia con IA, actualizaciones que elevan la productividad y la recta final hacia Zoholics España 2025. Aquí tienes lo más destacado del mes para
    • Tip #3: How to change your booking page language

      Displaying your booking page in your target audience's language can greatly increase customer satisfaction. By speaking their language, you will help customers feel more comfortable scheduling with you and create a stronger connection with them. Let's
    • How can I optimize a Zoho Site page for SEO when embedding external menu or restaurant links?

      Hi everyone, I’m experimenting with building small content hubs on Zoho Sites and want to make sure I’m doing it in an SEO-friendly way. For example, I tried creating a page that highlights restaurant menu items and linked out to a resource like this:
    • Diff signature for compose new email and replies

      Hi,   How do i have different signature for replies and new emails. its inconvenient to have one large signature for replies. Usually on Outlook we have the option to keep separate signatures for new emails and for replies.
    • Zoho Website Site Speed Up & Setting

      We are experiencing slow loading speeds on our Zoho website and would like assistance in optimizing its performance. Kindly review the site and suggest or implement necessary improvements to enhance speed, especially related to: > Caching mechanisms >
    • Clickjacking: Zoho Vault's Response

      Issue: Password manager browser extensions are found to be vulnerable to clickjacking security vulnerabilities that could allow attackers to steal account credentials, TFA codes, and card details under certain conditions. Reported by: Marek Toth, Independent
    • No option for pick up in Zoho Books / Inventory but yes on commerce

      Is it planned to release soon on books/inventory?
    • Accessing Zoho form enteries via API

      Hi As a user I can view enteries to a form at: https://forms.zoho.com/<myOrganisation>/report/<myReportName>/records/web How do I access these entries via API? I don't have any problem with scope and getting tokens. But I have no idea what the API call
    • Zoho Books - France

      L’équipe de Zoho France reçoit régulièrement des questions sur la conformité de ses applications de finances (Zoho Books/ Zoho Invoice) pour le marché français. Voici quelques points pour clarifier la question : Zoho Books est un logiciel de comptabilité
    • Blueprint Issue - Being able to set a subform field as mandatory

      I'm creating a blueprint. My record involves a subform which is only shown once field is set but the field gets set in step two of the process. My problem - I can't save the record as the subform field is set to mandatory - If I unset the mandatory field,
    • Blueprint - Mandatory file upload field

      Hi, File upload (as we as image upload) field cannot be set as mandatory during a blueprint transition. Is there a workaround? Setting attachments as mandatory doesn't solve this need as we have no control over which attachments are added, nor can we
    • Zoho Books - Include Quote Status in Workflow Field Triggers

      Hi Zoho Books team, I recently tried to create a Workflow rule based on when a Quote is Accepted by the customer. This is something which I thought would be very easy to do, however I discovered that Status is not listed as a field which can be monitored
    • Zoho Books - Show Related Sales Orders on Quotes

      Hi Books team, I've noticed that the Quotes don't show show the related Sales Order. My feature request is to also show related Sales Orders above the Quote so it's easy to follow the thread of records in the sales and fulfilment process. Below screenshot
    • Add VAT/Tax line to bank adjustments

      When categorising transactions and matching bank feeds with transactions such as customer payments, we use the "Add Adjustment" to add things like fees/bank fees. It would be useful to choose a VAT/Tax rate here. Whilst there is a bank charges option when adding a payment, this goes into the default bank charges account. We use the adjustments so that we can choose the account and separate our fees. We use different card providers and Worldpay charges VAT so we are stuck. We cannot integrate with
    • New Menu Layout Feedback

      I'd really like to see the banking item back on the top of the menu. I'm sure part of it is just because that's what I'm accustomed to. However, for a bookkeeping program, I think there's a logic to having banking be on top. Not a giant issue, but something
    • How to use Rollup Summary in a Formula Field?

      I created a Rollup Summary (Decimal) field in my module, and it shows values correctly. When I try to reference it in a Formula Field (e.g. ${Deals.Partners_Requested} - ${Deals.Partners_Paid}), I get the error that the field can’t be found. Is it possible
    • Form Accessibility

      Hi, is there an update on the accessibility standard of Zoho forms? Are the forms WCAG 2.1 AA compliant? 
    • Cannot schedule report delivery

      The only 'send option' available when exporting reports is 'immediately' The option to schedule the report is missing.
    • adding attachment in sendmail script where attachment is in a CRM field

      Hi all, I have a custom field of type 'File Upload' in one of my modules in my CRM. I want to include the file in that field as an attachment to an email - which is done from a button on  the 'Results' module. I have created a script and a button to initiate an email from that module. The Deluge scripting window has allowed me to add arguments for all the fields I need to use except for the one file upload type field. My script currently looks like the below (content of the email omitted). As you
    • [Free Webinar] Learning Table Series - AI-Enhanced Insurance Claim Management in Zoho Creator

      Hello Everyone! We’re excited to invite you to another edition of Learning Table Series, where we showcase how Zoho Creator empowers industries with innovative and automated solutions. Struggling with lengthy claim processes, a lack of visibility into
    • Zoho Suite is very slow

      Since today Zoho is incredibly slow over all applications! What's going on?
    • Not sure how to use credits to my account

      Hi I have a $50 credit to my account. I'm just wondering how I can apply that to either a current invoice or to try a new service. Any advice would be great, thanks. Kind Regards Chris
    • Control who sees Timeline and Interactions in Zoho CRM through Profiles

      The feature has been enabled for all DCs (except US, EU, and IN DCs). We will be rolling it out to the other DCs in the upcoming days. Dear All, In a CRM, not all users would require access to the history of a record. For instance, a Marketing Operations
    • Zoho Desk Integration - Add the option to send the estimate from the Zoho Desk Ticket Integration

      Hi, Currently in the Zoho Desk integration, the user is able to create an estimate from a ticket, once the estimate is created the user can see the estimate under the ticket (see screenshot below), but is not able to send that estimate from Zoho Desk.
    • Utilisation de Zoho en conformité avec l’article 286 du Code général des impôts (CGI)

      Cher(e) client(e), Conformément à l’article 286 du Code général des impôts (CGI) impose aux entreprises assujetties à la TVA d’utiliser des systèmes de caisse ou de gestion commerciale certifiés lorsqu’elles enregistrent des ventes à des particuliers.
    • Issue showing too many consultations in my workspace link.

      Hi Team, I’ve set up two Workspaces to track meetings from different sources. So far, this has been working well, and the two Workspaces are differentiated without any issues. However, when I navigate to Consultations and share the link to my personal
    • 👋 Welcome to the Zoho MCP Community

      Hello all, glad to have you here! This is your space for everything AI agents, MCP tools, and intelligent business apps. This community is for you — developers, partners, creators, and businesses exploring how agents can transform work. Whether you’re
    • CRM Validation Rules Support Only Single Condition

      Simply put, CRM validation rules support only a single condition for each field on "All Records". You also cannot specify additional validation rules on the same field because it has already been used in an existing validation rule. The ONLY solution
    • Unapproved Leaves are hard to distinguish in Attendance View

      This is a an unapproved leave request It appears in the Attendance view without any visual indicator if its approved or not For a whole day request this might be manageable but for hourly requests it gets very hard to know which are approved, which are
    • Next Page