
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
Webinar - Getting Started with Zoho LandingPage
Want to launch landing pages that support real marketing goals? This webinar is designed to help you understand the role landing pages play in your overall campaigns and how they contribute to lead generation and conversions. During this session, you’ll
Increase Round Robin Scheduler Frequency in Zoho Desk
Dear Zoho Desk Team, We hope this message finds you well. We would like to request an enhancement to the Round Robin Scheduler in Zoho Desk to better address ticket assignment efficiency. Current Behavior At present, the Round Robin Scheduler operates
Marketing Tip #19: Upsell on product page to increase order value
Upselling doesn’t have to feel pushy. It can actually feel helpful when done right. Think "people also bought", upgrades, add-ons, or complementary items. A smart upsell increases your average order value and improves the customer experience by making
CRM limit reached: only 2 subforms can be created
we recently stumbled upon a limit of 2 subforms per module. while we found a workaround on this occasion, only 2 subforms can be quite limiting in an enterprise setting. @Anonymous User I've read about imminent increase of other components (e.
Kaizen #198: Using Client Script for Custom Validation in Blueprint
Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
Removing Tables from HTML Inventory Templates - headers, footers and page number tags only?
I'm a bit confused by the update that is coming to HTML Inventory Templates https://help.zoho.com/portal/en/kb/crm-nextgen/customize-crm-account/customizing-templates/articles/nextgen-update-your-html-inventory-templates-for-pdf-generator-upgrade It says
Ability to Link Reported Issues from Zoho Desk to Specific Tasks or Subtasks in Zoho Projects
Hi Zoho Desk Team, Hope you're doing well. When reporting a bug from Zoho Desk to Zoho Projects, we’ve noticed that it’s currently not possible to select an existing task or subtask to associate the issue with. However, when working directly inside Zoho
How do i move multiple tickets to a different department?
Hello, i have several tickets that have been assigned to the wrong department. I am talking about hundreds of automatically generated ones that come from a separate system. How can i select them all at once to move them to another department in one go? I can select them in "unsassigned open tickets view" but i can't find a "move to another department" option. I also can't seem to assign multiple tickets to the same agent in that same view. Could somebody advice?
Capture Bank Charges for Invoice Payments
We've added the Bank Charges field in the "Add Payments" page both in Zoho Invoice & Zoho Books. So all you need to do is to enter the bank charges when you record a payment for the invoices. This bank charge will be included to the amount paid for that invoice. Steps to add the bank charges while you record the payment: 1. Click the "Invoices" sub-tab under the "Money-In" tab. 2. Click the 'add payment' link for the invoice that you wish to record the payment for. 3. On the add
How to apply customized Zoho Crm Home Page to all users?
I have tried to study manuals and play with Zoho CRM but haven't found a way how to apply customized Zoho CRM Home Page as a (default) home page for other CRM users.. How that can be done, if possible? - kipi Moderation Update: Currently, each user has
Plug Sample #14: Automate Invoice Queries with SalesIQ Chatbot
Hi everyone! We're back with a powerful plug to make your Zobot smarter and your support faster. This time, we're solving a common friction point for finance teams by giving customers quick access to their invoices. We are going to be automating invoice
Enrich your contact and company details automatically using the Data Enrichment topping
Greetings, I hope you're all doing well. We're happy to announce the latest topping we've added to Bigin: The Data Enrichment topping, powered by WebAmigo. This topping helps you automatically enhance your contact and company records in Bigin. By leveraging
Zoho Billing Partial Proration...
Hi, In Zoho billing, we offer upgrades, downgrades, suspends, and resumes. We use online payment for most subscriptions, but have only a few that are offline, but we treat them the same either way.. We prorate only parts of these changes.. Right now zoho
Reconciling a month with no transactions
I'm treasurer for a small non profit cemetery association and I'm trying to reconcile a bank statement for a month that did not have any transactions. Do I skip the month entirely and go a month with transactions?
Getting Subform Fields to Display Top to Bottom
I have a form where the fields are all in one column. I want to insert a subform where the fields are stacked in one column as well. I have built both the form and subform but the subform displays the fields from left to right instead of a stacked column. This will cause a problem displaying the subform correctly on mobile apps. How can I do this please?' Here is my form with subform now. As you can see the subform "Follow Up Activity" is displaying the fields left to right. I need them to go top
[Feature Deprecated] Gamescope in Zoho Projects
This feature is no longer available. All work and no play makes Jack a dull boy. Well, yes. That's true! Tiring work, buzzing coffee makers, busy turnstiles , occupied meeting rooms, back-to-back status updates and what not. Your everyday routine need not have to be this hectic. It can be more rewarding. It can be more fun. Zoho Projects believes in this fact and hence has launched Gamescope - A module that turns every project into an exciting game and boosts the spirit of your team by leaps and
Creating a task, i can not work out how to get ID for What_Id
hi From Module A function I map Module B record reference membershipid (ours). I need Module B Zoho ID to create the related to on task. All examples i've seen start with the Zoho ID. void automation.LTM_Assign_Dispute_Task(String membershipid) { try
Can't connect to POP and SMTP over VPN
I use Thunderbird to access Zoho Mail via POP and SMTP. I have configured an app-specific password for Thunderbird to use. Everything is properly configured and works correctly — until I enable my VPN. I'm using a paid commercial VPN service (Mullvad).
my zoho mail is hacked
my email is sending my username and password to people i dont know
Suministrar accesos
Asunto: Enable UPLOAD_RULE for API Attachments Mensaje: Hola, Necesito habilitar la capacidad de subir attachments vía API en Zoho Mail. Actualmente recibo el error: "UPLOAD_RULE_NOT_CONFIGURED" al usar el endpoint: POST /api/accounts/{accountId}/messages/attachments
Introducing real-time document commenting and collaboration in Zoho Sign
Hi, there! We are delighted to introduce Document commenting, a feature that helps you communicate with your recipients more efficiently for a streamlined document signing process. Some key benefits include: Collaborate with your recipients easily without
Ticket Loop from Auto Responce
We’re seeing an issue where a client’s help desk triggers a ticket loop. When they email us, our system creates a ticket and sends the acknowledgement. Their system then creates a ticket from that acknowledgement and sends one back to us, which creates
How to make rule to filter out some emails from receiving the notification "Receiving a new ticket"?
Good Morning, We are currently using the "Receiving a new ticket" notification rule to provide that auto reply template to a customer that emails us for support. However, there are some emails we don't want to receive this auto-reply. Where can I set
Zoho Signatures Missing
In the past after collecting signatures from two different PDFs I would merge them by calling an api and the signatures would appear in the combined PDF. Recently the signatures have disappeared whenever I combine the PDFs together. Why did this randomly
Filter button in the Zoho Sheet Android App doesn't toggle on
I am a new Zoho Sheets user and experiencing a specific issue with the filter functionality in the Android mobile application. Detailed Issue Description: The filter icon appears correctly in the toolbar. Upon tapping the filter icon/button, the toggle
Automate pushing Zoho CRM backups into Zoho WorkDrive
Through our Zoho One subscription we have both Zoho CRM and Zoho WorkDrive. We have regular backups setup in Zoho CRM. Once the backup is created, we are notified. Since we want to keep these backups for more than 7 days, we manually download them. They
Exciting Updates to the Kiosk Studio Feature in Zoho CRM!
Hello Everyone, We are here again with a series of new enhancements to Kiosk Studio, designed to elevate your experience and bring even greater efficiency to your business processes. These updates build upon our ongoing commitment to making Kiosk a powerful
New activity options for workflows
Greetings, We are excited to announce the addition of two new dynamic actions to our workflow functionality: Create Event and Schedule Call. These actions have been thoughtfully designed to enhance your workflow processes and bring more efficiency to
Remove the “One Migration Per User” Limitation in Zoho WorkDrive
Hi Zoho WorkDrive Team, Hope you are doing well. We would like to raise a critical feature request regarding the Google Drive → Zoho WorkDrive migration process. Current Limitation: Zoho WorkDrive currently enforces a hard limitation: A Zoho WorkDrive
Kaizen #228 - Process Large-Scale Migrated Data Using Catalyst Solutions
Howdy, tech wizards! This week’s Kaizen explores how Catalyst Solutions in the Zoho CRM Developer Hub help import large volumes of data into Zoho CRM while improving data quality and simplifying the migration process. Why Catalyst Solutions? Catalyst
Zoho Expense Import Reports Won't Work Because Default Accounts Already Exist
Im trying to import reports from another Zoho expense account to mine and im getting errors that won't allow the import to happen The account name that you've entered 'Ground Transportation' already exists. Enter another name for the account and try again.z
Inactive License for free account.
I recently upgraded my Cliq subscription not my team (on the free version), are unable to login to their accounts. The error message received is Inactive License Looks like you have not been covered under the current free plan of users. Please contact
Syncing zoho books into zoho crm
I was wondering how I can use zoho books in crm as I have been using them separately and would like to sync the two. Is this possible and if so, how? Thanks
Announcing new features in Trident for Mac (1.34.0)
Hello everyone! We’re excited to introduce the latest updates to Trident, which are designed to take workplace communication to the next level. Let’s take a quick look at what’s new. Connect with customers using Zoho Voice integration. You can now easily
How Zoho Contracts Makes Negotiations Clear, Secure, and Transparent
Negotiation is one of the most critical—and often most chaotic—stages of the contract lifecycle. Multiple stakeholders review the same document, propose changes, debate terms, and exchange feedback. Without the right tools, this collaborative process
Error: Invalid Element tax_override_preference
In both Books and Inventory, we're getting the following error whenever we try to enter any Bill: I think this is a bug. Even cloning an old bill (that obviously was entered just fine), this error occurs.
Assign Income to Project Without Invoice
Hello, Fairly new user here so apologies if there is a really obvious solution here that I am just missing... I have hundreds of small deposits into a bank account that I want to assign to a project but do not want to have to create an invoice every time
How to Print the Data Model Zoho CRM
I have created the data model in Zoho CRM and I want the ability to Print this. How do we do this please? I want the diagram exported to a PDF. There doesnt appear to be an option to do this. Thanks Andrew
our customers have difficult to understand the Statements
our costumers have big problems to understand Zohos Statements. we need a text box after the payment number to explain what the payments are for. Is it possible to develop a version of the Statement with that kind of box and if so whu can do it
How to track a list of ALL the items that ONE customer bought?
Hello, I am interested in getting a list of all the items that only ONE of my customers bought, and the invoices are what show up instead. It's very tedious to go through every single invoice when we sell a lot of items to this customer. Surely there
Next Page