Kaizen 258 - Getting Started with zoho-crm SKILL.md

Kaizen 258 - Getting Started with zoho-crm SKILL.md



Howdy tech wizards, 

Welcome to a fresh week of Kaizen. 

This week, we are taking a look at the zoho-crm SKILL.md, an Agent Skill designed to help AI coding agents work with Zoho CRM’s developer capabilities.

What is zoho-crm SKILL.md?

The zoho-crm skill acts as an orchestration layer across Zoho CRM’s developer tools as follows:
  1. REST API:  Selects the right API v8 operation and generates the cURL request or invokes it through MCP.
  2. Deluge Functions:  Generates and validates server-side Deluge scripts.
  3. Client Script:  Creates ZDK-based scripts for CRM UI behavior and automation.
  4. Widgets:  Builds embedded components using the CRM JS SDK, ZRC, and API integrations.
  5. COQL:  Builds and validates COQL queries, including endpoints and scopes.
  6. Queries:  Helps configure saved Queries and select the appropriate data source.
  7. Connections:  Guides OAuth integrations and connection usage across CRM developer tools.
The skill follows a five-step flow to turn your requirement into a solution:

  1. Understand the goal: Identifies the Action, Entity, and Context from your request.
  2. Select the Right Primitive: Determines whether to use REST API, Deluge Function, Client Script, Widget, COQL, Query, or Connection.
  3. Load the Relevant References: Uses the appropriate product references as the source of truth.
  4. Generate the Solution: Produces the required code, query, API request, or configuration guidance.
  5. Validate the Output: Checks the solution against CRM syntax, parameters, scopes, constraints, and known implementation gotchas.

Getting Started with zoho-crm SKILL.md

There are two ways to get started with the skill:
  1. Skills CLI (npx skills): The quickest and recommended approach.
  2. Manual Alternative: Clone or download the repository and copy the zoho-crm skill folder to your agent’s skills directory.
Let us start with the recommended approach.

Prerequisites

Before installing the skill:
  1. Ensure that a recent version of Node.js is installed on your system.
  2. Ensure that your AI coding agent is supported by the Skills CLI.
  3. If you plan to use the Zoho MCP or Zoho CRM MCP capabilities, configure the required MCP connection separately. Installing the skill does not configure MCP access.

Using the Skills CLI

Installation

With the Skills CLI, you have two independent choices when installing a skill:
  1. Agent: Determines which AI coding agent receives the skill.
  2. Scope: Determines whether the skill is installed for the current project or globally.

Choosing an Agent

You can control the agents where the skill is installed in three ways:
Specific Agent
Use the --agent or -a option to install the skill for a specific agent:

npx skills add zoho/crm-skills --agent claude-code

The value passed to --agent must be the identifier supported by the Skills CLI. Check out the supported agents section to get the identifier of your required agent. 
All Supported Agents
If you want to install the skill for all supported agents, use *:

npx skills add zoho/crm-skills --agent '*'

--agent '*' targets all supported agents. It is different from selecting Universal agents.
Interactive Selection
If you don’t specify an agent, the CLI opens an interactive agent-selection prompt:

npx skills add zoho/crm-skills

When no agent is specified, the CLI opens the agent selection prompt. Universal agents are always included, while additional supported agents can be selected from the prompt.

The Universal agents use the shared .agents/skills directory and are included automatically. The Additional agents section lets you select other supported agents for the installation.


Idea
Tip

If you need precise control over which agents receive the skill, use the --agent or -a option instead.

Choosing a Scope

You can control where the skill is installed using two scopes:
Project
By default, the skill is installed for the current project:

npx skills add zoho/crm-skills --agent claude-code

Use this when the skill is intended for a specific project or needs to be shared with the project team.
Global 
Use -g or --global to install the skill in your user-level skills directory:

npx skills add zoho/crm-skills --agent claude-code -g

A global installation makes the skill available across projects for that agent.

Notes
Note 

-g controls only the scope. It does not mean install for all agents. The agent still needs to be selected separately.

Combining Agent and Scope

Since Agent and Scope are independent choices, you can combine them as needed:

Scope
Specific Agent

All Supported Agents

Current Project

npx skills add zoho/crm-skills --agent claude-code
npx skills add zoho/crm-skills --agent '*'

Global
npx skills add zoho/crm-skills --agent claude-code -g

npx skills add zoho/crm-skills --agent '*' -g


The --agent option controls which agent or agents receive the skill, while -g controls where the skill is installed.

Upgrade Versions

Once installed, you can update the skill using the Skills CLI.

Skills CLI

Description
npx skills update zoho-crm

To update a zoho-crm skill in interative mode.  

npx skills update zoho-crm -g

To update the zoho-crm skill at the golbal level.

npx skills update zoho-crm -p

To update the zoho-crm skill at the current project level.

Pin version

If you’re pinning versions for a team or CI environment, use the project’s lockfile to restore the exact skill state instead of relying on an update to the latest version.

The Skills CLI can restore project skills from skills-lock.json using:

npx skills experimental_install

Remove 

You can remove the zoho-crm skill when it is no longer required.

Skills CLI

Description

npx skills remove zoho-crm

To remove the skill installed from the current project. 

npx skills remove --agent claude-code zoho-crm

To remove the skill from one particular agent. 

npx skills remove zoho-crm --agent '*'

To remove a skill from all supported agents.

npx skills remove --global zoho-crm

To remove the skill from global scope. 


Here, the --agent option controls the target agent, while --global controls whether the removal applies to the global scope.

Manual Alternative

If Node.js isn’t available, a skill is still just a folder containing a SKILL.md and its associated resources. 

Install

Clone the repository with Git or download it as a ZIP file, then copy the skills/zoho-crm folder to the appropriate skills directory for your AI coding agent.


cp -r crm-skills/skills/zoho-crm ~/.claude/skills/zoho-crm

The destination depends on both the agent and the scope you choose. For example,

Agent
Project

Global
Claude Code

.claude/skills/

~/.claude/skills/

Codex
.agents/skills/

~/.codex/skills/

Cursor
.agents/skills/

~/.cursor/skills/

GitHub Copilot

.agents/skills/

~/.copilot/skills/

Upgrade versions 

If you cloned the repository separately, update the skill by pulling the latest repository contents and replacing the existing zoho-crm directory.
Option A: Re-clone and overwrite
This approach keeps the repository checkout separate from the installed skill:

git clone https://github.com/zoho/crm-skills.git /tmp/skill-update

rm -rf ~/.claude/skills/zoho-crm

cp -r /tmp/skill-update/skills/zoho-crm ~/.claude/skills/zoho-crm
Option B: Pull if you maintain a separate working copy
If you keep a clone of the crm-skills repository separately, pull the latest changes there, then re-copy the skill folder:

cd /path/to/crm-skills

git pull origin main

cp -r skills/zoho-crm ~/.claude/skills/zoho-crm

Notes
Note

Cloning the repository directly into your skills folder and pulling in place does not work as the skill lives at skills/zoho-crm, not at the repository root. So, a direct clone leaves SKILL.md nested one level too deep for your agent to find it.
Pin version
For a manual installation, you can pin the skill to a specific Git commit instead of tracking the latest changes on main:

git clone https://github.com/zoho/crm-skills.git /tmp/crm-skills

cd /tmp/crm-skills

git checkout <commit-sha>

cp -r skills/zoho-crm ~/.claude/skills/zoho-crm

This keeps the installed skill at the selected repository revision.

Remove 

To remove a manually installed skill, delete the zoho-crm directory from the agent’s skills directory. If you installed the skill globally, remove it from the global directory instead (for example, ~/.claude/skills/zoho-crm).

Try it Out

Here is a short video of zoho-crm skill writing a Deluge script to compress the attachments of a contact and email it to the record's owner. 



We hope you find this kaizen helpful.

Next week, we will take the zoho-crm SKILL.md beyond setup and into action, with a real life CRM scenario solved using the skill. 

Have questions or suggestions? Drop them in the comments or write to us at support@zohocrm.com.

On to Better Building!

---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------



    • Sticky Posts

    • Announcing the new SKILL.md for Zoho CRM and the updated OAS repository!

      We are introducing a new zoho-crm skill to make working with Zoho CRM Developer tools (like APIs, functions, widgets, client scripts, queries etc) easier and faster, with the help of AI in your preferred AI harness like Claude Code, Codex, Cursor, VSCode
    • Kaizen #261 : Using Zoho CRM Skill to generate complex COQL queries

      Hello everyone, In the previous Kaizen posts, we introduced the zoho-crm SKILL.md and discussed how it can help you when you are working with Zoho CRM APIs and Client Script. In this Kaizen, we will focus on using the Zoho CRM `SKILL.md` with GitHub Copilot
    • Kaizen #256 - Build an Arrival Readiness Web Tab in Zoho CRM

      Hi everyone! Welcome back to the Kaizen series! In the post, we discuss a use case in hospitality industry: how an Arrival Readiness web tab widget can be used to let reception staff identify and resolve issues before arrival of guests. Use case In the
    • 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.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Recent Topics

    • Minor Problem: Dashboard Forgets Cash vs Accrual

      The dashboard doesn't reflect my cash/accrual choice from settings, AND doesn't remember what I've set it to.
    • information on a suggestion how to treat old records in the - pipeline deals, notes, activities (tasks- events-calls) and emails etc.

      Hi, I would like information or a suggestion on how to treat old records in the - pipeline deals, notes, activities (tasks- events-calls) and emails etc. ? As each option (pipeline deal, notes, activities, emails etc.) counts as a record and as we advance
    • Automating Employee Birthday Notifications in Zoho Cliq

      Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
    • zoho stream web notifications

      since im locked out of IMAP and cant use my mail app that lets my team collaborate and chat below emails, im trying out the zoho version of this... zoho streams. On the bottom of an email in the zoho mail web app, i "comment" and mention another user.
    • New in Zoho CRM: Pre-fill Public Forms with CRM Data

      Public forms just got more flexible! With the new Pre-fill Public Forms with CRM Data option in the Zoho Forms integration, people filling out your public forms can search for a CRM record, select the right one, and have the form automatically populate
    • HEIC File Type Viewer

      Hi, It would be nice to be able to click on the images in the All Entries/Reports Tables which are HEIC the same as JPG, PNG, etc. so they open in a viewer from Zoho or the Attachment Service, today HEIC requires you to download each image and open it
    • Zoho Books | Product updates | October 2026

      Hello users, October brings a range of new features and enhancements to Zoho Books, designed to simplify compliance, streamline accounting workflows, and improve inventory management. From the launch of the Nigeria Edition and France’s e-invoicing capabilities
    • Specific ListView Canvas on Canvas Home Page Always Loads Most Recent ListView, Not the One Specified

      I had mentioned this to ZOHO, but I mainly wanted to see if others in the Community are also facing this problem. I created a Canvas ListView for a Custom Module, and then created a Canvas Home page (technically on a tab item, but I'm not sure if that
    • print preview

      We are using microsoft edge, till 12 sep we were getting directly print option. Now we are getting this preview option we have to click print option again. How to bypass this-preview option?
    • Zoho Projects - Has something changed regarding to linking Projects and Deals via the API?

      I am trying to link Zoho Projects to Deals in CRM using the API, but each time, the Deal Contact is added as a Client user and receives an email invite asking them to join the organisation. These are internal projects and the customer should not have
    • Connection into Cliq?

      I have the SalesIQ chat widget on my site using the Zohobot but I'm not always on and my employees don't keep it open all the time. We do have Cliq open all the time though so I'd love a way to manage those discussions directly in Cliq as they come in.
    • Kaizen #264 - Using zoho-crm Skill to Write Functions

      Hello CRM wizards, Welcome back to another week of Kaizen. In our previous Kaizens, we explored how the zoho-crm skill can assist you across various Zoho CRM developer tools. This time, let us see how it can help you write Deluge Functions, from simple
    • Edit Pinned Comments in Zoho Desk

      It's great that private comments can now be pinned to the top of the ticket but what would be extremely helpful would be to allow for the pinned comment to be edited vs. having to find the comment in the ticket to edit it.
    • Recover accidentally deleted mail account

      Email account was accidentally deleted from admin console. 
    • mail sent to gmail goes directly to spam

      Hi TKIM and SPF are configured and verified. E-mails coming from zoho to my personal gmail account are going directly to the spam folder. How can I solve this? I can send you guys the headers privately if you need to.
    • Shopify Integration: How do I change the default Unit of Measure from KG to PCS

      For those using Shopify with Zoho Inventory, has anyone managed to have imported items default to PCS/EA instead of KG? If so, where is this configured? I can only find weight units in Shopify, not a sales unit of measure.
    • flexible subscription plan

      Greetings! We currently have 5 Standard plans, but would like to add 5 mail-lite one just to receive emails (do not need other business features or storage. As Super Admin, I tried to do that my self but didnt see the option on your sales platform. Please
    • mail

      We want our tracked links in campaign and journey emails to use our own domain instead of the shared maillist-manage.net domain. We have already created the CNAME links.rexven.com → customer-campaign.zoho.com (DNS only). Does our plan support a custom
    • Useless support and impossible to add users for whom I paid for

      Over a week ago i signed up for 5 emails addresses and 10GB, and so far I only have 1 email working, no access to the dashboard. Remote connection with "support"....useless Screen grabs sent to "support" useless Messages to "support"... now not answering
    • Mr

      can't access my email
    • Reduce Mail Lite Renewal from 2 licenses to 1

      Hello Zoho Support, I have a Mail Lite 5GB subscription with 2 licenses. have deleted the unused user, and now only 1 user/license is being used. My subscription is due for renewal, but the renewal page still shows 2 licenses and does not give me an option
    • Adding additional records dynamically to a subset of fields

      I'm trying to create a service ticket layout which will be passed to a Creator application for Field Service Management (FSM) purposes. We need to be able to define a specific subset of service product fields such as "Service Product", "Service Product Serial Number", "Service Product Warranty End Date" and "Service Product Current Warranty Status". We may need to record more than one of these subsets, in case the customer has more than one product which has to be serviced on their site. It seems
    • Push error with Zoho Books and Zoho CRM

      I have successfully linked Books and CRM but I have some push errors with the following message: "The customer associated to this record is not linked to module chosen in the current contact sync configuration." I am unable to work this out, could you help please.
    • Function #24: Automatically display deal name from Zoho CRM on quotes in Zoho Books

      Deals allow businesses to organize and visualize their sales pipeline. This provides a clear overview of all potential opportunities and helps in making informed decisions. Zoho CRM empowers you to create deals or potentials for your clients and monitor
    • {"code":57,"message":"You are not authorized to perform this operation"}

      In my trial version of Zoho account, I am trying to integrate Zoho CRM Contact Module with Zoho books but when i call API it gives such type of error {"code":57,"message":"You are not authorized to perform this operation"}. I am using refreshed token
    • Allow widgets to be placed between native sections in the Ticket Properties panel

      One of our biggest frustrations with the Tickets module is how rigid the Ticket Properties panel is. Every section there is built only from native Zoho Desk fields. We can add sections, rearrange fields, and pick layouts, but we can’t put anything custom
    • #13 Understanding Your Zoho Invoice Limits

      Ravi's busiest month was also the month his invoicing stopped working. He had been using Zoho Invoice comfortably for months. Then, just when business picked up, he hit a limit he hadn't expected. The problem wasn't that he had missed a payment or forgotten
    • Map Dependency Upgrades in Zoho CRM

      Map Dependency Fields enhancements are now available across all DCs. Hello everyone, We’ve introduced a set of enhancements to Map Dependency Fields to make setup simpler, faster, and more intuitive. Map Dependency helps control how values appear across
    • How to Allocate Incoming Purchase Stock to Specific Sales Orders in Zoho Inventory?

      Hi all, We are using Zoho One Enterprise and need guidance on managing sales order–wise allocation of incoming stock in Zoho Inventory. Our workflow is: A customer order is received, and the Sales Order is confirmed. The sales team immediately creates
    • How to disable automatic ticket closure emails for specific outgoing communications?

      Is there a way to disable the automatic "Ticket Closed" email notification for specific tickets or outgoing emails? Currently, every time we send an email to a customer, the system automatically sends a "Ticket Created" email, followed by a "Ticket Closed"
    • 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
    • What's new in Zoho Workplace | September 2026

      Hello Zoho Workplace community! Here's a roundup of all the new features and announcements that went live across Zoho Workplace applications in September. Zoho Mail Compose Options Across Templates You can now use the Undo, Redo, and New List options
    • Unable to export reports despite enabled report export permissions

      Hi Zoho Community, We are unable to export reports in Zoho CRM. When attempting an export, we receive the following error: “Cannot Export Report — You do not have permission to export one or more modules used in this report. Please contact your administrator.”
    • What does "Tickets for Review" do?

      What is the purpose of the va nilla view " Tickets for Review?"
    • Set department automatically for incoming calls

      Is it possible, when receiving an incoming call through Zoho Desk (using Twilio integration), for the department to be auto-selected based on the phone line being called? Currently, we have to manually select the department from the dropdown menu when
    • Zoho Desk training for administrators in EU and US region

      Hello Everyone, Get ready for the certified Virtual Classroom training for our Zoho Desk users in Europe and the US. Our in-house Zoho Desk expert, @Dheeraj | Zoho Desk, will conduct the virtual classroom training. This training focuses on simplifying
    • Support Plan: Recuring Issue

      Hi Zoho Team, Could you please look into this recurring alert and provide clarification on why this restriction is still in place? This issue has become a bottleneck in our workflow, significantly limiting our automation capabilities. We are unable to
    • Webinar de Zoho People: tecnología para RR. HH.

      ¿Y si RR. HH. pudiera estar tan conectado con el negocio como el resto de tu organización? La gestión de personas está evolucionando, y los departamentos de Recursos Humanos necesitan herramientas que les permitan ir más allá de las tareas administrativas
    • Zoho CRM still doesn't let you manage timezones (yearly reminder)

      This is something I have asked repeatedly. I'll ask once again. Suppose that you work in France. Next month you have a trip to Guatemala. You call a contact there, close a meeting, record that meeting in CRM. On the phone, your contact said: "meet me
    • WhatsApp in Zoho CRM Plus: inbound works, every outbound message fails with crm.bm.msg.failed.undefined since Oct 14 (business stopped)

      Hello Zoho team and community, We are Roxo Inc, a Zoho CRM Plus customer in Florida. WhatsApp is our main sales and support channel, and since October 14, 11:11 AM EDT we cannot send any WhatsApp message from Zoho CRM. We are facing a large drop in sales
    • Next Page