Welcome back to another exciting Kaizen post.
In this post, we will use the
Zoho CRM skill to build a complete
Zoho CRM Widget: a sales pipeline visualization that opens in a
Zoho CRM Web Tab. The Widget retrieves Deal data, displays key metrics, and visualizes the pipeline using charts and filters.
After you submit the prompt, the AI coding agent uses the zoho-crm skill's Widget guidance to implement the requested functionality in your local project. The agent may ask for permission to create or modify files or run commands. Once you approve the requested permissions, it proceeds with the implementation.
The project structure may look like this:
The key files include widget.html, app.js, and style.css; D3.js is included under vendor. Review the code to confirm the requested functionality is implemented. The folder structure alone does not verify that the Widget works as expected.
You can see the important code here. Testing the Widget locally
From the project directory, start the local development server: zet run
To test CRM data access and the embedded SDK, register the local URL in Zoho CRM using External Hosting, then open the Widget from CRM. Opening the URL directly in a browser is useful for basic UI checks, but CRM features may require the Widget to run inside CRM.
At this stage, verify that:
- The Widget loads without a blank screen.
- The loading state is displayed.
- CRM data is retrieved.
- Key Performance Indicators (KPI) values are shown.
- Filters update the results.
- The funnel renders correctly.
- The relationship graph is readable.
- Empty and error states behave as expected.
During development, register the Widget in CRM using External Hosting so that you can test it within the CRM environment.
Registering the Widget in Zoho CRM
After the local Widget is ready:
- Open Setup in Zoho CRM.
- Go to Developer Hub.
- Open Widgets.
- Select Create Widget.
- Enter Data Visualization as the name.
- Select Web Tab as the placement.
- Choose External Hosting.
- Enter the local Widget URL.
- Save the Widget.
Associate the created Widget with the Web Tab
Go to Setup > Customization > Web Tab:
View the video in full-screen mode
The Final Result
The Widget can then be opened from the CRM navigation menu as a Web Tab. The important distinction is that this is a Web Tab Widget. It is not added as a component inside the CRM Dashboard.
Open the new Web Tab and test the complete experience.
View the video in full-screen mode
The final result is a custom sales pipeline workspace that runs inside Zoho CRM without requiring users to switch to another application.
Packing the Widget - only for internal hosting
Once the Widget has been successfully validated, you can package it using the following command: zet pack
Note:
- You only need to run zet pack if you plan to switch the Widget to Internal Hosting. CRM requires a ZIP file to be uploaded for Internal Hosting.
- If you continue using External Hosting, as described in this post, you can skip the packaging step. The Widget configuration will continue to point to your running server URL.
- The zet pack command creates a ZIP archive, typically in the dist directory. You can upload this ZIP file in the Widget configuration when switching from External Hosting to Internal Hosting.
Automatically handled by Skill
- ZET CLI check/install
- zet init
- Widget implementation
- zet validate
Developer/user handles
- Review generated code
- Test the Widget
- Configure/register the Widget in CRM
- zet pack if Internal Hosting is required
Conclusion
In this post, we used the Zoho CRM skill to build a sales pipeline visualization as a Web Tab Widget. The Skill helps developers turn their requirements into a Widget by guiding them toward the appropriate Zoho CRM patterns and references.
Have you used Widgets to build custom CRM dashboards, Web Tabs, or record-level tools? Share your use cases in the comments.