
Howdy, innovators!
Welcome back to a fresh week of Kaizen.
This week, we will delve into configuring a
Settings widget in Zoho CRM for the effective functioning of
extensions. It centralizes around key configurations that will be carried out to various integrations in an extension. A user-friendly settings widget enhances the usability and flexibility of your extensions.
Why use a Settings Widget?
A Settings Widget plays a crucial role in making extensions user-friendly and adaptable to specific business needs. Following are a few key advantages of using the settings widget:
- Seamless Setup Post-Installation: Users can configure critical parameters right after installing the extension.
- Dynamic Customization: Users can revisit and modify configurations at any time, ensuring that the extension adapts to changing needs without re-installation or development
- Improved User Experience: Allows the end-users to control how the extension interacts with their workflows and data.
- Enhanced Control: Provides an overview and centralized control, making maintenance, troubleshooting, and updates simpler and faster.
Business Scenario: Notification Settings for Lead Import Extension
Let’s take a real-world use case to understand the value of this settings widget.
Imagine an organization named Zylker, using Zoho CRM along with a lead import extension. This extension pulls in leads from multiple sources like web forms, social media, or third-party marketing tools.
Requirement
Whenever a new lead enters a Zoho CRM organization through this extension, the sales team wants to receive an instant notification on a specific Zoho Cliq channel for that organization. This ensures they never miss a lead.
Solution
By adding a Settings Widget to the extension, users can:
> Select a Preferred Zoho Cliq Channel: From the settings page, users can choose the channel where notifications should be sent.
> Modify the Channel Anytime: Based on team restructuring or communication preferences, users can revisit the settings and update the channel as needed.
With this setup, the settings widget becomes the control center, ensuring the efficient functioning of both the extension and the sales process.
Building a Settings Extension Widget
Let us create a sample settings widget for the above business scenario.
Create a Private Extension Widget
1. Log into Zoho CRM, navigate to Setup > Marketplace > Extension Builder, and create a new extension by selecting Zoho CRM as the service.
2. The private extension that you have created will be listed in the Extensions page. Choose your extension and click the edit icon.
Dependency Configuration
Now, let us configure a couple of dependencies required for this use case in the developer console.
Connectors
To notify a Zoho Cliq channel,
Connectors authorize the end user's Zoho Cliq account with the extension and grant access to the necessary data. Follow these steps to create a connector with the required APIs for the widget.
3. In the console, navigate to Utilities > Connectors on the left-side menu.
4. Click
Create Connector and provide the required details using the guidance available on the
Server-based Application help page.
5. Use the generated
Redirect URL to register your application in
Zoho's API Console. After registration, enter the Client ID and Client Secret in the developer console.
6. Create Connector APIs for the following:
- GET List of all Channels to fetch all the available channels from your Zoho Cliq Account.

The Authorization header is automatically added to all the Connector APIs. - POST Message in Channel to notify the incoming leads in the channel.

You can include dynamic place holders in the URL, header, or request body using this format ${place_holder}.
7. Once the APIs are configured, publish and associate the connector with the extension.
Variable
Variables are required to store the admin's preferred channel details and retrieve them when a lead enters Zoho CRM through the extension. Upon installing the extension, this variable is automatically created in your Zoho CRM org.
8. Go to Build > Custom Properties and create a variable.
Set the variable's permission to Hidden to prevent the CRM users from accessing/modifying the variable data from the Zoho CRM Variables page. This ensures that variables can only be configured through the extension.

Tip
In your Zoho CRM, go to Setup > Security Control > Profiles and restrict permissions for your extension to prevent unauthorized access to the settings page.
Building a Connected App
9. In the console, go to Utilities > Connected Apps on the left-side menu.
10. Follow the steps provided in this
kaizen to create a new Zoho CRM widget for this use case.
Code Logic for the Settings Panel
- Create a drop-down field called Select Cliq Channel to the settings panel. This dropdown should dynamically list the channels from your Zoho Cliq account by invoking the GET Cliq Channels API. Follow the given Invoke Connector method to execute Connector APIs.
// Initialize Zoho Embed SDK ZOHO.embeddedApp.on("PageLoad", function () { fetchCliqChannels(); });
ZOHO.embeddedApp.init();
// Fetch Cliq channels async function fetchCliqChannels() { const channelDropdown = document.getElementById("cliqChannel"); try { console.log("Fetching channels from Zoho Cliq..."); const req_data = { "parameters": {} }; const response = await ZOHO.CRM.CONNECTOR.invokeAPI("leadgeneration.zohocliq.listofallchannels", req_data); console.log("Response from Zoho Cliq:", response); const parsedResponse = JSON.parse(response.response); const channels = parsedResponse.channels; if (channels && Array.isArray(channels)) { channelDropdown.innerHTML = channels.map(channel => `<option value="${channel.unique_name}">${channel.name}</option>`).join(''); } else { throw new Error("Invalid response structure"); } } catch (error) { console.error("Error fetching channels:", error); if (error.code === '403') { console.error("Authorization Exception: Please check your API permissions and authentication."); } channelDropdown.innerHTML = '<option value="">Failed to load channels</option>'; } } |
- Add a Save Configuration button that stores the selected channel name and channel ID in the variable created earlier. To save the selected data into the variable, use the invokeAPI() function, with the namespace as crm.set.
// Save configuration async function saveConfiguration(event) { event.preventDefault(); const channelDropdown = document.getElementById("cliqChannel"); const selectedChannelUniqueName = channelDropdown.value; const selectedChannelName = channelDropdown.options[channelDropdown.selectedIndex].text;
if (!selectedChannelUniqueName) { alert("Please select a channel."); return; }
const settings = { unique_name: selectedChannelUniqueName, name: selectedChannelName };
const data = { "apiname": "leadgeneration__Cliq_Channel", "value": JSON.stringify(settings) };
try { const response = await ZOHO.CRM.CONNECTOR.invokeAPI("crm.set", data); console.log("Updated settings:", response); document.getElementById("setupStatus").innerText = "Configuration saved successfully!"; } catch (error) { console.error("Error saving configuration:", error); document.getElementById("setupStatus").innerText = "Failed to save configuration."; } } |
- When a lead enters Zoho CRM through the extension, it should trigger a function that:Retrieves the saved channel details:
>
Notifies the channel: Sends a message to the retrieved channel using the
Post Message API.

Info
-> A complete working code sample for the use case is attached at the end of this post for your reference.
-> The test function for triggering notifications is also included in the attachment. You can use the same snippet in your extension to initiate the notification process.
-> Ensure to replace the unique names of your Connector APIs and Variable.
11. Fill in the details of the application as shown in this image and upload the widget ZIP file packed using the Zoho CLI command.
12. Click Save.
Configure the Settings Widget
13. Navigate to Build > Settings Widget in the left menu.
14. Provide a Name and the Resource Path of your widget.
15. Click Save.
Packaging, Publishing and Deploying
16. Go to Package > Publish on the left-side menu and publish the extension.
17. The review process for listing an extension in the Marketplace will take from three weeks to one month.
For the demo, we will proceed with deploying the extension using the private plugin deployment link.
18. Now, replace the URL of your Zoho CRM page with the deployment link from the Developer Console and approve the extension installation.
Try it Out!
Once installed:
> A pop-up will appear, prompting you to authorize Zoho Cliq for the required configurations.
If you do not already have a Zoho Cliq account, you can sign up directly from the pop-up and proceed with the authorization.
> After authorization, you will be redirected to the Settings widget page, where you can select and save your preferred Cliq channel.
> If you need to update the settings later, you can find them on the Installed Extensions page under the respective extension.

Note
The demo videos above use a testing function to notify the channel. You can deploy it anywhere in your extension to trigger a notification whenever a lead enters a Zoho CRM organization through the extension.
Find the function in the attachments at the end of this post.
Similar Scenarios
- Sales Territory Management: An extension that auto-assigns incoming leads to sales reps can use a settings widget to allow managers to define territories and sales rep mappings dynamically.
- Custom Field Mapping: For extensions that sync data between Zoho CRM and external systems, a settings widget can let users map CRM fields to external system fields.
- Automated Email Preferences: In email automation extensions, the settings widget can allow users to specify email templates, recipients, or trigger conditions for follow-ups and campaigns.
Adding a Settings Widget to your Zoho CRM Extensions not only enhances user experience but also boosts the flexibility and efficiency of your extension. Whether it is notifying sales teams or customizing field mappings, a well-designed settings page is a game-changer for your extensions.
Explore the
Widget section in our Kaizen collection to try out various widget types and discover their unique use cases.
If you have any queries or a topic to be discussed reach out to us at
support@zohocrm.com or drop your comment below.
Until next time, keep innovating!
Cheers!
----------------------------------------------------------------------------------------------------------------------------------------
Related Reading
- Zoho CRM Widget - An Overview, Installation and Creation, Mobile Compatibility, Telephony Widget Extension, and other Kaizens.
- Widget SDKs - An Overview, Invoke Connector and Get Organization Variable.
- Zoho Developer Console - An Overview, Creating Extensions, Building Connected Apps, and A Quick Start Guide.
- Zoho Extensions - Custom Variables and Connectors
- Zoho Cliq - GET List of Channels and POST Message in Channel.
- Zoho Marketplace - An Overview
----------------------------------------------------------------------------------------------------------------------------------------
Recent Topics
Need advice for product/item search functionality when adding invoices.
My client uses "Catalog or Vendor" name and Product code to search for his items. But Zoho only allow to search by product name and SKU when adding items to Invoices/Estimates. Clients product codes are not unique as they may overlap from different catalogs/vendors.
Super 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. Moderation Update (8th Aug 2025): We are working
Do buttons and vba msgbox work on mobile, specifially the iPhone zoho sheets app?
In Zoho sheets on the web, I inserted a button and assigned a VBA macro to it. It pops up a msgbox with some text. When I go onto the iPhone mobile zoho sheets app, the button is there. When I click on that button, the spinning asterisk appears for a
[Webinar] Solving business challenges- Handling the challenge of transitioning to Zoho Writer from legacy tools
Moving to Zoho Writer is a great way to consolidate your business tools and become more agile. With multiple accessibility modes, no-code automation, and extensive integration with business apps and content platforms, Zoho Writer helps solve your organization's
How can I effectively manage a website with your help?
I’m wondering if it’s possible to develop a custom website with specific features using Zoho as an alternative platform. My goal is to create a website similar to https://tmsim.ph, with the same kind of functionality and user experience. I would truly
Introducing the Yes/No field: Binary decisions made beautiful
Greetings, form architects! What would you do when you need a simple yes/no answer on your form? Normally, you add a Radio field. Type Yes. Type No. Until now. The new Yes/No field is purpose-built for binary decisions. It is preconfigured, visually consistent,
Move email between inboxes?
Is it possible to move emails from one team inbox to another? We would like to be able to have a single "catch-all" inbox for incoming requests, and then move the email to the appropriate department inbox. I was hoping we would be able to accomplish this
The power of workflows in Zoho Marketing Automation - Video Webinar
In this Zoho Marketing Automation video webinar, our experts walk you through: Why you may want to create marketing workflows How to create marketing workflows Use Zoho CRM data and apply workflows to automate your marketing strategy How workflows can
Offer already made- but I withdrew it
I made an offer letter, but made a mistake on it. I withdrew the offer but now I can't recreate the correct offer. Zoho keeps saying that "A same offer has already been made". I look in the "offers" and there are NO offers (this is the first time I've
Zoho CRM's sales trend and sales follow-up trend dashboards are now customizable
Dear Customers, We're here with good news! Sales trend and sales follow-up trend are two system-defined dashboards that help you understand trends and anomalies in your sales outreach and conversion efforts. They use Zia's intelligence to identify patterns
Introducing Rule-Based AI Coding Assistants for Zoho Finance Widgets
Hello customers, We’ve introduced rule-based AI coding assistants to speed up Zoho Finance widget development. You can try them out in Cursor AI and GitHub Copilot. This helps you build widgets quickly using simple prompts, while ensuring the generated
Marketing Tip #21: Create an About Us page
People don’t just buy products, they buy from brands they trust. An About Us page helps customers understand who you are, what you stand for, and why your business exists. It adds a human touch to your store and reassures shoppers that there’s a real
Zobot to handle single choice menu when dynamic list content is more than 10 items
Whatsapp supports maximum of only 10 items for its single choice menu. When we need to show a dynamic list with content more than 10, this could be challenging. We essentially need to add a next and previous buton here in order to make it functional.
Add the ability to Hide Pages in Page Rules
Hi, We have Field Rules to show and hide fields and we have page Rules, but we can't hide a page in Page Rules so it isn't completed before the previous page (And then have the Deny Rules to prevent submitting without both pages completed), we can only
Column letter from number
Hello, I am trying to select a cell and i have the column number. How do i do this or is there a way of getting the letter from the number? Thank you
Composite Product (kit) - Dynamic Pricing
I am setting up Composite Products for item kits that I sell. I also sell the items from the kit individually. Problem is when pricing changes on an individual part, the Composite Product price does not change meaning when the cost of item # 2 in the
View Answer Bot conversations?
We are trialing Zia and are experimenting with Answer Bot on our knowledge base. So far so good! Management asks me if it is possible to view Answer Bot conversations, the purpose being to look over its shoulder and confirm that it is working as des
Train Zia answer bot on only part of Knowledge Base?
We are trialing Zia answer bot and hope to use it on the knowledge base to help our users find the information they are looking for. I have found how to train Zia on the entirety of our knowledge base. But is there a way to train it on only certain categories
Smarter holiday planning with yearly-specific Holiday Lists
Hello everyone! Managing holidays and business hours is now easier and more efficient. Holiday Lists now support holidays that fall on different dates every year, while business hours now supports more than one holiday list. This helps businesses manage
Temporary Outage in Zoho Cliq Affecting US Users – July 23, 2025
We experienced a service disruption in Zoho Cliq that impacted core functionality for users in the US region. The issue occurred between Jul 23, 2025, 06:54:00 PM IST and 07:13:13 PM IST, lasting approximately 19 minutes. To restore service stability,
ERROR CODE :550 - 550 5.1.1 Invalid email recipients
This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. mustafa.ashraf@techlink-eg.net, ERROR CODE :550 - 550 5.1.1 Invalid email recipients
Function #20: Custom calculation in item table of invoices
When you create an invoice in Zoho Books, the 'Amount' of a line item is typically calculated as the product of the "Quantity" and the "Rate" of the item. For instance, if an item has a sales rate of $50 and a quantity of 5 is sold, then the amount would
Impossible to import Journal from Freshbooks
I have been trying to import journals from Freshbooks since August 30th. Every time I try to import, I get an error message. I have already made sure every row has a date. First it was saying the account and notes had unexpected input and that every debit/credit
How to Create a Fixed Sliding Time Window (D-45 to D-15) in Zoho Analytics ?
Hello, I would like to create a report in Zoho Analytics based on a sliding time window between D-45 and D-15, with a fixed snapshot of that specific period. The data displayed should strictly reflect activity recorded between D-45 and D-15 only, without
Wie veröffentliche ich ein PDF Datei?
Hallo! Wie veröffentliche ich PDF Datein ich habe ein PDF Datei und den sieht ihr im Upload ich möchte ihn veröffentlichen wie? Mit Freundlichen Grüßen, Herr Bahaa Addin Chkirid
Zoho Campaigns: An Outstanding Email Marketing Tool
Introducing Zoho Campaigns! A product designed by Zoho, the Zoho Campaigns is made to create, deliver, and manage integrated email campaigns that can help in boosting the sales of a company and its customer base. Zoho Campaigns is actually an email marketing
Zoho Creator Developer Console | Improved Distribution and Lifecycle Management for apps
Hello everyone, We're excited to introduce new enhancements now in the Zoho Creator Developer Console. These updates strengthen private app distribution through licensing controls and extend environment support across all installed apps, helping teams
Anchor Links in Dashboards
Hello, Our dashboards frequently have multiple sections that would be more easily skipped between using anchor links. Please consider adding an anchor link feature to the text widget? This could be done by adding an anchor link option to the text widget next to the "remove" option (see screenshot). The option would assign an ID to the <div> containing the text widget in the live dashboard. Then, the chosen ID could be linked using a traditional <a href="#link_id"> in the html section of the text
Zoho Books emails suddenly going to Spam since 11 Nov 2025 (Gmail + now Outlook) — anyone else?
Hi everyone, We migrated to Zoho Books in July 2025 and everything worked fine until 11 Nov 2025. Since then, Zoho Books system emails are landing in customers’ Spam (first Gmail, and now we’re seeing Outlook/Office 365 also starting to spam them). Impacted
Sync images with Shopify/Cart
Hello, sync images with shopify or other cart, it cuts out the double work of having to upload to shopify/cart and zoho. Thanks
Is it Possible to Modify Standard Report Urls
Is there a way to permanently modify standard report Urls? Use case: Suppose I have a Products report. Showing list as timeline, calendar, or kanban doesn't make sense. Want to hide that from users by adding #Report:Products?zc_ShowAs=false&zc_Print=false
Price List
II want to restrict the items to display in sales, quote, etc for which custom rates are added in price list. How I can do the same in Zoho books
External User onboarding for zoho connect is not really intuitive.
So the external user is sent an invite, which has a button that directs them to login to zoho to view the invite, but if they don't have a zoho account, they cannot access that invite, which seems kinda silly, as there is not real way on for them to create
Having trouble fetching contents of Zoho Connect Feeds using the API, requesting alternative API documentation.
I'm trying to retrieve feed/post data from Zoho Connect using the API but facing challenges with the current documentation. What I've tried: OAuth authentication is working correctly (getting 200 OK responses) Tested multiple endpoints: /pulse/nativeapi/v2/feeds,
How to upload file to Connect using API?
Hi there. I looked at the API documentation and nowhere did it mention how to use the API method to upload a file even though it is mentioned that it is possible to be done so. Please help.
Select the task view on the board in the Zoho Connect iPhone app
Hello. How do I select the task view on the board in the Zoho Connect iPhone app? The Android app has this functionality.
Auto tagging
Some of the articles I enter into Notebook get there when I enter them in Raindrop.io and IFTTT copies the articles in Notebook. When this happens the notes are tagged but instead of useful one word tags with topic the tag pertains to the specific article
Zoho Sheet for Desktop
Does Zoho plans to develop a Desktop version of Sheet that installs on the computer like was done with Writer?
WebDAV support
I need WebDAV support so that I can upload/download (and modify) documents from my local file system. Is anything planned in his direction?
Constant refresh required in lots of Zoho tabs
"Hey Zoho, if you can sync my notification bell across 15 tabs using a BroadcastChannel, why can't you send a 'Data Refresh' signal the same way? We don't need a browser reload—we just need the data to sync without us clicking F5 like it's 1999." "PS:
Next Page