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

  1. Operational Efficiency: This custom solution eliminates the need for manual dashboard monitoring. Booking updates are automatically communicated to Cliq as they occur.
  2. Enhanced Customer Experience: Faster internal awareness leads to expedited confirmations, better-prepared staff, and a more seamless appointment experience.
  3. Centralized Communication: All booking activities are consolidated in the same Cliq channel your team uses daily, minimizing context switching and preventing information silos.
  4. 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 

  1. Go to the top-right corner of your profile and click on it.
  2. Select "Bots and Tools" from the dropdown menu.
  3. To create a new bot, click on "Create Bot" under the "Bots" section.
  4. Enter a name and description for your bot and ensure that channel configuration settings are enabled during setup.
  5. Finally, save the bot.

Step 2: Retrieve the bot webhook URL 

  1. Webhook tokens are listed in the Bots & Tools section along with other internal tools.
  2. When you access the webhook tokens module, you'll need to authenticate using two-factor authentication (2FA), verify your identity, and then click "Continue."
  3. After authenticating, you can create, edit, and manage your webhook tokens as needed.
  4. Generate a webhook token and retrieve the bot's webhook URL as instructed.
ⓘ Learn more about webhook tokens in Zoho Cliq.


Step 3: Generate Cliq bot incoming url  

To create the bot's incoming URL, combine the bot's endpoint with the webhook token.
  1. Navigate to the newly created bot and click on it. A pane will appear showing the bot's URL details.
  2. Copy your bot's incoming endpoint from this window and append your token to it:
  1. 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 


  1. Log in to Zoho Bookings.
  2. In the left panel, navigate to one of the following options:
    1. Workflows → Custom Workflows → Create New Workflow
    2. or Workflows → Create Workflow → Create New Workflow.
  3. If you chose Workflows → Custom Workflows → Create New Workflow, complete the following fields:
    1. Workflow Name: Enter a name for your workflow.
    2. Trigger When: Select "Booked."
    3. Occurrence: Choose "Immediately."
    4. Choose Service (e.g., IT Consulting): Select your Service.
    5. Perform Action: Select "Execute Custom Functions."
    6. Customize Template: Paste the following code. 
  4. In the template editor, paste the code, replacing "<bot incoming url>" with the full URL you created in the previous step. 
    1. bookingInfoMap = Map();
    2. bookingInfoMap.put("BookingInfo",bookingInfo);
    3. cliqWebhookTrigger = invokeurl
    4. [
    5. url : "<bot incoming url>"
    6. type :POST
    7. parameters:{"Book Details":bookingInfo} + ""
    8. headers:{"content-type":"application/json"}
    9. ];
    10. info cliqWebhookTrigger;
  5. 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   

  1. Head back to Cliq, locate the bot you created under the "Bots and Tools" section, and access its incoming webhook handler.
  2. The incoming webhook handler is designed to allow third-party services, such as Zoho Bookings, to post messages directly to your bot.
  3. Copy and paste the below code, then click "Save".
Note: You can customize the message format using the Message Builder.

Pre-requisites before scripting:
  1. 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.

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

  3. 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
  1. response = Map();
  2. info params;
  3. info headers;
  4. info body;
  5. bookingDetails = body.get("Book Details");
  6. info bookingDetails;
  7. bookingID = bookingDetails.get("booking_id");
  8. workspaceName = bookingDetails.get("workspace_name");
  9. customerEmail = bookingDetails.get("customer_email");
  10. startTime = bookingDetails.get("start_time");
  11. endTime = bookingDetails.get("end_time");
  12. timeZone = bookingDetails.get("time_zone");
  13. summaryUrl = bookingDetails.get("summary_url");
  14. responseMsgCard = {"text":"### 📅 New Appointment","card":{"theme":"modern-inline"},"slides":{{"type":"label","title":"Details","buttons": [
  15. {"label": "Open Summary","action": {"type": "open.url","data": {"web":summaryUrl}}}],"data":{{"🆔 Booking ID":bookingID},{"🏢 Workspace":workspaceName},{"📧Customer Email":customerEmail},{"🕒 Time":startTime + " - " + endTime},{"🌍 TZ":timeZone}}}}};
  16. info zoho.cliq.postToBot("<bot unique name>",responseMsgCard);
  17. //Post to your Bot
  18. info zoho.cliq.postToChannelAsBot("<Channel unique name>","<bot unique name>",responseMsgCard);
  19. //It will send to channel with bot permission.
  20. //--------------------------------- To set reminder -------------------------------//
  21. eventTimeZone = bookingDetails.get("time_zone");
  22. info eventTimeZone;
  23. userTimeZone = user.get("timezone");
  24. dateTimeObj = bookingDetails.get("start_time").toTime("dd-MMM-yyyy HH:mm:ss",eventTimeZone).toString("dd-MM-yyyy HH:mm:ss");
  25. info dateTimeObj;
  26. info dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",user.get("timezone")).subMinutes(60);
  27. datetime_30min_sub = dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",userTimeZone).subMinutes(30).toString("dd-MMM-yyyy HH:mm:ss",userTimeZone);
  28. datetime_60min_sub = dateTimeObj.toTime("dd-MM-yyyy HH:mm:ss",userTimeZone).subMinutes(60).toString("dd-MMM-yyyy HH:mm:ss",userTimeZone);
  29. info datetime_60min_sub+"datetime_60min_sub";
  30. info datetime_30min_sub+"datetime_30min_sub";
  31. secondsVal_60sec_before = datetime_60min_sub.unixEpoch(userTimeZone);
  32. secondsVal_30sec_before = datetime_30min_sub.unixEpoch(userTimeZone);
  33. info secondsVal_60sec_before;
  34. info secondsVal_30sec_before;
  35. reminderTimes = list();
  36. reminderTimes.add(secondsVal_60sec_before);
  37. reminderTimes.add(secondsVal_30sec_before);
  38. for each  reminderTime in reminderTimes
  39. {
  40. param = Map();
  41. content = "Zoho Bookings Reminder : " + bookingID;
  42. param.put("content",content);
  43. param.put("time",reminderTime);
  44. chatidsList = list();
  45. chatidsList.add("<Bot chat id>");
  46. param.put("chat_ids",chatidsList);
  47. createReminder = invokeurl
  48. [
  49. url :"https://cliq.zoho.com/api/v2/reminders"
  50. type :POST
  51. parameters:param + ""
  52. connection:"<your connection name>"
  53. ];
  54. info createReminder;
  55. }
  56. 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.
    • Sticky Posts

    • Zoho Cliq REST APIs v3 : A complete guide to what's changed and why 

      APIs are not just consumed by a developer with numerous automations and a series of open browser tabs. They are parsed by LLMs, fed into agent pipelines, and auto-completed by AI coding assistants that have zero tolerance for inconsistency. A verb tucked
    • Cliq Bots - Post message to a bot using the command line!

      If you had read our post on how to post a message to a channel in a simple one-line command, then this sure is a piece of cake for you guys! For those of you, who are reading this for the first time, don't worry! Just read on. This post is all about how
    • Automating Real-Time Zoho Bookings Alerts in Zoho Cliq

      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
    • Add Claude in Zoho Cliq

      Let’s add a real AI assistant powered by Claude to your workspace this week, that your team can chat with, ask questions, and act on conversations to run AI actions on. This guide walks you through exactly how to do it, step by step, with all the code
    • Automate attendance tracking with Zoho Cliq Developer Platform

      I wish remote work were permanently mandated so we could join work calls from a movie theatre or even while skydiving! But wait, it's time to wake up! The alarm has snoozed twice, and your team has already logged on for the day. Keeping tabs on attendance
    • Recent Topics

    • I need help lease Email

      I' not getting an email replay when someone open a ticket
    • Sigma function call hangs forever from Desk widget — app_install_id/encapiKey are null

      Calling ZOHODESK.request() from the widget to invoke a Sigma DRE function URL hangs forever (never resolves, never rejects, no error) until client timeout. Tried with merge fields app_install_id={{sigmaInstallId}}/{{installationId}} and encapiKey={{enCapApiKey}}
    • Draft quotes, sales orders, and raise invoices for services in CRM

      Create Quotes, Sales Orders, and Invoices for Services in Zoho CRM You can now draft Quotes, and Sales Orders as well as raise Invoices for services in Zoho CRM. And how is that possible? By filling out the Service subform in your Quotes, Sales Orders
    • Error Code 2945 , PATTERN_NOT_MATCHED

      Hi, I am trying out Zoho Creator API.  However, I always get the following <response>     <code>2945</code>     <message>PATTERN_NOT_MATCHED</message> </response> However, error code list error as Invalid Ticket. I do not know what is wrong. 
    • Canva Integration

      Hello! As many marketing departments are streamlining their teams, many have begun utilizing Canva for all design mockups and approvals prior to its integration into Marketing automation software. While Zoho Social has this integration already accomplished,
    • Action Required: Allowlist New IP Ranges for the EU Data Center

      Dear Users, We are adding new IP ranges for the Zoho Analytics EU data center (https://analytics.zoho.eu) If you connect Zoho Analytics to cloud databases (both Live Connect and import), such as Amazon RDS, Amazon Redshift, or Microsoft Azure, you must
    • Tips & Tricks #3: Zoho CRM - Agentes en la página de inicio

      Hola a todos, Vuestros Agentes realizan un trabajo muy útil. Encuentran información como clientes potenciales importantes, oportunidades de venta y actualizaciones relevantes. Sin embargo, hasta ahora no era posible ver esa información directamente en
    • Automating CRM backup storage?

      Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
    • 'Pinned' notes feature of a pipeline record

      Hi team, Could you please implement a feature which will allow users to pin different notes so that they will appear at the very top of the notes tab in a pipeline record. Sometimes we have a wide range of notes on a record which means more important
    • Associate emails from both primary and secondary contacts to deal

      We need to associate emails from multiple contacts to a deal. Please advise how this can be achieved. At present, only emails from primary contacts can be associated. Thanks
    • Custom Button Creation from Layout Editor in Zoho CRM

      Hello All, Buttons in Zoho CRM act as triggers that perform a specific action when clicked. Zoho CRM includes a set of system buttons that help you carry out common actions with a single click. Beyond these, your organization can create custom buttons
    • #PitStop3: Share & Collect Payment using Zoho Invoice

      We have reached another milestone in our journey. Post #15 to #20 weren't just about sharing invoices, they were about building a payment workflow that works for you, your customers and your business. Here's a quick wrap of what we covered in this segment:
    • Suggestions for Improving the Deluge Development Experience

      Hello, I would like to share some ideas that could significantly improve the Deluge development experience, especially for partners and developers building larger solutions across the Zoho ecosystem. Some key areas that would add a lot of value: Deluge
    • Enhancement announcement: Mitigate mailbox clutter using the new field: "Sync emails from"

      Dear Customers, We hope you're well! We are here with a minor enhancement in email integration in Zoho CRM. Emails have become the primary mode of communication these days. Because of which mailboxes are getting overly cluttered day after day. To help
    • Zoho CRM Sandbox now supports integrations

      Hello everyone, We are now expanding Zoho CRM Sandbox to support integrations with other Zoho products. You can connect, configure, and validate the behavior of your integrated tools within a safe, isolated environment - testing end-to-end without touching
    • Building Toppings #8 - Using widgets to extend the Bigin UI

      Hello Biginners, In our previous forum post, we explored schedules and workflow functions and learned how to automate real-time and time-based actions inside a topping. In this post we'll look at how to embed custom UI components inside Bigin using widgets.
    • Tip #81 – Turn every session into a story with Session Highlights – 'Insider Insights'

      Hello Zoho Assist Community! Picture this: your team wraps up dozens of remote support sessions every week. Each one involved troubleshooting, tools, fixes, and back-and-forth with customers. But when it's time to review what actually happened across
    • Zoho CRM APIs

      Hello, I think as a developer, it is very important to have the ability to manage, develop, and execute functions directly from my local development environment (for example, VS Code). Zoho CRM should have a way to create, deploy, and manage functions
    • 🎙️ Ask The Experts: Get Your Bigin Questions Answered Live

      We've seen so many thoughtful questions from our #BiginnersClub community over the years. While we're always happy to help here, we're excited to introduce a new way for you to connect with us directly. Join us for Ask The Experts, a one-hour live fireside
    • Postcode problems

      So we were very pleased to see we could limit shipping with postcodes. Brilliant. Unfortunately we have discovered It does not seem fit for purpose. In the UK we write postcodes in various ways Examples BH217NL BH21 7NL Bh217nl bh217NL and many more ways
    • Certain items certain shipping

      Me again it would be helpful to have different shipping for different categories. Our example are salt. Delivery is free but have a minimum delivery. Pickup is cheaper so it has its own category- pickup.
    • Cookies Consent Management in Webforms

      Hello Everyone! We are excited to introduce Cookie Consent Management for webforms. Read on to learn more. Webforms are online forms embedded on websites that allow users to submit data and create records in Zoho CRM. These forms utilize cookies to track
    • Payment links in Bigin just got supercharged

      Greetings, We're happy to announce major enhancements to the Payments feature in Bigin. As you may already know, Bigin supports Payments integration, which enables you to create and send payment links directly from Bigin to your customers. It also allows
    • Disable Spam filter

      Hi Support Team, Please disable spam filter for https://desk.zoho.in/support/keboli. Some spam ticket ids: #102, #103, #104
    • I just signed up

      Hi, I have just signed up for the domain griffithcgenterprises.com. I would like to make two adjustments: If possible, I would prefer a 5 GB hosting/email plan instead of the current 10 GB option, as I believe that should be sufficient for my needs at
    • History tab stuck loading indefinitely on Android (v2.22.0)

      History tab stuck loading indefinitely on Android (v2.22.0) — server returns 500 on visitorhistoryviews Hi all, I'm running into an issue where the History tab in the SalesIQ Android app (v2.22.0) never loads — it just spins indefinitely. Screenshots
    • Não consigo enviar e receber e-mail

      Estou tendo problema de envio e recebimento de e-mail (meu e-mail é ands....lisi.com.br) Esta mensagem foi criada automaticamente pelo software de entrega de e-mails. Uma mensagem que você enviou não pôde ser entregue a um ou mais destinatários. Este
    • إلغاء الإشتراك

      أريد إلغاء الإشتراك نهائياً.
    • Opening two notes at once in the Mac app

      Just like the title says - I want two notes open the same time on my Mac Air. AI search seems to think I have the option to open one window, then click on a second one. But of course if one window is open I can't see the others. It also recommended using
    • Introducing the Employee Portal for internal job posting

      Employee referrals and internal applications are one of the most trusted hiring channels. But in many organizations, employees only hear about openings through messages, word of mouth, or after the role has already been open for a while. When employees
    • Department Customization Copy/Paste

      Hello! I love the new customization of the layouts, rules and templates! However, we have several "departments" that operate similar and as I'm updating either ticket layout or workflow rules, I'm finding that I have to do it in each department. I would
    • How do you import mail from Thunderbird into ZOHO mail

      Hi, We have Thunderbird on our Apple Macs and want to transfer the emails from this to our shiny new Zoho mail account. I know using Outlook on a PC you can zip the .eml files up and upload them into specific folders on your ZOHO mail account using this form: mail.zoho.com/mail/jsp/importFolder.jsp However as Thunderbird use mbox files I'm not sure how to do it. Can anyone let me know if they have migrated mail from Thunderbird to Zoho mail and how they did it. I have many folders and emails to transfer
    • How to Open .mbox file in Gmail with Attachments?

      Gmail offer users to backup INBOX folder in .mbox file format via Google Takeout Feature. Howver there is no such option to Restore Gmail MBOX. Thus I would like to suggest you to choose an alternate approach i.e. MBOX to Gmail Wizard. This utility will open .mbox file in Gmail with attachments.  Steps to open MBOX file in Gmail are; Run MBOX to Gmail Wizard Click Add File and add .mbox file. Enter your Gmail login credentials. Click Convert button. Finished! This is how you can open MBOX file in
    • Poor Zoho Support

      Been trying to reach support via telephone and email. The support has always been slow to respond but now its been two weeks without a return call. I have even sent them screen shots of the problem I've having with no results. Is anyone had the same problem.
    • Desk Contact Name > split to First and Last name

      I am new to Zoho and while setting up the Desk and Help Center, I saw that new tickets created or submitted from the Help Center used the Contact Name field. This would create a new Contact but put the person's name in the Last Name field only. The First
    • SalesIQ operators will not receive any messages if customers do not answer the Pre-Chat questions in Flow Controls.

      Hi Zoho SalesIQ Team, I am reaching out to report a issue regarding the Brands > Flow Controls SalesIQ operators will not receive any messages if customers do not answer the Pre-Chat questions in Flow Controls and continue sending messages without completing
    • Add Comprehensive Accessibility Features to Zoho Writer

      Hello Zoho Writer Team, We hope you are doing well. We would like to submit a feature request to enhance Zoho Writer with a full set of accessibility tools, similar to the accessibility options already available in the Zoho Desk agent interface. 🚧 Current
    • Copying a Document with its Citations

      When I copy a document that contains citations using File>Make a Copy from the document's menu the text copies but the citations do not (according to Google they should). Is this the correct way to make a complete copy of a document with its citations
    • Bing ads integration and tracking

      Hi, Is there any way to track Bing ads in the same way that we are able to track google adwords?  It is important for us to be able to determine the conversion rate of our Bing ads.  If this is not possible now, will this feature be added in the future?
    • #20 Your Business Shouldn't Stop Just Because You Do

      Imagine you are on a well-deserved vacation. Your clients are expecting invoices at the beginning of the month, recurring customers are due for billing, and payments are still coming in. Do you carry your laptop everywhere, hoping you don't miss a billing
    • Next Page