通过 Rube MCP 实现 Zoho CRM 自动化
通过 Rube MCP,使用 Composio 的 Zoho 工具包自动化 Zoho CRM 操作。
前置条件
- Rube MCP 必须已连接(
RUBE_SEARCH_TOOLS可用) - 通过
RUBE_MANAGE_CONNECTIONS与 toolkitzoho建立活动的 Zoho CRM 连接 - 始终先调用
RUBE_SEARCH_TOOLS以获取最新的工具 schema
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API key——只需添加端点即可使用。
- 通过确认
RUBE_SEARCH_TOOLS有响应,验证 Rube MCP 可用 - 使用 toolkit
zoho调用RUBE_MANAGE_CONNECTIONS - 如果连接未处于 ACTIVE 状态,请按照返回的鉴权链接完成 Zoho OAuth
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 搜索与获取记录
使用场景:用户希望按条件查找特定的 CRM 记录
工具调用顺序:
ZOHO_LIST_MODULES- 列出可用的 CRM 模块 [前置]ZOHO_GET_MODULE_FIELDS- 获取某模块的字段定义 [可选]ZOHO_SEARCH_ZOHO_RECORDS- 按条件搜索记录 [必需]ZOHO_GET_ZOHO_RECORDS- 从模块获取记录 [替代方案]
关键参数:
module:模块名(例如 'Leads'、'Contacts'、'Deals'、'Accounts')criteria:搜索条件字符串(例如 'Email:equals:john@example.com')fields:要返回的字段列表,使用逗号分隔per_page:每页的记录数page:分页的页码
常见陷阱:
- 模块名称区分大小写(例如 'Leads',不是 'leads')
- 搜索条件使用特定语法:'Field:operator:value'
- 支持的操作符:equals、starts_with、contains、not_equal、greater_than、less_than
- 复杂条件使用括号和 AND/OR:'(Email:equals:john@example.com)AND(Last_Name:equals:Doe)'
GET_ZOHO_RECORDS返回所有记录并支持可选过滤;SEARCH用于定向查找
2. 创建记录
使用场景:用户希望添加新的线索、联系人、商机或其他 CRM 记录
工具调用顺序:
ZOHO_GET_MODULE_FIELDS- 获取模块的必需字段 [前置]ZOHO_CREATE_ZOHO_RECORD- 创建一条新记录 [必需]
关键参数:
module:目标模块名(例如 'Leads'、'Contacts')data:记录数据对象,包含字段-值对- 必需字段因模块而异(例如 Contacts 的 Last_Name)
常见陷阱:
- 每个模块都有必填字段;使用
GET_MODULE_FIELDS来识别它们 - 字段名使用下划线(例如 'Last_Name'、'Email'、'Phone')
- 查找字段需要传入关联记录的 ID,而不是名称
- 日期字段必须使用 'yyyy-MM-dd' 格式
- 除非配置了重复检查规则,否则允许创建重复记录
3. 更新记录
使用场景:用户希望修改现有的 CRM 记录
工具调用顺序:
ZOHO_SEARCH_ZOHO_RECORDS- 查找要更新的记录 [前置]ZOHO_UPDATE_ZOHO_RECORD- 更新记录 [必需]
关键参数:
module:模块名record_id:要更新的记录的 IDdata:包含要更新字段的对象(仅需传入发生变化的字段)
常见陷阱:
record_id必须是 Zoho 记录 ID(数字字符串)- 仅传入需要更改的字段;其他字段会保持不变
- 只读字段和系统字段无法更新
- 更新查找字段需要传入关联记录的 ID
4. 转换线索
使用场景:用户希望将一条线索转换为联系人、客户和/或商机
工具调用顺序:
ZOHO_SEARCH_ZOHO_RECORDS- 查找要转换的线索 [前置]ZOHO_CONVERT_ZOHO_LEAD- 转换线索 [必需]
关键参数:
lead_id:要转换的线索的 IDdeal:在转换过程中创建商机时的商机详情account:转换的客户详情contact:转换的联系人详情
常见陷阱:
- 线索转换是不可逆的;该线索记录会从 Leads 模块中删除
- 一次转换最多可创建三条记录:联系人、客户和商机
- 可能根据公司名称匹配已有的客户
- Lead 与 Contact/Account/Deal 模块之间的自定义字段映射会影响转换结果
5. 管理标签和关联记录
使用场景:用户希望为记录打标签或管理记录之间的关系
工具调用顺序:
ZOHO_CREATE_ZOHO_TAG- 创建新标签 [可选]ZOHO_UPDATE_RELATED_RECORDS- 更新关联/链接的记录 [可选]
关键参数:
module:标签所属的模块tag_name:标签名称record_id:父记录 ID(用于关联记录)related_module:关联记录所属的模块data:要更新的关联记录数据
常见陷阱:
- 标签是模块特定的;在 Leads 中创建的标签在 Contacts 中不可用
- 关联记录同时需要父记录 ID 和关联模块
- 标签名称在同一模块内必须唯一
- 批量标签操作可能会触发限流
常见模式
模块与字段发现
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
搜索条件语法
简单搜索:
criteria: '(Email:equals:john@example.com)'
组合条件:
criteria: '((Last_Name:equals:Doe)AND(Email:contains:example.com))'
支持的操作符:
equals、not_equalstarts_with、containsgreater_than、less_than、greater_equal、less_equalbetween(用于日期/数字)
分页
- 设置
per_page(最大 200)和page,起始值为 1 - 检查响应中的
info.more_records标志 - 不断递增 page,直到
more_records为 false - 总记录数可在响应 info 中获取
已知陷阱
字段名称:
- 使用 API 名称,而不是显示标签(例如使用 'Last_Name',而不是 'Last Name')
- 自定义字段的 API 名称形如 'Custom_Field1' 或用户自定义名称
- 选项列表(picklist)值必须完全匹配(区分大小写)
限流:
- API 调用限制取决于你的 Zoho CRM 套餐
- 免费版:5000 次 API 调用/天;企业版:25000+/天
- 在批量操作之间增加延时
- 监控 429 响应并遵守限流响应头
数据格式:
- 日期:'yyyy-MM-dd' 格式
- 日期时间:'yyyy-MM-ddTHH:mm:ss+HH:mm' 格式
- 货币:不带格式的数值
- 电话:字符串值(不强制特定格式)
模块访问:
- 访问权限取决于用户角色和档案权限
- 在你的 CRM 设置中,某些模块可能被隐藏或受限
- 自定义模块具有自定义的 API 名称
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 列出模块 | ZOHO_LIST_MODULES | (无) |
| 获取模块字段 | ZOHO_GET_MODULE_FIELDS | module |
| 搜索记录 | ZOHO_SEARCH_ZOHO_RECORDS | module, criteria |
| 获取记录 | ZOHO_GET_ZOHO_RECORDS | module, fields, per_page, page |
| 创建记录 | ZOHO_CREATE_ZOHO_RECORD | module, data |
| 更新记录 | ZOHO_UPDATE_ZOHO_RECORD | module, record_id, data |
| 转换线索 | ZOHO_CONVERT_ZOHO_LEAD | lead_id, deal, account, contact |
| 创建标签 | ZOHO_CREATE_ZOHO_TAG | module, tag_name |
| 更新关联记录 | ZOHO_UPDATE_RELATED_RECORDS | module, record_id, related_module, data |
使用时机
本技能适用于执行概述中描述的工作流或操作。
局限性
- 仅当任务明确匹配上述范围时使用本技能。
- 不要将输出视为针对特定环境的验证、测试或专家审查的替代。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停下来并请求澄清。