Hi community members,

We have developed a workaround for approval-based booking using Zoho Creator and Zoho Bookings! This provides a temporary solution as we work on the native feature, and it's useful for anyone needing an approval workflow when confirming appointments.

Solution overview

1. Intake form via Zoho Creator 

Zoho Creator serves as the intake form where customers can submit their booking requests by providing details, such as:

  • Name

  • Email

  • Contact number

  • Preferred service

  • Desired date and time slots

2️. Scheduling and booking management via Zoho Bookings  

Zoho Bookings acts as the scheduling engine in the background, handling:

  • Staff onboarding

  • Working hours configuration

  • External calendar and video conferencing integrations

  • Event creation and appointment management.

3️. Real-time data sync via API  

This solution leverages API integration between Zoho Creator and Zoho Bookings to ensure real-time data synchronisation. When customers fill out the intake form, it dynamically fetches and displays available slots from Zoho Bookings based on their selection.

Since we are using APIs, any changes made in Zoho Bookings (such as staff availability or service modifications) will be instantly reflected
in the Zoho Creator form, eliminating concerns about outdated information.

Prerequisites for the workaround  

  • Zoho Bookings: Any paid plan

  • Zoho Creator: Standard plan or higher

How to access this solution  

Zoho Creator allows you to export applications as DS files, making it easy to share and deploy solutions. We have attached the DS file for this solution so you can easily download and import it into your Zoho Creator account.

  • Download the DS file here: DS file code

  • Guide to import the DS file into Zoho Creator: Guide

Watch the working demo of this solution hereSolution demo

How it works 

1️. Customer appointment request form  

  • The Zoho Creator intake form allows customers to select their workspace, service, date, time zone, and preferred time slot.

  • The Zoho Bookings API dynamically fetches the available services and slots based on customer selections.

2️. Admin notification and approval dashboard  

Once a customer submits a request, admins receive an email notification with access to the approval dashboard.

Admins can approve requests using two methods:

Auto-assign staff  

  • If admins do not have a preference for assigning staff, they can simply click the Auto-Assign button.

  • The system checks the first available staff member for the selected service.

  • If the first staff member is available, the appointment is automatically assigned to them.

  • If the first staff member has an existing appointment for the day, the system will automatically move to the second staff member and check their availability for the approved date and time.

  • If the second staff member is also unavailable, an error message is displayed, prompting the admin to manually select a staff member.

  • This mechanism ensures that staff assignments are distributed efficiently every time the Auto-Assign button is clicked.

Manual staff assignment  

  • Admins can manually select a specific staff member before approving the appointment.

  • If the selected staff member is unavailable, the system notifies the admin to choose another staff member.

3️. Deny function and automation options  

If the appointment is denied, various automated actions can be configured, including:

  • Sending email notifications to customers about the cancellation

  • Notifying other admins or specific users

  • Triggering custom workflows based on business needs

Key highlights of the solution  

  • No need to manually configure complex workflows—everything is ready to go.

  • Simply pass the Workspace ID and Staff ID while making API calls.

  • The system fetches all required booking details dynamically using Zoho Bookings API.

How to retrieve IDs from Zoho Bookings  

Workspace ID  

  1. Navigate to Zoho Bookings and open the required workspace.

  2. Retrieve the Workspace ID from the URL.

Example:

https://bookings.zoho.in/?app_version=new#/home/dashboard/2209960000******/bookings-page?clview=false


     3. Workspace ID: 2209960000******


Staff ID  

  1. Open the Staff section and select the required user profile.

  2. Retrieve the Staff ID from the URL.



Watch this short video on where to replace the Workspace ID: Workspace ID video 

Watch this short video on where to replace the Staff ID: Staff ID video

Important notes on payment handling  

This solution does not currently handle payment processing. Since appointment requests require approval before confirmation, the payment function is not included by default.

However, if you need to integrate payment processing, here is a possible approach: Zoho Invoice and Zoho Books integration

You can connect Zoho Bookings with an invoicing system like Zoho Invoice or Zoho Books using Zoho Flow or Zapier.


How it works:

1️. When an admin approves an appointment, the booking is confirmed.

2. The system automatically generates an invoice based on the booked service.

This is just one way to integrate payments into this solution. If you have specific payment requirements or alternative workflows in mind, feel free to share them, and we will check the feasibility of implementation.


Need further customization?
  

Note: This solution is in its initial stage of development, and we will refine it wherever possible based on new ideas, feedback, and better implementation approaches. Your suggestions are always welcome.

If you require additional automation or a custom approval/denial process, feel free to reach out.

Contact us at: hello@zohobookings.com

      • Sticky Posts

      • Zoho Bookings know-how: A hands-on workshop series

        Hello! We’re conducting a hands-on workshop series to help simplify appointment scheduling for your business with Zoho Bookings. We’ll be covering various functionalities and showing how you can leverage them for your business across five different sessions.
      • Announcing: custom color palette + free workshop

        Hello everyone, We're excited to share new feature in Zoho Bookings—a color palette within booking page themes. You'll find this option under Manage Bookings > Workspaces > Booking Page Themes. You can customize the color of every element in your booking page and even alter the transparency of your background image. Please note that this is a paid feature included in the Basic and Premium plans. At the moment, it's available only under the Modern Web theme. This means you can create billions (7,
      • Complete walk-through of Zoho Bookings (video)

        Save time for both you and your customers. Use Zoho Bookings, the appointment scheduling app from Zoho, to free yourself from email and paper-based scheduling. Zoho Bookings can give you a common calendar by syncing multiple calendars, including yours and your staff's. Your customers can book a time convenient for them, and pay for services, through your website or the customizable webpage features available in Zoho Bookings. They'll also get emails reminding them about their appointments and any
      • New Features: Service Availability and staff booking page themes!

        Dear All,  Want a dedicated schedule for your one-on-one services? How would it feel to have one-on-one services open for consultations only during certain times? You need a superpower to make that happen and we give it to you - Service Availability is
      • Zoho Bookings has a new pricing - Pay per user

        Dear customers, Businesses around the world use Zoho Bookings. Customers have booked 1.5 million appointments and over 200K online meetings using Bookings. We are only set to cross more milestones, thanks to your support. We are excited to introduce to

        • Recent Topics

        • Article Name Sorting in Zoho Desk Knowledge Base (agent / admin side)

          Dear Zoho Desk Support, We are writing to request an enhancement to the Knowledge Base management feature within Zoho Desk. Currently, there is no option to sort articles by their name, which significantly hinders efficient article management, especially
        • How to parse JSON data with SQL in Zoho Analytics?

          Hi all, I have a column with JSON data. I want to show this column in a chart, but it is very messy, and no JSON parsing function is supported on Zoho Analytics. data example: {"id": 5, "status": "false", "date": "15/10/22"} what I want to do in SQL is
        • Ability to turn off "Would you like this amount to be reflected in the Payment field?" message

          Team, Is there any way to turn off the message" Would you like this amount to be reflected in the Payment field?" when I make a payment? This is so annoying. This happens EVERY TIME I put an amount in the Payment Made field.
        • Add an Equation Field (Or update the Formula Field)

          Hi, I would like to be able to have one field as a Text Field with QR Code, and then have multiple Equation/Formula Fields that then take parts of that fields data with LEFT, MID, RIGHT, REGEX, etc. Thanks Dan
        • How to parse column having JSON data using SQL?

          We have a daily sync from a PostgreSQL database that brings data into Zoho Analytics. Some of the columns store raw JSON data. We need to build SQL queries on top to parse data from JSON and store them in discrete columns. There is no option for "Data
        • Enable report button based on the current user role

          Greetings  i have a report that contains action buttons, i want these buttons to appear as enabled only when the current logged in user has a certain role, for example only CEO role users will be able to use this button. but when setting the conditions
        • 500 Internal Error In Mail API

          I'm getting 500 Internal Error when using mail API. I'm getting this error for this one account, it works fine for other Account IDs which I have in my system.
        • Piss poor service in Support in Domains and email

          Srijith Narayanan B contacted me today. Very pleasant fellow. Just didn't want to tell him how bad your support service is. You help the person, but you leave before we can finish the next stage. Which causes a lot of frustration. It's been 8 days now
        • Zoho live chat widget in React Js

          I am trying to test Zoho live chat widget code in react js, below is the sample code void(0)} onClick={()=>window.$zoho.salesiq.floatwindow.visible("show")}>LIVE CHAT window.$zoho = window.$zoho || {};window.$zoho.salesiq = window.$zoho.salesiq
        • Are there any plans to add Triggers for Subform edits?

          By The Grace of G-D.  Hi, How are you? Can you tell me if you have any plans to support subform edit as a workflow trigger? And what about have them trigger an "onChange" client script?
        • Zoho commerce

          i am facing issue with order summary emails.i am getting 1 continuous email for order received yesterday and today.ideally 1 email should be received for a particular date ie for 02/08 i should received 1 email from 12.01am till 11.59pm but it is being
        • Feature Request: Improve Category Page Sorting for "Out of Stock" Products

          Hi there, I'm writing to request a new feature that I believe would significantly improve the user experience in my online store. Currently, on category pages, products are sorted by popularity. However, when a popular product goes "Out of Stock," it
        • POSTMAN - There was an error in evaluating the Pre-request Script:Error: Cannot read properties of undefined (reading 'json')

          I am beginning the journey to learn how to use the API for Zoho Sign. I am getting the following error when I try to use postman. To walk you through how I am getting this error... I wanted to start with a simple GET and expand my learning from there.
        • How do i integrate shipstation with zoho inventory

          Wanting to set up my own delivery driver in ship station so we can get real time tracking of where the package is but then i want it to automatically update zoho inventory packages/shipments how can i do this
        • Invalid value passed for salesorder_id

          Hi, I am using sales return API, details are given below: API: https://inventory.zoho.com/api/v1/salesreturns?organization_id=700571811 Post Json Data: { "salesreturn_number": "", "date": "2020-11-12", "reason": "Testing from API", "line_items": [ { "item_id":
        • Create Invoice and Invoice Items from Sales Order via API

          Currently, when creating an Invoice associated with a Sales Order via the API, it appears that I must manually include all of the items (line_items) even though they are already part of the Sales Order. My question is this: is it possible to raise an Invoice via the API based on all of the information associated with a Sales Order--such as the  items? In other words, do I always have to manually include the items (line_items) when raising an Invoice via the API when the Invoice is associated with
        • Outlook 2013 Calendar Syncs but "Related To" Field in Zoho is blank

          Outlook 2013 Calendar Syncs but Related To Field in Zoho is blank I expect the "Realted To" field to be populated with the calendar participants
        • Export a Course

          Is it possible to export a course from Zoho Learn to a SCORM file?
        • Add and Remove Agents from Departments and Groups in Zoho One

          Hi Zoho Flow Team, We hope you're doing well. Currently, Zoho Flow provides an action to add an agent to a group in zoho one, but there is no action to remove an agent from a group or a department. Another action that we find missing is the option to
        • Zoho learn Custom portal - networkurl & CustomPortalId

          I want to get my individual account’s networkurl and customportalId to use in this API: https://learn.zoho.com/learn/api/v1/portal/<networkurl>/customportal/<customportalId>/manual How can I retrieve the networkurl and customportalId using the API? I
        • Consumer Financing

          Does Zoho currently have a payment gateway (such as Stripe, Square, etc) which offers financing for customers? So, let's say the estimate we give the customer is greater than what they can afford at the time, but we can sell the service now, letting them
        • Intégration de la gestion des Passkeys dans Zoho Vault

          Zoho Vault est depuis plus d’une décennie une solution fiable pour les entreprises : pour la gestion, le partage et le stockage des mots de passe. En 2018, nous avons fait un pas en avant en proposant la connexion unique (SSO). Nous sommes fiers de franchir
        • Scan & Fill with double quote key/value pairs

          Hi, An old Ticket moved to a Topic/Idea: I love the idea of the new Scan & Fill as it nearly covers my previous request for a QR Scanner to read a multi-part QR Code. My QR Codes are hard-coded as below: {"key1":"value1","key2":"value2","key3":"value3"}
        • Analytics SQL Queries should allow # as comment

          # and // are very common for commenting in SQL. Not sure why analytics only allows /* and */ for commenting. Especially when # grays the line as if it's being commented out. This should be added for sure.
        • SalesIQ Operator Activity Reports in Zoho Analytics

          I'm busy building a dashboard in Zoho Analytics and I want to include SalesIQ stats in the dashboard, but I'm unable to get the statistics mentioned in the attached image. Any idea where I can get the stats for Operator Activity?
        • Default in fields on Form B based on the user selection in Form A

          Hi Everyone, I have added an action button to a form report to bring up a new form based on user selection, see it indicated in red below: Then when the ne form loads, I want to default in some of the fields based on the record the user was selected on.
        • No longer can indent

          Hey there! Is it just me or were we used to be allowed to used tab or indent when writing. It’s not working right now, has this always been the case?
        • Upcoming Changes to the Timesheet Module

          The Timesheet module will undergo a significant change in the upcoming weeks. To start with, we will be renaming Timesheet module to Time Logs. This update will go live early next week. Significance of this change This change will facilitate our next
        • Free webinar alert! Seamless Transition with Lossless Migration: Zoho One + Zoho Mail

          Hello Zoho Mail Community! 🚀 Attention IT Admins and Email Administrators! Are you planning to migrate your organization's email to Zoho Mail within the Zoho One ecosystem? 📧 Join our exclusive webinar, Seamless Transition with Lossless Migration: Zoho
        • Add Resource to Export

          The Export Data feature does not include a column for the Resource field. Without this column, Zoho Bookings cannot be used by any business for resource-based services or event types e.g. room bookings, equipment bookings. It seems to be an oversight,
        • Client Script | Update - Client Script Support For Custom Buttons

          Hello everyone! We are excited to announce one of the most requested features - Client Script support for Custom Buttons. This enhancement lets you run custom logic on button actions, giving you greater flexibility and control over your user interactions.
        • Mandatory field via deluge code

          I would like to ask you if it is possible to make a field mandatory via deluge script. For example, if I have a decision box and I click on it then I want a single line field to be mandatory. If uncheck the decision box then to do the single line as optional. I think it is not possible to do that and I have to do it via validation in 'on validate' field. 
        • Revenue Management: #1 What does it mean to "recognize" revenue?

          Earning revenue isn't just about collecting cash from your customers. It's about recording the income correctly and consistently. Revenue recognition is the process of deciding when and how to record revenue in financial statements so that they reflect
        • Power of Automation :: Auto-Populate Integration Field in Projects with CRM Account Data

          Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
        • Zoho Forms and ChatGPT - populating a field using AI.

          I have a form where I would like the user to enter a response or query, and have another field populated using AI. For example, user enters Field 1, AI populates Field 2 in response. I want to be able to wrap some additional instruction text around the
        • campo tag para api

          debo conectarme a una api de zoho inventory y ocupo tomar el campo tag para poder asi jalar el articulo que cuente con el campo correcto en tag ejemplo que tag existen carro y avion que cuando busque los articulo con tag carro arroje solo estos por mas
        • Connecting Zoho Inventory to ShipStation

          we are looking for someone to help connect via API shipStation with Zoho inventory. Any ideas? Thanks. Uri
        • Uploading file as attachment to Zoho CRM

                 Hi,   I am trying to attach a file to a Zoho CRM contact using Zoho Flow. Right now, I try to do it through the “Upload File” field in Zoho CRM (In my screenshots, it’s called Téléchargement du fichier 1).   Here is what I tried:   Case 1: Webmerge document The Flow is called “Custom Function” (see screenshot 101).   Step  1: Creating a Webmerge document (screenshot 99)   Step 2: I use “Update module entry” to upload the created file. I upload Webmerge’s “Document” in my “Téléchargemet du
        • Zia Answer Bot - Create Ticket

          Surprisingly, the current iteration of Zia will try to answer a question and unless you have "transfer to SalesIQ chat" enabled, it won't create a ticket for the user or offer them a method to create a ticket. We don't want it to create chats for us,
        • meassure leads phases

          Hi, I need to create a table to meassure the time that a lead stay in blueprint phases. the phases are first contact, second contact, lead spam, contacted, appointment. any idea? I have attached an example
        • Next Page