Rei-skills zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
git clone https://github.com/rootcastleco/rei-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/rootcastleco/rei-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/zoho-crm-automation" ~/.claude/skills/rootcastleco-rei-skills-zoho-crm-automation && rm -rf "$T"
skills/zoho-crm-automation/SKILL.mdZoho CRM Automation via Rube MCP
Automate Zoho CRM operations through Composio's Zoho toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Zoho CRM connection via
with toolkitRUBE_MANAGE_CONNECTIONSzoho - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
Setup
Get Rube MCP: Add
https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONSzoho - If connection is not ACTIVE, follow the returned auth link to complete Zoho OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Search and Retrieve Records
When to use: User wants to find specific CRM records by criteria
Tool sequence:
- List available CRM modules [Prerequisite]ZOHO_LIST_MODULES
- Get field definitions for a module [Optional]ZOHO_GET_MODULE_FIELDS
- Search records by criteria [Required]ZOHO_SEARCH_ZOHO_RECORDS
- Get records from a module [Alternative]ZOHO_GET_ZOHO_RECORDS
Key parameters:
: Module name (e.g., 'Leads', 'Contacts', 'Deals', 'Accounts')module
: Search criteria string (e.g., 'Email:equals:john@example.com')criteria
: Comma-separated list of fields to returnfields
: Number of records per pageper_page
: Page number for paginationpage
Pitfalls:
- Module names are case-sensitive (e.g., 'Leads' not 'leads')
- Search criteria uses specific syntax: 'Field:operator:value'
- Supported operators: equals, starts_with, contains, not_equal, greater_than, less_than
- Complex criteria use parentheses and AND/OR: '(Email:equals:john@example.com)AND(Last_Name:equals:Doe)'
- GET_ZOHO_RECORDS returns all records with optional filtering; SEARCH is for targeted lookups
2. Create Records
When to use: User wants to add new leads, contacts, deals, or other CRM records
Tool sequence:
- Get required fields for the module [Prerequisite]ZOHO_GET_MODULE_FIELDS
- Create a new record [Required]ZOHO_CREATE_ZOHO_RECORD
Key parameters:
: Target module name (e.g., 'Leads', 'Contacts')module
: Record data object with field-value pairsdata- Required fields vary by module (e.g., Last_Name for Contacts)
Pitfalls:
- Each module has mandatory fields; use GET_MODULE_FIELDS to identify them
- Field names use underscores (e.g., 'Last_Name', 'Email', 'Phone')
- Lookup fields require the related record ID, not the name
- Date fields must use 'yyyy-MM-dd' format
- Creating duplicates is allowed unless duplicate check rules are configured
3. Update Records
When to use: User wants to modify existing CRM records
Tool sequence:
- Find the record to update [Prerequisite]ZOHO_SEARCH_ZOHO_RECORDS
- Update the record [Required]ZOHO_UPDATE_ZOHO_RECORD
Key parameters:
: Module namemodule
: ID of the record to updaterecord_id
: Object with fields to update (only changed fields needed)data
Pitfalls:
- record_id must be the Zoho record ID (numeric string)
- Only provide fields that need to change; other fields are preserved
- Read-only and system fields cannot be updated
- Lookup field updates require the related record ID
4. Convert Leads
When to use: User wants to convert a lead into a contact, account, and/or deal
Tool sequence:
- Find the lead to convert [Prerequisite]ZOHO_SEARCH_ZOHO_RECORDS
- Convert the lead [Required]ZOHO_CONVERT_ZOHO_LEAD
Key parameters:
: ID of the lead to convertlead_id
: Deal details if creating a deal during conversiondeal
: Account details for the conversionaccount
: Contact details for the conversioncontact
Pitfalls:
- Lead conversion is irreversible; the lead record is removed from the Leads module
- Conversion can create up to three records: Contact, Account, and Deal
- Existing account matching may occur based on company name
- Custom field mappings between Lead and Contact/Account/Deal modules affect the outcome
5. Manage Tags and Related Records
When to use: User wants to tag records or manage relationships between records
Tool sequence:
- Create a new tag [Optional]ZOHO_CREATE_ZOHO_TAG
- Update related/linked records [Optional]ZOHO_UPDATE_RELATED_RECORDS
Key parameters:
: Module for the tagmodule
: Name of the tagtag_name
: Parent record ID (for related records)record_id
: Module of the related recordrelated_module
: Related record data to updatedata
Pitfalls:
- Tags are module-specific; a tag created for Leads is not available in Contacts
- Related records require both the parent record ID and the related module
- Tag names must be unique within a module
- Bulk tag operations may hit rate limits
Common Patterns
Module and Field Discovery
1. Call ZOHO_LIST_MODULES to get all available modules 2. Call ZOHO_GET_MODULE_FIELDS with module name 3. Identify required fields, field types, and picklist values 4. Use field API names (not display labels) in data objects
Search Criteria Syntax
Simple search:
criteria: '(Email:equals:john@example.com)'
Combined criteria:
criteria: '((Last_Name:equals:Doe)AND(Email:contains:example.com))'
Supported operators:
,equalsnot_equal
,starts_withcontains
,greater_than
,less_than
,greater_equalless_equal
(for dates/numbers)between
Pagination
- Set
(max 200) andper_page
starting at 1page - Check response
flaginfo.more_records - Increment page until more_records is false
- Total count available in response info
Known Pitfalls
Field Names:
- Use API names, not display labels (e.g., 'Last_Name' not 'Last Name')
- Custom fields have API names like 'Custom_Field1' or user-defined names
- Picklist values must match exactly (case-sensitive)
Rate Limits:
- API call limits depend on your Zoho CRM plan
- Free plan: 5000 API calls/day; Enterprise: 25000+/day
- Implement delays between bulk operations
- Monitor 429 responses and respect rate limit headers
Data Formats:
- Dates: 'yyyy-MM-dd' format
- DateTime: 'yyyy-MM-ddTHH:mm:ss+HH:mm' format
- Currency: Numeric values without formatting
- Phone: String values (no specific format enforced)
Module Access:
- Access depends on user role and profile permissions
- Some modules may be hidden or restricted in your CRM setup
- Custom modules have custom API names
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List modules | ZOHO_LIST_MODULES | (none) |
| Get module fields | ZOHO_GET_MODULE_FIELDS | module |
| Search records | ZOHO_SEARCH_ZOHO_RECORDS | module, criteria |
| Get records | ZOHO_GET_ZOHO_RECORDS | module, fields, per_page, page |
| Create record | ZOHO_CREATE_ZOHO_RECORD | module, data |
| Update record | ZOHO_UPDATE_ZOHO_RECORD | module, record_id, data |
| Convert lead | ZOHO_CONVERT_ZOHO_LEAD | lead_id, deal, account, contact |
| Create tag | ZOHO_CREATE_ZOHO_TAG | module, tag_name |
| Update related records | ZOHO_UPDATE_RELATED_RECORDS | module, record_id, related_module, data |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
🏰 Rei Skills — Curated by Rootcastle Engineering & Innovation | Batuhan Ayrıbaş
Engineering Beyond Boundaries | admin@rootcastle.com