Enable your teams to respond in seconds by bridging the gap between booking confirmation and team notification. No sticky notes, no calendar nudges and no follow-up frenzies. For businesses that rely on scheduled appointments, real-time visibility is a crucial operational need.
Timely automated communication is essential for managing important appointments and bookings. Let's integrate Zoho Bookings with Zoho Cliq via the Cliq developer platform's bots and workflows, ensuring that every appointment confirmation is automated and reaches Cliq chats promptly.
Business Benefits
- Operational Efficiency: This custom solution eliminates the need for manual dashboard monitoring. Booking updates are automatically communicated to Cliq as they occur.
- Enhanced Customer Experience: Faster internal awareness leads to expedited confirmations, better-prepared staff, and a more seamless appointment experience.
- Centralized Communication: All booking activities are consolidated in the same Cliq channel your team uses daily, minimizing context switching and preventing information silos.
- Enterprise-Ready, No Additional Cost: Built entirely on the Zoho Cliq Developer platform, this custom solution requires no third-party middleware. It operates within your existing Zoho subscription framework.
Step 1: Create a bot
- Go to the top-right corner of your profile and click on it.
- Select "Bots and Tools" from the dropdown menu.
- To create a new bot, click on "Create Bot" under the "Bots" section.
- Enter a name and description for your bot and ensure that channel configuration settings are enabled during setup.
- Finally, save the bot.
Step 2: Retrieve the bot webhook URL
- Webhook tokens are listed in the Bots & Tools section along with other internal tools.
- When you access the webhook tokens module, you'll need to authenticate using two-factor authentication (2FA), verify your identity, and then click "Continue."
- After authenticating, you can create, edit, and manage your webhook tokens as needed.
- Generate a webhook token and retrieve the bot's webhook URL as instructed.
Step 3: Generate Cliq bot incoming url
To create the bot's incoming URL, combine the bot's endpoint with the webhook token.
- Navigate to the newly created bot and click on it. A pane will appear showing the bot's URL details.
- Copy your bot's incoming endpoint from this window and append your token to it:
- https://cliq.zoho.com/api/v2/bots/<yourbotname>/incoming?zapikey=<webhooktoken>
Keep this URL handy, as you will need to paste it into the Zoho Bookings workflow later.
Step 4 : Creating a workflow in Zoho Bookings

- Log in to Zoho Bookings.
- In the left panel, navigate to one of the following options:
- Workflows → Custom Workflows → Create New Workflow
- or Workflows → Create Workflow → Create New Workflow.
- If you chose Workflows → Custom Workflows → Create New Workflow, complete the following fields:
- Workflow Name: Enter a name for your workflow.
- Trigger When: Select "Booked."
- Occurrence: Choose "Immediately."
- Choose Service (e.g., IT Consulting): Select your Service.
- Perform Action: Select "Execute Custom Functions."
- Customize Template: Paste the following code.
- In the template editor, paste the code, replacing "<bot incoming url>" with the full URL you created in the previous step.
- bookingInfoMap = Map();
- bookingInfoMap.put("BookingInfo",bookingInfo);
- cliqWebhookTrigger = invokeurl
- [
- url : "<bot incoming url>"
- type :POST
- parameters:{"Book Details":bookingInfo} + ""
- headers:{"content-type":"application/json"}
- ];
- info cliqWebhookTrigger;
- Click Create Workflow. With this setup, whenever a new appointment is booked, it will trigger a notification to your Cliq bot's incoming handler.

Step 6 : Setting up bot incoming webhook handler
- Head back to Cliq, locate the bot you created under the "Bots and Tools" section, and access its incoming webhook handler.
- The incoming webhook handler is designed to allow third-party services, such as Zoho Bookings, to post messages directly to your bot.
- Copy and paste the below code, then click "Save".
Pre-requisites before scripting:
Create a Zoho Cliq Default Connection:
Before you begin scripting the code below, you need to create a connection in Zoho Cliq. Once the connection is established, you can use it in Deluge integration tasks and invoke URL scripts to access data from the required service.
Use a unique name for the connection with the scope set to ZohoCliq.Reminders.All.
Note: Refer to the document on Connections in Cliq for more information.
Post Alerts to a Channel:
To post an alert to a channel, you'll need the unique names of both the channel and the bot. This is necessary as we will use the zoho.cliq.postToChannelAsBot Deluge task in the code below. Follow these steps to retrieve these names:
How to Obtain the Channel Unique Name in Cliq?:
- Navigate to the top right corner of your preferred channel and click on the three dots.
- In the menu that appears, select "Channel info." A pop-up will display detailed information about the channel.
- Hover over the "Connectors" section and click on it.
- Under "API Parameters," you will find the channel unique name.
How to Obtain the Bot Unique Name in Cliq?
- Go to "Bots & Tools," and under the bots section, select your preferred bot.
- Copy the API endpoint URL. The bot's unique name is located between "bots/" and the next slash ("/").
Example:
In this example, the bot's unique name is crmupdatesincliq.
Retrieve the Bot Chat ID:
- Open Zoho Cliq and navigate to your bot in the chat window.
- Click on the bot to open the conversation.
- Check the URL in your browser; the bot chat ID is the alphanumeric string that appears after "chats/".
Example:
In this example, the bot chat ID is CT_9874563201845670134_10005673821-B7.
After creating the connection, retrieving the channel unique name, bot unique name, and bot chat ID, keep this information handy for use in the code below.
Script
- response = Map();
- info params;
- info headers;
- info body;
- bookingDetails = body.get("Book Details");
- info bookingDetails;
- bookingID = bookingDetails.get("booking_id");
- workspaceName = bookingDetails.get("workspace_name");
- customerEmail = bookingDetails.get("customer_email");
- startTime = bookingDetails.get("start_time");
- endTime = bookingDetails.get("end_time");
- timeZone = bookingDetails.get("time_zone");
- summaryUrl = bookingDetails.get("summary_url");
- responseMsgCard = {"text":"### 📅 New Appointment","card":{"theme":"modern-inline"},"slides":{{"type":"label","title":"Details","buttons": [
- {"label": "Open Summary","action": {"type": "open.url","data": {"web":summaryUrl}}}],"data":{{"🆔 Booking ID":bookingID},{"🏢 Workspace":workspaceName},{"📧Customer Email":customerEmail},{"🕒 Time":startTime + " - " + endTime},{"🌍 TZ":timeZone}}}}};
- info zoho.cliq.postToBot("<bot unique name>",responseMsgCard);
- //Post to your Bot
- info zoho.cliq.postToChannelAsBot("<Channel unique name>","<bot unique name>",responseMsgCard);
- //It will send to channel with bot permission.
- //--------------------------------- To set reminder -------------------------------//
- eventTimeZone = bookingDetails.get("time_zone");
- info eventTimeZone;
- userTimeZone = user.get("timezone");
- dateTimeObj = bookingDetails.get("start_time").toTime("dd-MMM-yyyy HH:mm:ss",eventTimeZone).toString("dd-MM-yyyy HH:mm:ss");
- info dateTimeObj;
- info dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",user.get("timezone")).subMinutes(60);
- datetime_30min_sub = dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",userTimeZone).subMinutes(30).toString("dd-MMM-yyyy HH:mm:ss",userTimeZone);
- datetime_60min_sub = dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",userTimeZone).subMinutes(60).toString("dd-MMM-yyyy HH:mm:ss",userTimeZone);
- info datetime_60min_sub+"datetime_60min_sub";
- info datetime_30min_sub+"datetime_30min_sub";
- secondsVal_60sec_before = datetime_60min_sub.unixEpoch(userTimeZone);
- secondsVal_30sec_before = datetime_30min_sub.unixEpoch(userTimeZone);
- info secondsVal_60sec_before;
- info secondsVal_30sec_before;
- reminderTimes = list();
- reminderTimes.add(secondsVal_60sec_before);
- reminderTimes.add(secondsVal_30sec_before);
- for each reminderTime in reminderTimes
- {
- param = Map();
- content = "Zoho Bookings Reminder : " + bookingID;
- param.put("content",content);
- param.put("time",reminderTime);
- chatidsList = list();
- chatidsList.add("<Bot chat id>");
- param.put("chat_ids",chatidsList);
- createReminder = invokeurl
- [
- url :"https://cliq.zoho.com/api/v2/reminders"
- type :POST
- parameters:param + ""
- connection:"<your connection name>"
- ];
- info createReminder;
- }
- return response;

Team responsiveness and operational clarity are critical, and automated booking alerts create a measurable impact. Businesses managing a scalable client base and operating on appointments cannot afford delays in information. Every booking that goes unnoticed is a missed chance to respond and deliver.
This custom solution brings real-time Zoho booking data into the Cliq communication layer, effectively filling the gap, letting teams stay coordinated, respond faster, and deliver a consistently better experience to every customer.
If you have any further questions or need support, please reach out to support@zohocliq.com, and we'll be happy to assist you.
Recent Topics
Marketing Tip #1: Optimize item titles for SEO
Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
Remove Due Date from Statements
Is it possible to remove the Due Date on the Invoice transation line on statements? I have figured work arounds to get the Invoice detail on the Statement but cannot work out haw to simplify the stament by removing the "- due on xx/xx/2026" - it really
Cliq iOS can't see shared screen
Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
Displaying only unread tickets in ticket view
Hello, I was wondering if someone might be able to help me with this one. We use filters to display our ticket list, typically using a saved filter which displays the tickets which are overdue or due today. What I'd really like is another filter that
How can I filter inactive/disable agent tickets?
Hello, We have an user-agent that left the company and we inactive/disabled his agent. So, now I can no longer filter or search tickets that he is the current owner, or even create a rule to reassign tickets to another person when the ticket is reopen.
How do i move multiple tickets to a different department?
Hello, i have several tickets that have been assigned to the wrong department. I am talking about hundreds of automatically generated ones that come from a separate system. How can i select them all at once to move them to another department in one go? I can select them in "unsassigned open tickets view" but i can't find a "move to another department" option. I also can't seem to assign multiple tickets to the same agent in that same view. Could somebody advice?
Add Reauthentication Option for Zoho Bug Tracker Integration in Zoho Desk
Hello Zoho Desk Team, We hope you're doing well. We would like to request an enhancement to the Zoho Bug Tracker integration within Zoho Desk. Current Limitation: At the moment, there is no option to reauthenticate the Zoho Bug Tracker integration in
Dashboards for Customers
Is it possible to build dashboards for each customers in the community for their tickets?
Create Package From A Picklist
Dear Zoho, Can it be made possible to create a package from a picklist? The reason our company makes a picklist is for that to become a package Our sales orders have 600-1000 items I hope that makes it clear that it's hard to delete 990 items when we
Migrating from Zoho Checkout to Zoho Billing
I have an active Zoho Checkout account where I'm charging customers for subscriptions. Now I'm looking to upgrade and only use Zoho BIlling, in which my account in on read only mode at the moment. I can see is also tracking the customers and its payments.
API - Bank Accounts | Reconciliation Discrepancy
Unless I'm reading it wrong, the documentation for the Bank Reconciliations API is inconsistent with itself. https://www.zoho.com/books/api/v3/bank-accounts/#create-a-bank-reconciliation The text definition says that the transaction_id should be a string,
another little issue
So to get over showing prices with VAT we used the price lists and made the prices inclusive. The problem is now on the items it wants to show the orginal retail value which makes no sense. Ideas please
Handle Leading Zeros in a Number Field
Hi, If I use a Number Field, set with Min 7 Digits and Max 7 Digits, and enter 0000001, it will result in 1 and an error as it removes the leading zeros, the same with entering 0012340 will result in 12340 and error. So I have to use a Text Field and
can't access zoho account
I can't log in to my zoho account, can you help me
HTML PDF Templates / Build From Scratch option not visible for Custom Modules
Hi everyone, I am working with Zoho Books Custom Modules and trying to create a custom 4x4 package label PDF template using HTML/CSS. According to the official Zoho Books documentation for HTML PDF Templates, there should be an option like: Settings →
Virtual Option for Fields
Hi, I would like to be able to choose another option other than Read-Only or Disabled, such as Virtual. And with Virtual, the field is shown on the form and avilable in rules, but NOT saved to the Database. A use case is having multiple Large Lists of
Prefix & Suffix on Single Line, Number, etc.
Hi, I would like to have the same Prefix and Suffix that was added to the Unique ID on Text and Number Fields. Use case could be as basic as temperature, as per another Idea I have to use Single Line (Text) for a number that might have leading zeros today,
Customer User Fields for use in Rules
Hi, I would like to be able to add custom fields to the users, such as Department or Role, which can then be used in Rules, Reports, etc. as a condition. A use case is limiting Global lists or Choices based on the users Custom Field, so one form can be
Locked out of MFA due to changing phones
I have been locked out of my Zoho Books account since i changed my mobile phone over. I can get the OTP through the ZOHO Books software but i cant confirm using my phone app as nothing appears to authorise. I need to know how to register/set up my new
👍 Zoho CRM's Notes now gets Reactions and a new look
Available in SA and JP DCs. Rolling out to other DCs in phases. Hello everyone, Notes help users capture important updates, collaborate with teammates, and maintain context for records. Now with Note Reactions, users can quickly acknowledge updates, express
All new Address Field in Zoho CRM: maintain structured and accurate address inputs
Availability Update: 29 September 2025: It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition exclusively for IN DC users. 2 March 2026: Available to users in all DCs except US and EU DC. 24
Zoho books and venmo
Hi, Is there a way to hook Venmo into zoho books? I have a Venmo business account and want to be able to sync that. I know you can do it with the paypal integration but I dont want to use paypal for the fees and that doesnt allow me use/integrate my current
Updating Unit Code for New Item Creation, Quote and Invoicing is so inconvenient
The Zoho Team has implemented many updates, but these updates should be optional. Before rolling out any new feature, they should already have a solution in place that allows users to remove or disable it if they choose not to use it. Just yesterday,
Payroll needs to automatically remit taxes, not just give me the calculations
Wagepoint, PayEvo, Waveapps, etc... All your competitors deposit employee payroll, but they ALSO remit taxes automatically. Get with the program, your Payroll app is extremely sparse.
Creating new Teams meeting from CRM doesn't enable Team functions in the meeting
Hi I'm trying to set up the meeting integration and I've seen that when I create a Meeting in the CRM and set the location to Online and the Provider to Teams, and complete the boxes, add a participant etc, whilst the meeting is created in Teams, the
Approval Process configuration is now more flexible and fully customizable
The Approval Process is back with an improved user experience designed to make it easier to build structured, flexible, and intuitive approval workflows. Here’s a look at some of the key enhancements: Name Your Rules & Stages You can now give each approval
Admin Logging in as another User
How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Latest Update (27th April 2026): With the early
Introducing Approval SLA for Approval Processes
Approvals can sometimes be delayed when approvers do not respond within the expected timeframe, which can slow down your recruitment processes. With the new Approval SLA in Zoho Recruit, you can set deadlines for approval requests and define automated
Introducing Microsoft Word Integration in Zoho Contracts
We are excited to announce a new feature that brings contract authoring and negotiation in your familiar environment — the Microsoft Word Integration. What This Integration Brings The Microsoft Word Integration connects Zoho Contracts with the Microsoft
Map My Client Locations for Zoho CRM Extension: Turn CRM Addresses Into Action
Hello everyone, Your CRM knows who your customers are. Now, see where they are on the interactive map directly from Zoho CRM. Introducing Map My Client Locations for Zoho CRM, an extension built for businesses that rely on sales visits, field service,
Scheduled and Automated Report Delivery from Zoho Projects
Zoho Projects has useful reports including task reports, timesheet summaries, and workload charts. However, there is currently no way to schedule these reports to be automatically delivered to stakeholders on a recurring basis. This means: Project managers
Collaborate Visually with Whiteboard in Zoho Projects
Whiteboard in Zoho Projects allows you to collaborate visually by creating diagrams, annotating designs, and sketching project workflows using shapes, text, and images within project modules. Team members can work simultaneously, improving productivity
Fields in MS-Word Template
With the new MS-Word integration, how does one create fields in an imported MS-Word document which can then automatically be populated with an Intake Form?
Zoho Bookings Flow Step not Triggering on Appointment booked
I noticed yesterday that my appointment booked flows were not triggering when we had booked appointments in Zoho Bookings. I checked the trigger and noticed the trigger values updated to be defined to a workspace and service event rather than our whole
UCP: Why We Killed the Multi-Portal Mess and Simplified Customer Self-Service
Let's talk about the multi-portal mess nobody wants to admit that it exists. Your customer needs an invoice from one app, wants a ticket update from another, and has a project waiting in a third, each behind its own login, its own UI, its own "was it
Zoho Tables is now available in Zoho One!
Hello Zoho One users, We’re excited to announce that Zoho Tables is now included as a part of Zoho One suite! As teams grow, managing projects, approvals, inventories, campaign trackers, and operational workflows across multiple spreadsheets become difficult.
Zoho Publish is now available in Zoho One!
Hello Zoho One users, We’re excited to announce that Zoho Publish is now included as part of the Zoho One suite! As businesses grow, managing Google Business Profiles across many locations becomes challenging. Business information needs to stay accurate,
📣 Ask the team behind Zoho SalesIQ: Summer '26 Q&A
Hi everyone! Following our recent webinars, Summer '26 Release: What's New in Zoho SalesIQ—where we walked you through all the new features, what they do, and how they work—and Driving the AI Evolution: Building Smarter Customer Experiences with Zoho
Upcoming update to field values in Zoho Books - Zoho Analytics integration
Hello Users, We'd like to inform you of an upcoming update to the tax_category values in the Zoho Books integration for Zoho Analytics from October 20, 2026. What's Changing? tax_category field values are being renamed to align with the conventions already
Announcing the new SKILL.md for Zoho CRM and the updated OAS repository!
We are introducing a new zoho-crm skill to make working with Zoho CRM Developer tools (like APIs, functions, widgets, client scripts, queries etc) easier and faster, with the help of AI in your preferred AI harness like Claude Code, Codex, Cursor, VSCode
Next Page