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

    • SMS to customers from within Bigin

      Hi All, Is there anyone else crying out for Bigin SMS capability to send an SMS to customers directly from the Bigin interface? We have inbuilt telephony already with call recordings which works well. What's lacking is the ability to send and receive
    • Zoho Survey reminder settings are extremely confusing

      Hi, I just want to set 3 reminders, one week apart from the first email out. Your form is too confusing and I don't understand. Can you simplify and be more specific regarding the language used on the form ?
    • Add deluge function to shorten URLs

      Zoho Social contains a nice feature to shorten URLs using zurl.co. It would be really helpful to have similar functionality in a Deluge call please, either as an inbuilt function or a standard integration. My Creator app sends an email with a personalised
    • Add specific field value to URL

      Hi Everyone. I have the following code which is set to run from a subform when the user selects a value from a lookup field "Plant_Key" the URL opens a report but i want the report to be filtered on the matching field/value. so in the report there is
    • form data load issue when saving as duplicate record is made

      Hello. I have a form with a lookup when a value is selected the data from the corresponding record is filled into all of the fields in the form. But the form is loaded in such a state that if any value is changed it will take all of the values pre loaded
    • Unable to remove the “Automatically Assigned” territory from existing records

      Hello Zoho Community Team, We are currently using Territory Management in Zoho CRM and have encountered an issue with automatically assigned territories on Account records. Once any account is created the territory is assigned automatically, the Automatically
    • Track online, in-office, and client location meetings separately with the new meeting venue option

      Hello everyone! We’re excited to announce meeting enhancements in Zoho CRM that bring more clarity and structure to how meetings are categorized. You can now specify the meeting venue to clearly indicate whether a meeting is being held online, at the
    • Google Fonts Integration in Pagesense Popup Editor

      Hello Zoho Pagesense Team, We hope you're doing well. We’d like to submit a feature request to enhance Zoho Pagesense’s popup editor with Google Fonts support. Current Limitation: Currently, Pagesense offers a limited set of default fonts. Google Fonts
    • Improved Contact Sync flow in Google Integration with Zoho CRM

      Hello Everyone, Your contact sync in Google integration just got revamped! We have redesigned the sync process to give users more control over what data flows into Google and ensure that this data flows effortlessly between Zoho CRM and Google. With this
    • Pro Lite Upgrade - Quick Access Tray

      Hello, I was going to upgrade to Pro Lite but the Quick Access Tray feature isn't available for Windows. Of the four features not available for Windows, the QAT is what I'm most interested in. Are there plans to add this feature for Windows anytime soon?
    • 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
    • Improved Functionality PO Bill SO Invoice

      Hello, I need to enter over 100 items, it's frustrating to scroll a few item rows and wait for more to load, then scroll again. It would be nice to have buttons that scroll to the top or bottom with one click. Furthermore, these items I'm adding are VAT
    • Wishes for 2026

      Hello, and a happy new year 2026! Let's hope it's better for everyone. I'd like to share some thoughts on Zoho One and what could be useful in the short, medium, and long term. Some things are already there, but not applied to Zoho One. Others seem like
    • How to Integrate Zoho Books with Xero (No Native Connection Available)

      Hi everyone, I’m currently facing an issue with integrating Zoho Books invoices with Xero, as I’ve noticed Zoho does not provide a native integration with Xero at this time. I would like to ask: What are the common or recommended solutions for syncing
    • How to install Widget in inventory module

      Hi, I am trying to install a app into Sales Order Module related list, however there is no button allow me to do that. May I ask how to install widget to inventory module related list?
    • error while listing mails

      I can't access email in any of my folders: Oops, an error occurred - retry produces the second error response: error while listing mails (cannot parse null string). I've signed in and out of Zoho, restarted my iMac.
    • Unlocking New Levels: Zoho Payroll's Journey in 2025

      Every year brings its own set of challenges and opportunities to rethink how payroll works across regulations and teams. In 2025, Zoho Payroll continued to evolve with one clear focus: giving businesses more flexibility, clarity, and control as they grow.
    • Introducing Connected Records to bring business context to every aspect of your work in Zoho CRM for Everyone

      Hello Everyone, We are excited to unveil phase one of a powerful enhancement to CRM for Everyone - Connected Records, available only in CRM's Nextgen UI. With CRM for Everyone, businesses can onboard all customer-facing teams onto the CRM platform to
    • Send Supervisor Rule Emails Within Ticket Context in Zoho Desk

      Dear Zoho Desk Team, I hope this message finds you well. Currently, emails sent via Supervisor Rules in Zoho Desk are sent outside of the ticket context. As a result, if a client replies to such emails, their response creates a new ticket instead of appending
    • CRM project association via deluge

      I have created a workflow in my Zoho CRM for closing a deal. Part of this workflow leverages a deluge script to create a project for our delivery team. Creating the project works great however, after or during the project creation, I would like to associate
    • Zoho Browser??

      hai guys, this sounds awkward but can v get a ZOHO BROWSER same as zoho writer, etc. where i can browse websites @ home and continue browsing the same websites @ my office, as v have the option in Firefox, once i save and close the browser and again when i open it i will be getting the same sites. If u people r not clear with my explanation, plz let me know. Thanks, Sandeep  
    • Where can we specify custom CSS in Zoho Forms custom theme ?

      I'm using a form with a dark theme. The OTP popup window is unreadable, because for some reason, the OTP popup background fixes color to white, but still takes the font color specified in the custom theme. This ends up as white on white for me, rendering
    • MCP no longer works with Claude

      Anyone else notice Zoho MCP no longer works with Claude? I'm unable to turn this on in the claude chat. When I try to toggle it on, it just does nothing at all. I've tried in incognito, new browsers, etc. - nothing seems to work.
    • Enable History Tracking for Picklist Values Not Available

      When I create a custom picklist field in Deals, the "Enable History Tracking for Picklist Values" option is not available in the Edit Properties area of the picklist. When I create a picklist in any other Module, that option is available. Is there a specific reason why this isn't available for fields in the Deals Module?
    • The reason I switched away from Zoho Notebook

      My main reason for switching to Zoho was driven by three core principles: moving away from US-based products, keeping my data within India as much as possible, and supporting Indian companies. With that intent, I’ve been actively de-Googling my digital
    • Add RTL and Hebrew Support for Candidate Portal (and Other Zoho Recruit Portals)

      Dear Zoho Recruit Team, I hope you're doing well. We would like to request the ability to set the Candidate Portal to be Right-to-Left (RTL) and in Hebrew, similar to the existing functionality for the Career Site. Currently, when we set the Career Site
    • Ability to Edit YouTube Video Title, Description & Thumbnail After Publishing

      Hi Zoho Social Team, How are you? We would like to request an enhancement to Zoho Social that enables users to edit YouTube video details after the video has already been published. Your team confirmed that while Zoho Social currently allows editing the
    • Free Webinar : Unlock AI driven business insights with Zoho Inventory + Zoho Analytics

      Are you tired of switching between apps and exporting data to build customized reports? Say hello to smarter & streamlined insights! Join us for this exclusive webinar where we explore the power of the Zoho Inventory–Zoho Analytics integration. Learn
    • Critical Issue: Tickets Opened for Zoho Support via the Zoho Help Portal Were Not Processed

      Hi everyone, We want to bring to your attention a serious issue we’ve experienced with the Zoho support Help Portal. For more than a week, tickets submitted directly via the Help Portal were not being handled at all. At the same time no alert was posted
    • Hide/Show Subform Fields On User Input

      Hello, Are there any future updates in Hide/Show Subform Fields "On User Input"?
    • Cloning Item With Images Or The Option With Images

      Hello, when I clone an item, I expect the images to carry over to the cloned item, however this is not the case in Inventory. Please make it possible for the images to get cloned or at least can we get a pop up asking if we want to clone the images as
    • Archiving Contacts

      How do I archive a list of contacts, or individual contacts?
    • WorkDrive and CRM not in sync

      1/ There is a CRM file upload field with WorkDrive file set as the source: 2/ Then the file is renamed in WorkDrive (outside CRM): 3/ The File in CRM is not synced after the change in WorkDrive; the file name (reference) in CRM record is not updated (here
    • Custom validation in CRM schema

      Validation rules in CRM layouts work nicely, good docs by @Kiran Karthik P https://help.zoho.com/portal/en/kb/crm/customize-crm-account/validation-rules/articles/create-validation-rules I'd prefer validating data input 'closer to the schema'
    • Adding Default Module Image into mail merge field

      As with most people finding their way to these forums i have a specific requirement that doesn't seem to be supported by Zoho I have created 2 custom modules to suit my purpose 1 is an inventory type module that lists aluminium extrusions, and all relevant
    • Sync Data from MA to CRM

      Currently, it's a one-way sync of data from the CRM to MA. I believe we should have the ability to select fields to sync from MA to the CRM. The lead score is a perfect example of this. In an ideal world we would be able to impact the lead score of a
    • Is it possible to roll up all Contact emails to the Account view?

      Is there a way to track all emails associated with an Account in one single view? Currently, email history is visible when opening an individual Contact record. However, since multiple Contacts are often associated with a single Account, it would be beneficial
    • Update CRM record action

      Currently, MA only offers a "Push Data" action to push data to a CRM module. This action is built to cover the need to both create a new record and update an existing record. Because it has been implemented this way all required fields on the CRM module
    • Notes badge as a quick action in the list view

      Hello all, We are introducing the Notes badge in the list view of all modules as a quick action you can perform for each record, in addition to the existing Activity badge. With this enhancement, users will have quick visibility into the notes associated
    • What's new in Zoho One 2025

      Greetings! We hope you have all had a chance by now to get hands-on with the new features and updates released as part of ZO25. Yes, we understand that you may have questions and feedback. To ensure you gain a comprehensive understanding of these updates,
    • Next Page