Accelerate Github code reviews with Zoho Cliq Platform's link handlers

Accelerate Github code reviews with Zoho Cliq Platform's link handlers



Code reviews are critical, and they can get buried in conversations or lost when using multiple tools. With the Cliq Platform's link handlers, let's transform shared Github pull request links into interactive, real-time code reviews on channels. Share PR links in any reviewer groups or channels to get approval or receive review comments instantly.

Pre-requisites:

  • Connection creation :

  • Creation of form function

    • To create a form function, navigate to Bots & Tools and select "Functions."

    • On the right side, click "Create Function" and name it "addCommentPullRequest."

    • Set the Function Type to "Form." The purpose of this function will be explained in Step 4.

Step 1: Create an extension and add a link handler

  • After successfully logging into Cliq, hover over the top right corner and click on your profile. Then navigate to Bots & Tools > My Extensions.
  • On the right side, click the Create Extension button.
  • To learn more about extensions and their purposes, refer to the Introduction to Extensions.
  • Create an extension using your preferred name. Please specify the following details: the extension name, a description (to help users understand the extension's purpose), and an image to identify it.
  • Under the link handlers section, enter github.com to configure the extension to preview links for that domain.
  • Bundle the newly created form function - addCommentPullRequest, as it is mandatory to include at least one component to an extension, and then click Create.

 

Step 2: Configuring the preview handler

  • After creating an extension, a popup will appear that provides an overview, which includes information about the extension. It will also list the connectors, showing the components bundled with the extension and their associated app keys.
  • Additionally, handlers will allow you to configure access, customize settings, and manage links within the extension.
  • Navigate to handlers, scroll down, and under link handlers, hover over to preview handler.

  • The Preview Handler expands a rich response when a URL is shared in a conversation. Click edit code and copy and paste the script below.
Script
  1. pullRequest_url = url;
  2. owner = pullRequest_url.getSuffix(".com/").getPrefix("/");
  3. pullRequest_ID = pullRequest_url.substring(pullRequest_url.lastIndexOf("/pull/") + 6);
  4. repositoryName = pullRequest_url.substring(pullRequest_url.indexOf("github.com/") + 11,pullRequest_url.lastIndexOf("/pull/"));
  5. // Fetch PR details from GitHub API
  6. getPRDetails = invokeurl
  7. [
  8. url :"https://api.github.com/repos/" + repositoryName + "/pulls/" + pullRequest_ID
  9. type :GET
  10. connection:"githubforcliq"
  11. ];
  12. // Parse API response
  13. pr_title = getPRDetails.get("title");
  14. pr_author = getPRDetails.get("user").get("login");
  15. changed_files = getPRDetails.get("changed_files");
  16. arguments = Map();
  17. arguments.put("pullRequest_ID",pullRequest_ID);
  18. arguments.put("repositoryName",repositoryName);
  19. arguments.put("owner",owner);
  20. arguments.put("pr_title",pr_title);
  21. arguments.put("pr_author",pr_author);
  22. arguments.put("changed_files",changed_files);
  23. // Build preview response
  24. response = {"title":"Pull Request -" + pr_title,"type":"link","provider_url":pullRequest_url,"faviconlink":"https://zoho.com/sites/default/files/cliq/images/githubmark.png","thumbnail_url":"https://zoho.com/sites/default/files/cliq/images/githubmark.png","fields":{"data":{{"label":"Author","value":pr_author},{"label":"Files Changed","value":changed_files}}},"actions":{{"hint":"Approve a pull request instantly","style":"+","label":"Approve","type":"button","params":arguments},{"hint":"Add review comments to the pull request","label":"Add a comment","type":"button","params":arguments}}};
  25. return response;

Step 3: Configuring the action handler

  • We have refined the response of the pull request URL when it is shared in a Cliq conversation. Now, we need to define the actions to be performed when the buttons in the unfurled response are clicked.
  • This can be configured in the action handler. To locate it, navigate to the extension handlers. Scroll down to find the link handlers section, then hover over to the action handler.
  • The action handler executes actions when the buttons in the unfurled card are clicked. Click "Edit Code" and copy and paste the script below.
Script
  1. label = target.get("label");
  2. pullRequest_ID = target.get("params").get("pullRequest_ID");
  3. repositoryName = target.get("params").get("repositoryName");
  4. owner = target.get("params").get("owner");
  5. response = Map();
  6. if(label.equals("Approve"))
  7. {
  8. params = Map();
  9. params.put("event","APPROVE");
  10. headers = Map();
  11. headers.put("Content-Type","application/json");
  12. approvePullRequest = invokeurl
  13. [
  14. url :"https://api.github.com/repos/" + owner + "/" + repositoryName.getSuffix("/") + "/pulls/" + pullRequest_ID + "/reviews"
  15. type :POST
  16. parameters:params + ""
  17. headers:headers
  18. detailed:true
  19. connection:"githubforcliq"
  20. ];
  21. info approvePullRequest;
  22. responseCode = approvePullRequest.get("responseCode");
  23. if(responseCode == 200)
  24. {
  25. pull_request_url = approvePullRequest.get("responseText").get("pull_request_url");
  26. pr_title = target.get("params").get("pr_title");
  27. pr_author = target.get("params").get("pr_author");
  28. changed_files = target.get("params").get("changed_files");
  29. response = {"card":{"title":"✅ Pull Request Approved","theme":"modern-inline"},"buttons":{{"label":"View Pull Request","hint":"","type":"+","action":{"type":"open.url","data":{"web":pull_request_url}}}},"text":"*Pull Request* :" + pr_title + "\n*Author* : " + pr_author + "\n*Files changed*:" + changed_files};
  30. return response;
  31. }
  32. else
  33. {
  34. banner = {"text":"Pull request approval failed!","status":"failure","type":"banner"};
  35. return banner;
  36. }
  37. }
  38. else
  39. {
  40. return {"type":"form","title":"Add Review Comment","name":"addComment","button_label":"Add","inputs":{{"label":"Review Comment","name":"comment","placeholder":"Leave a note for the author or your team","min_length":"0","max_length":"500","mandatory":true,"type":"textarea"},{"name":"pullRequest_ID","value":pullRequest_ID,"type":"hidden"},{"name":"repositoryName","value":repositoryName,"type":"hidden"},{"name":"owner","value":owner,"type":"hidden"}},"action":{"type":"invoke.function","name":"addCommentPullRequest"}};
  41. }
  42. return Map();
 

Step 4: Handling the form submit handler to add comments to a pull request

  • When clicking the "Add a comment" button, a form will be triggered to allow users to add comments in the specified multi-line input text field. This form should be submitted using the form functions in Cliq.
  • To create this function, navigate to Bots & Tools > Functions. On the right side, click "Create Function" and name the function "addCommentPullRequest." Choose the Function Type as "Form."
  • After that, click "Save & Edit Code" and paste the script provided below. 
Script : addCommentPullRequest - Form Submit Handler
  1. response = Map();
  2. formValues = form.get("values");
  3. pullRequest_ID = formValues.get("pullRequest_ID");
  4. repositoryName = formValues.get("repositoryName");
  5. owner = formValues.get("owner");
  6. comment = formValues.get("comment");
  7. params = Map();
  8. params.put("body",comment);
  9. params.put("event","COMMENT");
  10. headers = Map();
  11. headers.put("Content-Type","application/json");
  12. addComment = invokeurl
  13. [
  14. url :"https://api.github.com/repos/" + owner + "/" + repositoryName.getSuffix("/") + "/pulls/" + pullRequest_ID + "/reviews"
  15. type :POST
  16. parameters:params + ""
  17. headers:headers
  18. detailed:true
  19. connection:"githubforcliq"
  20. ];
  21. info addComment;
  22. responseCode = addComment.get("responseCode");
  23. if(responseCode == 200)
  24. {
  25. banner = {"text":"Comment added to the pull request","status":"success","type":"banner"};
  26. return banner;
  27. }
  28. else
  29. {
  30. banner = {"text":"Unable to add review comments!","status":"failure","type":"banner"};
  31. return banner;
  32. }
  33. return Map(); 

Note :

You need to configure the app link to get a rich, unfurled response for the GitHub PR links posted in any chat. Refer to the link below to configure the unfurl link in Zoho Cliq.

🔄 Workflow explanation  

With this custom solution, GitHub Pull Requests can be shared instantly in any chat, group, or channel to get them reviewed by designated reviewers or top collaborators of the repository.
 

💼 Business benefits  

  • Faster review cycles – Reduces turnaround time by bringing PRs directly into team conversations.
  • Improved code quality – Promotes timely feedback from key collaborators and senior reviewers.
  • Increased developer visibility – Ensures pull requests don’t go unnoticed or remain idle.
  • Streamlined collaboration – Centralizes communication around code changes, reducing context-switching. 
No more gaps between the coding lifecycle and collaboration. Implementing rich previews for GitHub pull requests speeds up the development process, leading to better visibility, quicker feedback, and more substantial code ownership.

We're here to help, so don't hesitate to reach out to support@zohocliq.com with any questions or if you need assistance in crafting even more tailored workflows.


      • Sticky Posts

      • 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
      • 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
      • 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
      • Customer payment alerts in Zoho Cliq

        For businesses that depend on cash flow, payment updates are essential for operational decision-making and go beyond simple accounting entries. The sales team needs to be notified when invoices are cleared so that upcoming orders can be released. In contrast,

        • Recent Topics

        • Zoho rejecting external email – “Email policy violation detected”

          Hello, I was informed by external senders that their emails to my addresses were rejected by Zoho Mail. The emails were sent from external domains (including pfms.ba.gov.br domains), not from my own domain. However, Zoho rejected the messages with the
        • unable to log in on iphone and unable to log in one auth

          im unable to log in to my mobile
        • Tip #48: An exclusive system for risk management

          Zoho Sprints' risk management feature gives teams a structured, industry-grade system for identifying, quantifying, and mitigating risks to eliminate probable impact. Project or product teams that run on Zoho Sprints might be using sprints, work items,
        • Follow-Up: No Response to Previous Inquiry on Workplace Plan Scalability

          I have previously sent a few emails to your support address but have not received any response. I am unsure whether my messages are being delivered successfully or possibly filtered as spam. My most recent inquiry was regarding clarification on user scalability
        • Unable to receive any email

          Hello I have several problems. I am unable to receive any emails sent to my Zoho account. Also, when I send an email, my account appears in the spam folder, and my profile picture doesn't appear; instead, a question mark appears.
        • Block opening tickets vía email DESK

          Hello, I want to block the functionality of opening tickets when someone send an email to our support email address. Actually everybody in the world can open a ticket in our systen just sending an email to our support email address I don´t want this feature!!!! Please help! Thank you, Unai
        • Zoho Books | Product updates | May 2026

          Hello users, We're back with the latest updates and enhancements we've rolled out in Zoho Books. From sales tax automation to scanning receipts for free, explore the updates designed to upgrade your bookkeeping experience. Sales Tax Automation [US & Canada
        • Edit a previous reconciliation

          I realized that during my March bank reconciliation, I chose the wrong check to reconcile (they were for the same amount on the same date, I just chose the wrong check to reconcile). So now, the incorrect check is showing as un-reconciled. Is there any way I can edit a previous reconciliation (this is 7 months ago) so I can adjust the check that was reconciled? The amounts are exactly the same and it won't change my ending balance.
        • Not able to receive mails

          Am able to send mails. But not able to receive. The mail bounces back saying Your message wasn't delivered because the address couldn't be found, or is unable to receive mail.
        • Loading Zoho Webmail

          Zoho Webmail don't work. Yesterday webmail works in the same web browser (Firefox). Webmail works on google chrome. Try to repair for Firefox.
        • Account blocked

          My account contato@fernandovarella.com.br was blocked due to suspicious login activity. I am the owner of the account and domain. Please unblock web access and outgoing mail.
        • Can anyone tell me my setup right or wrong?

          Tell me about this, my root domain not receive mails from other senders, only receiving from mails connected with zoho network , i have to need sender.net camp... also For MX MX | dandakaranya.com | mx3.zoho.in | 50 | Auto MX | dandakaranya.com | mx2.zoho.in
        • Cannot sign up customer for Zoho Mail

          I tried last morning to sign up a customer for Zoho Mail, but it says it is unable to create the account right now. I contacted the support, but did not get any response yet. I am located in Iceland, if that helps. Anyone else experiencing this as well?
        • Subject: Issue creating temporary mailbox due to OTP verification requirement

          Hello Zoho Mail Support, We are following your recommended approach for email migration and need clarification on how to proceed correctly. Our intended migration approach is: Create a temporary mailbox katja.migration@nellajanuttu.fi Copy all emails
        • Zoho Webinar - Sharing System Audio (NOT AVAILABLE)

          Hi, We are having a serious problem with Zoho Webinar. In the webinars we run, we very often share the audio from a video we are streaming directly from YouTube or other applications. Until recently we were using Zoom, but as we use other Zoho applications
        • The response from the remote server was: 554 5.7.1 : Relay access denied

          Team I am getting the below error when i send email from gmail to my zoho email. I am receiving few emails from other domains. Can you please verify attached config and let me know how to fix this issue ?
        • Zoho mail not working from yesterday

          Zoho mail for server ninjamedia.in not working from yesterday. Please look into it. Error
        • First Response Time, Where to find?

          Hi Currently I'm building a feeder file that auto-fetch ticket details when created/updated. On my table headers, apart from custom fields, I'm specifically looking for First response time. Currently I'm checking capabilities using Zoho Flow but couldn't
        • Issue with Zoho Emails Going to Spam Despite Verified DNS Records

          Dear Zoho Support Team, I am writing to report an issue with my Zoho email account. All emails sent from my domain are consistently being delivered to recipients' spam folders, even though all required DNS records have been correctly configured and verified.
        • Delink of mail id from one auth

          Hi , Please help me to do delink my email id from one auth , the phone is not supporting the higher version i would like to have options with ease process Please help and unable to view the inbox due to the same issues Regards Rekha
        • Outgoing blocked for almost a week – ticket #2472334 – no response yet

          Hi, My Zoho Mail account has been blocked for outgoing messages due to “unusual activity.” The reason is that I forwarded all of the messages from my website contact form (95% spam) from my ZOHO to my personal Gmail. I submitted a support request (Ticket
        • Límite archivo adjunto

          Buenos días Actualmente tengo el plan mail lite, 7 usuarios de 10gb de almacenamiento para correos, quisiera saber cuáles son los límites para adjuntar un archivo adjunto, exceptuando la opción de archivo pesado, ya que últimamente tengo problemas para
        • How to prevent users from switching price lists in an order?

          Hi, I have Zoho Finance integrated with Zoho CRM. My team will be placing orders through the CRM using the Finance module. When creating a new customer I will assign it a price list, I don't want the sales rep to switch to a different Price List, other
        • Undelivered Mail uncategorized-bounce errors when sending invoices

          Recently we have been getting Undelivered Mail bounce notification when sending invoices. Reason: uncategorized-bounce Some go through no problem some bounce back. We recently sent 10 invoices, 6 received bounce notifications. After reaching out to the
        • Unable to activate orphaned accounts on a existing domain.

          When I attempt to tag this customer through the partner portal, the Check Availability step first indicates the email is available, but on submission returns this error: "This user does not have account in this service or this user is not an admin. Please
        • Ability to Edit the "Current Job Title" dropdown field

          Current experience/Issue: When a user (candidate) uploads resume to Zoho Recruit candidate portal, some fields are prefilled with the info from the resume/cv correctly. However, we've observed that; 1. the "Current Job Title" dropdown field is usually
        • Unable to Add Users - Zoho Mail Restriction

          I am trying to add new users to my Zoho Mail organization, but I am getting the error: "This user is not allowed to add." We are a legitimate business using Zoho Mail for email hosting only. Our company is based in Saudi Arabia, and we may be accessing
        • Bigin Forms Enhancement: Acknowledge visitors via WhatsApp

          Greetings, We hope all of you are doing well! We're excited to share a new enhancement to Bigin's forms. Let's take a look at it in detail. Acknowledge visitors via WhatsApp The Acknowledge Visitor option in Bigin Forms means visitors receive an instant
        • Integrate your Outlook/ Office 365 inbox with Zoho CRM via Graph API

          Hello folks, In addition to the existing IMAP and POP options, you can now integrate your Outlook/Office 365 inbox with Zoho CRM via Graph API. Why did we add this option? Microsoft Graph API offers a single endpoint to access data from across Microsoft’s
        • 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
        • No Ability to Rename Record Template PDFs in SendMail Task

          As highlighted previously in this post, we still have to deal with the limitation of not being able to rename a record template when sent as a PDF using the SendMail Task. This creates unnecessary complexity for what should be a simple operation, and
        • Zoho Customer Grievance Escalations Matrix

          We have been with Zoho for little over a 24 months having several licenses for Zoho One and with standalone license for Zoho Commerce Advanced Plan along with their so called "Premium Support" for which they charge you a pretty hefty amount. It's been
        • Switch between multiple LLMs instantly for tailored Zia experiences

          Availability Editions: Professional , Enterprise, Ultimate , CRMPlus , ZohoOne Release Plan: Available for all DCs Hello everyone. Earlier, the Multi-LLM feature supported only one LLM at a time for Zia Record Assistant bot restricting flexibility from
        • Data entry and automatic barcode sticker printing

          Hello there I am very new to Zoho.. and not sure if it can do, or should I say, I can easily set it up to do, or first basic requirement. We take in up to 1000 unique used products every week. They come from up to 50 regular suppliers. The are used household appliances. We try to fix most of them. For waste regulation purposes we have to track every machine from the source/supplier it cam from to if it was repaired and put back on the market? or stripped and scrap for material recovery. Is it possible
        • Inventory Barcode Creation - Add Picture of Item

          Hi I am trying to set up bar code labels and include a picture of the item on the label - any idea on how to add that field to the barcode generator?
        • Setting up a barcode system with Zoho Creator

          Hello! I am researching how to set up a barcode inventory system that is compatible with Zoho Creator. I am working with an art inventory, and I want to be able to refer to each piece of artwork with a barcode. My goal is to be able to generate a barcode, store that barcode in a Zoho Creator database, be able to print out a barcode label from that database, and have the database pull up a record when the barcode associated with that record is scanned. I understand that there are barcode generating
        • New Built In QR/Barcode Generator Print Settings

          I'm trying out the new QR/Barcode generator field in Creator. I would think most people will want to print these, like I do. I am not seeing any way to control the height or width of the barcode for printing (inside the print/pdf template builder). The
        • Inventory SKU barcode printing

          Hi I am a developer and am wondering if zoho creator or even zoho inventory have the capability to print barcodes upon submitting a form. I have been researching the forums and have not been able to find any way to do this natively in Zoho. Can someone
        • PRODUCT LABEL MUST HAVE MORE FIELDS AND OPTIONS - VOTE NOW!

          The Zoho Inventory Product Barcode generator is unfinished, very limited, and unusable for most companies that need to generate informative product labels. Companies must be able to generate labels for products they receive to control inventory, so the
        • Ability to "Add Additional Guest" to Bookings

          When using other calendar booking services such as Calendly, there is an option to "Add Additional Guest" to a booking. For example, imagine User A is making a booking on my company's booking calendar and would like to invite their spouse (User B) to
        • Next Page