通过Rube MCP实现ActiveCampaign自动化 是做什么的?
通过Composio的ActiveCampaign工具包,借助Rube MCP实现ActiveCampaign CRM与营销自动化操作的全方位自动化。
前提条件
- 必须已连接Rube MCP(
RUBE_SEARCH_TOOLS可用) - 通过
RUBE_MANAGE_CONNECTIONS建立ActiveCampaign连接,工具包为active_campaign - 始终先调用
RUBE_SEARCH_TOOLS获取当前工具架构
设置
获取Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为MCP服务器。无需API密钥——只需添加端点即可。
- 确认
RUBE_SEARCH_TOOLS响应,验证Rube MCP可用 - 使用工具包
active_campaign调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是ACTIVE,按照返回的认证链接完成ActiveCampaign认证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
核心工作流
1. 创建和查找联系人
使用时机:用户需要创建新联系人或查找现有联系人
工具顺序:
ACTIVE_CAMPAIGN_FIND_CONTACT- 搜索现有联系人[可选]ACTIVE_CAMPAIGN_CREATE_CONTACT- 创建新联系人[必需]
find的关键参数:
email:按邮箱地址搜索id:按ActiveCampaign联系人ID搜索phone:按电话号码搜索
create的关键参数:
email:联系人邮箱地址(必需)first_name:联系人名字last_name:联系人姓氏phone:联系人电话号码organization_name:联系人的组织job_title:联系人职位tags:要应用的标签,逗号分隔
常见陷阱:
email是创建联系人的唯一必填字段- 电话搜索内部使用通用搜索参数,可能返回部分匹配结果
- 在FIND_CONTACT中同时使用
email和phone时,结果会在客户端过滤 - 创建时提供的标签会立即应用
- 使用已有邮箱创建联系人可能会更新现有联系人
2. 管理联系人标签
使用时机:用户需要为联系人添加或移除标签
工具顺序:
ACTIVE_CAMPAIGN_FIND_CONTACT- 按邮箱或ID查找联系人[前置条件]ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG- 添加或移除标签[必需]
关键参数:
action:'Add' 或 'Remove'(必需)tags:标签名称,逗号分隔字符串或字符串数组(必需)contact_id:联系人ID(提供此项或 contact_email)contact_email:联系人邮箱地址(contact_id的替代项)
常见陷阱:
action值需大写:'Add' 或 'Remove'(不可小写)- 标签可以是逗号分隔字符串('tag1, tag2')或数组(['tag1', 'tag2'])
- 必须提供
contact_id或contact_email之一;contact_id优先 - 添加不存在的标签会自动创建
- 移除不存在的标签不会报错
3. 管理列表订阅
使用时机:用户需要订阅或取消订阅联系人到列表
工具顺序:
ACTIVE_CAMPAIGN_FIND_CONTACT- 查找联系人[前置条件]ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION- 订阅或取消订阅[必需]
关键参数:
action:'subscribe' 或 'unsubscribe'(必需)list_id:数字列表ID字符串(必需)email:联系人邮箱地址(提供此项或 contact_id)contact_id:数字联系人ID字符串(email的替代项)
常见陷阱:
action值需小写:'subscribe' 或 'unsubscribe'list_id是数字字符串(例如 '2'),而非列表名称- 列表ID可通过GET /api/3/lists端点获取(目前不作为Composio工具提供;请在ActiveCampaign UI中查看)
- 如果同时提供
email和contact_id,contact_id优先 - 取消订阅会将状态改为 '2'(已取消订阅),但关系记录仍然存在
4. 将联系人添加到自动化
使用时机:用户需要将联系人注册到自动化工作流
工具顺序:
ACTIVE_CAMPAIGN_FIND_CONTACT- 验证联系人存在[前置条件]ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION- 将联系人注册到自动化[必需]
关键参数:
contact_email:要注册的联系人邮箱(必需)automation_id:目标自动化的ID(必需)
常见陷阱:
- 联系人必须已存在于ActiveCampaign中
- 自动化只能通过ActiveCampaign UI创建,不能通过API
automation_id必须引用已存在且处于活动状态的自动化- 该工具分两步执行:按邮箱查找联系人,然后注册
- 自动化ID可在ActiveCampaign UI或通过GET /api/3/automations中找到
5. 创建联系人任务
使用时机:用户需要为联系人创建跟进任务
工具顺序:
ACTIVE_CAMPAIGN_FIND_CONTACT- 查找要关联任务的联系人[前置条件]ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK- 创建任务[必需]
关键参数:
relid:要关联任务的联系人ID(必需)duedate:带时区的ISO 8601格式截止日期(必需,例如 '2025-01-15T14:30:00-05:00')dealTasktype:基于可用类型的任务类型ID(必需)title:任务标题note:任务描述/内容assignee:任务分配的用户IDedate:ISO 8601格式的结束日期(必须晚于 duedate)status:0表示未完成,1表示完成
常见陷阱:
duedate必须是有效的ISO 8601日期时间,包含时区偏移量;不要使用占位符值edate必须晚于duedatedealTasktype是字符串ID,引用ActiveCampaign中配置的任务类型relid是数字联系人ID,不是邮箱地址assignee是用户ID;通过ActiveCampaign UI将用户名解析为ID
常见模式
联系人查找流程
1. 使用邮箱调用 ACTIVE_CAMPAIGN_FIND_CONTACT
2. 如果找到,提取联系人ID用于后续操作
3. 如果未找到,使用 ACTIVE_CAMPAIGN_CREATE_CONTACT 创建联系人
4. 使用联系人ID处理标签、订阅或自动化
批量添加联系人标签
1. 对每个联系人调用 ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
2. 使用 contact_email 避免单独查找调用
3. 分批操作,适当延迟以遵守速率限制
ID解析
联系人邮箱 -> 联系人ID:
1. 使用邮箱调用 ACTIVE_CAMPAIGN_FIND_CONTACT
2. 从响应中提取 id
已知陷阱
操作大小写:
- 标签操作:'Add', 'Remove'(大写)
- 订阅操作:'subscribe', 'unsubscribe'(小写)
- 大小写混淆会导致错误
ID类型:
- 联系人ID:数字字符串(例如 '123')
- 列表ID:数字字符串
- 自动化ID:数字字符串
- 所有ID都应作为字符串传递,而非整数
自动化:
- 自动化不能通过API创建,只能注册联系人
- 自动化必须处于活动状态才能接受新联系人
- 注册已在自动化中的联系人可能不产生效果
速率限制:
- ActiveCampaign API对每个账户有速率限制
- 遇到429响应时,应实现退避策略
- 批量操作应适当间隔
响应解析:
- 响应数据可能嵌套在
data或data.data下 - 使用带有回退模式的防御性解析
- 联系人搜索可能返回多个结果;通过邮箱精确匹配
快速参考
| 任务 | 工具名称 | 关键参数 |
|---|---|---|
| 查找联系人 | ACTIVE_CAMPAIGN_FIND_CONTACT | email, id, phone |
| 创建联系人 | ACTIVE_CAMPAIGN_CREATE_CONTACT | email, first_name, last_name, tags |
| 添加/移除标签 | ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG | action, tags, contact_email |
| 订阅/取消订阅 | ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION | action, list_id, email |
| 添加到自动化 | ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION | contact_email, automation_id |
| 创建任务 | ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK | relid, duedate, dealTasktype, title |
使用时机
本技能适用于执行概述中描述的工作流或操作。
限制
- 仅在任务明显符合上述范围时使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代方案。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。