
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
Marketer's Space - Holiday season email marketing tips you should know
Hello Marketers! Welcome back to another post in Marketer's Space! 'Tis the season—that time of the year everyone eagerly anticipates. While most look forward to relaxing, marketers will be super-busy from late November to early January. Mistakes can
Zia Competitor Alerts made easy with Zia's suggestions
Hi everyone, In addition to the existing manually added competitors, Zia will now find your competitors for you - instantly. Earlier, you had to identify competitors through research manually, support tickets, or tradeshows—a time-consuming process that
Add Custom Field Inside Parts Section
How to Add Custom Field Inside Parts Section in Workorder like Category and Sub- Category
Zoho CRM Community Digest October 2025 | Part 2
Hello Everyone! From new mobile capabilities and smarter integrations to real-world workflow fixes and developer insights, all the highlights from the second half of October is covered right here. Let’s dive in. Product Updates: Zoho CRM Mobile Updates:
MTA - BAD IP reputation by outlook/hotmail
Messages to Microsoft email servers are bouncing back due to poor reputation. Message: 4.7.650 The mail server [136.143.188.206] has been temporarily rate limited due to IP reputation. For e-mail delivery information see https://postmaster.live.com (S775)
Understanding Zoho Contracts
Effective contract management relies on systems that are structured, organized, and reliable. Every feature, workflow, rule, and restriction in Zoho Contracts are designed the way they are to ensure consistency, compliance, and control across every stage
Tip of the Week #76– Automate your inbox during vacation in Zoho TeamInbox
When you're on vacation or away from your desk, the last thing you want is for important emails to be missed or left unanswered. The good news is, you can easily set up rules in Zoho TeamInbox to assign incoming messages automatically to a teammate who's
Domain restriction for User Management actions in Zoho One
Greetings, Zoho One Admins! To strengthen account security further and safeguard user management settings, we are imposing domain-based restrictions for user account-focused admin actions in Zoho One. In addition to password reset of user, organization
Zoho Mail iOS app update: Signature
Hello everyone! In the latest version(3.1.7) of the Zoho Mail app update, we have brought in support to create, edit and remove signature within the app. You can create signature from the compose screen as well as from within the Settings module(inside
Copy paste from word document deletes random spaces
Hello Dear Zoho Team, When copying from a word document into Notebook, often I face a problem of the program deleting random spaces between words, the document become terribly faulty, eventhough it is perfect in its original source document (and without
Desktop app doesn't support notecards created on Android
Hi, Does anybody have same problem? Some of last notecards created on Android app (v. 6.6) doesn't show in desktop app (v. 3.5.5). I see these note cards but whith they appear with exclamation mark in yellow triangle (see screenshot) and when I try to
Approval Button in Subform
Hi Team, I’m working on a subform-based requirement where users will submit requests, and these requests must go through approval by multiple team managers. Each line item in the subform needs to be individually approved or declined based on the user's
Setting checkbox value on template in Sign from Creator
Good day, Please help me understand how do I set a tick from a checkbox in Creator into a checkbox on a Sign template. Below is the only values on the Sign template and the code from Creator, "field_boolean_data": {}, "field_date_data": {}, "field_radio_data":
Zoho Projects - Unread Comment Icon
Hi Projects Team, It would be great if there was a notification I con on the comments icon so it's easy to see which tasks have new comments. Something like a red circle with a number of unread comments would be great. Thanks for considering my feed
Zoho Projects - Update Feed via API
Hi Projects Team, Please consider adding an API to allow update and retrieval of messages to the Feed. Thank you
Automated log-out/session end
I'm concerned about security of our data. Is it possible to set an automatic time-out for user sessions on Zoho CRM, after a certain period of inactivity or when the session reaches a certain duration (12 hours perhaps)?
Subform auto populate values
Hi Team, I’m trying to retrieve values from Zoho People using API functions and dynamically populate them into a subform. For example, I’ve created a form with several fields that users will fill out. Based on their input, I need to fetch records from
What is New in CRM Functions?
What is New in CRM Functions? Hello everyone! We're delighted to share that Functions in Zoho CRM have had a few upgrades that would happen in phases. Phase 1 An all new built-in editor for better user experience and ease of use. ETA: In a couple of days.
Gantt Chart - Zoho Analytics
Are there any plans to add Gantt Charts capabilities to Zoho Analytics?
WhatsApp Calling Integration via Zoho Desk
Dear Zoho Desk Team, I would like to request a feature that allows users to call WhatsApp numbers directly via Zoho Desk. This integration would enable sending and receiving calls to and from WhatsApp numbers over the internet, without the need for traditional
This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details
Hello, Just signed up to ZOHO on a friend's recommendation. Got the TXT part (verified my domain), but whenever I try to add ANY user, I get the error: This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details I have emailed as well and writing here as well because when I searched, I saw many people faced the same issue and instead of email, they got a faster response here. My domain is: raisingreaderspk . com Hope this can be resolved. Thank you
Identify long running sync jobs/tables
My sync process causes strain on my production database and I'd love some tools/alerts to help me identify which tables are taking the longest. The current screen only shows 3 tables at a time and truncates the last fetch time so that it is very cumbersome
Temporarily rate limited due to IP reputation.
We have suddenly started receiving the following Mail Delivery Status Notification: Diagnostic-Code: 4.7.650 The mail server [136.143.184.12] has been temporarily rate limited due to IP reputation. For e-mail delivery information, see https://aka.ms/postmaster
Automatically CC an address using Zoho CRM Email Templates
Hi all - have searched but can't see a definitive answer. We have built multiple email templates in CRM. Every time we send this we want it to CC a particular address (the same address for every email sent) so that it populates the reply back into our
Solution to Import PST File into Office 365.
MailsDaddy OST to Office 365 Migration Tool is an outstanding solution to recover OST files and migrate them into Office 365 without any hassle. Using this software users can multiple OST files into Office 365 with complete data security. It offers users
Best-practice setup in Zoho One for managing combined candidate pools and exporting anonymised CVs
We are new users of the Zoho One bundle and operate a consulting and engineering company. Our workforce model includes a mix of permanent employees, active job applicants, and freelance/independent consultants. All three groups need to be searchable,
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
New integration: Zoho Sign for Zoho Projects
Hey there! We’re excited to announce the brand-new Zoho Sign integration for Zoho Projects! With this integration, users can now send documents for signatures, track their progress, and manage approvals—all without leaving Zoho Projects. This bridges
Update to attachment display in ticket threads
This enhancement will provide faster access for support teams and end-users, significantly boosting productivity for everyone. Get ready for a more efficient and satisfying experience! Immediate benefits Faster ticket rendering reduces wait times and
Narrative 15: Blueprint - Automate, guide, and transform your support processes
Behind the scenes of a successful ticketing system: BTS Series Narrative 15: Blueprint - Automate, guide, and transform your support processes Even organizations that deliver quality products and services can face low customer satisfaction when their
Different MRP / Pricing for same product but different batches
We often face the following situations where MRP of a particular product changes on every purchase and hence we have to charge the customer accordingly. This can't be solved by Batch tracking as of now so far as I understand Zoho. How do you manage it as of now?
Batch/lot # and Storage bin location
Hi I want to ask for a feature on Zoho inventory I own a warehouse and I've gone through different management software solutions with no luck until I found Zoho, it has been a game changer for my business with up to the minute information, I'm extremely happy with it. It's almost perfect. And I say Almost because the only thing missing for me (and I'm sure I'm not alone) is the need of being able to identify the lot number of my inventory and where it is located in the warehouse. Due to the nature
ZOHO BOOKS - RECEIVING MORE ITEMS THAN ORDERED
Hello, When trying to enter a vendor's bill that contains items with bigger quantity than ordered in the PO (it happens quite often) - The system would not let us save the bill and show this error: "Quantity recorded cannot be more than quantity ordered."
Good news! Calendar in Zoho CRM gets a face lift
Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
Sync desktop folders instantly with WorkDrive TrueSync (Beta)
Keeping your important files backed up and accessible has never been easier! With WorkDrive desktop app (TrueSync), you can now automatically sync specific desktop folders to WorkDrive Web, ensuring seamless, real-time updates across devices. Important:
Writer update results in BitDefender blocking it as malware
After updating Writer to latest update, Bitdefender blocked the app and writer no longer runs.
Zoho One Unified Portal - Applications
Hello, It is great to see the work on the New Unified Customer Portal. Thanks for that. The number of applications is limited though. It is now only around the Zoho Books ecosystem (Books, Expense...) and Zoho Social. = Are other applications planned
Refresh frequency
Dear Zoho Team, I really, truly appreciate that Zoho Books gets frequent updates. As a matter of fact this is how a good SaaS company should stay on top. However, I feel that I have to hit refresh almost every day. This was exciting at the beginning but
Refund
My plan expired today, and I updated my payment details with a new credit card. At the same time, I wanted to downgrade, but the system wouldn’t allow the downgrade until the payment details were updated. As a result, I was charged for the same plan before
Add "Fetch Composite Item" Action for Inventory
I want to make a Flow that uses information returned in the GET call for Composite Items, and it's not currently available in Zoho Flow. Please consider adding this functionality.
Next Page