关于 intercom-automation
intercom-automation 是通过 Composio 的 Intercom 工具包自动处理支持与联系人流程的技能,涵盖对话、联系人、管理员、细分群体和公司,并提供 Rube MCP 设置与操作指引。
主要功能
- 01创建、搜索、回复、分配对话及更改状态
- 02搜索和获取联系人、标签及细分群体
- 03列出管理员、团队、公司和细分群体
- 04创建对话并管理公司关联
适用场景
- 01回复或重新分配客户支持对话
- 02按结构化筛选条件或外部 ID 查找联系人
- 03查看工作区管理员和联系人细分群体
MCP 相关
通过 Rube MCP 访问 Composio 的 Intercom 工具包。技能说明了在客户端连接 Rube MCP 端点并认证 Intercom 连接的步骤。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill intercom-automation安装后在 Claude Code 中输入/intercom-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Intercom
通过 Rube MCP 使用 Composio 的 Intercom 工具包自动化 Intercom 操作。
工具包文档:composio.dev/toolkits/intercom
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Intercom 连接,并使用工具包intercom - 始终先调用
RUBE_SEARCH_TOOLS,以获取最新工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能正常响应,以验证 Rube MCP 是否可用 - 使用工具包
intercom调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请打开返回的授权链接,完成 Intercom OAuth
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 管理对话
适用场景:用户希望创建、列出、搜索或管理支持对话
工具调用顺序:
INTERCOM_LIST_ALL_ADMINS- 获取用于分配的管理员 ID [前置条件]INTERCOM_LIST_CONVERSATIONS- 列出所有对话 [可选]INTERCOM_SEARCH_CONVERSATIONS- 使用筛选条件搜索 [可选]INTERCOM_GET_CONVERSATION- 获取对话详情 [可选]INTERCOM_CREATE_CONVERSATION- 创建新对话 [可选]
关键参数:
from:包含type('user'/'lead')和id的对象,用于指定对话创建者body:消息正文(支持 HTML)id:用于检索的对话 IDquery:搜索查询对象,包含field、operator、value
注意事项:
- CREATE_CONVERSATION 的
from字段必须是联系人(用户/潜在客户),不能是管理员 - 对话正文支持 HTML;纯文本会自动用
<p>标签包裹 - 搜索查询使用结构化筛选对象,而非自由文本搜索
- 对话 ID 是数字字符串
2. 回复对话并管理对话状态
适用场景:用户希望回复、关闭、重新打开或分配对话
工具调用顺序:
INTERCOM_GET_CONVERSATION- 获取当前状态 [前置条件]INTERCOM_REPLY_TO_CONVERSATION- 添加回复 [可选]INTERCOM_ASSIGN_CONVERSATION- 分配给管理员/团队 [可选]INTERCOM_CLOSE_CONVERSATION- 关闭对话 [可选]INTERCOM_REOPEN_CONVERSATION- 重新打开已关闭的对话 [可选]
关键参数:
conversation_id/id:对话 IDbody:回复消息正文(支持 HTML)type:回复类型('admin' 或 'user')admin_id:用于管理员回复、分配及关闭/重新打开操作的管理员 IDassignee_id:用于分配的管理员或团队 IDmessage_type:'comment'(默认)或 'note'(内部备注)
注意事项:
- 管理员回复、关闭、重新打开和分配操作都必须提供
admin_id - 始终先使用 LIST_ALL_ADMINS 或 IDENTIFY_AN_ADMIN 获取管理员 ID
- 重试时可能会重复发送;请实现幂等性检查
- 内部备注使用
message_type: 'note';仅工作区成员可见 - 关闭对话时必须提供
admin_id,并且可以选择附带正文消息
3. 管理联系人
使用场景:用户想要搜索、查看或管理联系人(用户和潜在客户)
工具调用顺序:
INTERCOM_SEARCH_CONTACTS- 使用筛选条件搜索联系人[必需]INTERCOM_GET_A_CONTACT- 获取特定联系人[可选]INTERCOM_SHOW_CONTACT_BY_EXTERNAL_ID- 按外部 ID 查找[可选]INTERCOM_LIST_CONTACTS- 列出所有联系人[可选]INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT- 获取联系人标签[可选]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT- 获取联系人所属细分[可选]INTERCOM_DETACH_A_CONTACT- 从公司中移除联系人[可选]
关键参数:
contact_id:用于检索的联系人 IDexternal_id:用于查找的外部系统 IDquery:包含field、operator、value的搜索筛选对象pagination:包含per_page和starting_after游标的对象
注意事项:
- SEARCH_CONTACTS 使用结构化查询筛选条件,而非自由文本;格式为:
{field, operator, value} - 支持的运算符:
=、!=、>、<、~(包含)、!~(不包含)、IN、NIN - 联系人类型为 'user'(已识别)或 'lead'(匿名)
- LIST_CONTACTS 返回分页结果;使用
starting_after游标进行分页 - 外部 ID 区分大小写
4. 管理管理员和团队
使用场景:用户想要列出工作区管理员或查找特定管理员
工具调用顺序:
INTERCOM_LIST_ALL_ADMINS- 列出所有管理员和团队[必需]INTERCOM_IDENTIFY_AN_ADMIN- 获取特定管理员的详细信息[可选]
关键参数:
admin_id:用于识别管理员的 ID
注意事项:
- LIST_ALL_ADMINS 会同时返回管理员和团队
- 回复对话、分配、关闭和重新开启对话时需要管理员 ID
- 团队会以
type: 'team'的形式显示在管理员列表中
5. 查看细分和计数
使用场景:用户想要查看细分或获取汇总计数
工具调用顺序:
INTERCOM_LIST_SEGMENTS- 列出所有细分[可选]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT- 获取联系人的细分[可选]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES- 获取公司的细分[可选]INTERCOM_GET_COUNTS- 获取汇总计数[可选]
关键参数:
contact_id:用于查找细分的联系人 IDcompany_id:用于查找细分的公司 IDtype:计数类型('conversation'、'company'、'user'、'tag'、'segment')count:子计数类型
注意事项:
- GET_COUNTS 返回的是近似计数,而非精确数字
- 细分成员关系是计算得出的;更改可能不会立即反映
6. 管理公司
使用场景:用户想要列出公司或管理公司与联系人的关系
工具调用顺序:
INTERCOM_LIST_ALL_COMPANIES- 列出所有公司[必需]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES- 获取公司的细分[可选]INTERCOM_DETACH_A_CONTACT- 从公司中移除联系人[可选]
关键参数:
company_id:公司 IDcontact_id:用于解除关联的联系人 IDpage:分页页码per_page:每页结果数
注意事项:
- 公司与联系人的关系通过联系人端点管理
- DETACH_A_CONTACT 会解除联系人与公司的关联,而非删除联系人本身
常见模式
搜索查询筛选条件
单个筛选条件:
{
"field": "email",
"operator": "=",
"value": "[email protected]"
}
多个筛选条件(AND):
{
"operator": "AND",
"value": [
{"field": "role", "operator": "=", "value": "user"},
{"field": "created_at", "operator": ">", "value": 1672531200}
]
}
联系人支持的字段:email、name、role、created_at、updated_at、signed_up_at、last_seen_at、external_id
对话支持的字段:created_at、updated_at、source.type、state、open、read
分页
- 大多数列表端点使用基于游标的分页
- 查看响应中的
pages.next,其中包含starting_after游标 - 将游标传入
pagination.starting_after以获取下一页 - 持续获取,直到
pages.next为 null
管理员 ID 解析
1. Call INTERCOM_LIST_ALL_ADMINS to get all admins
2. Find the desired admin by name or email
3. Use admin.id for replies, assignments, and state changes
常见陷阱
管理员 ID 要求:
- 以管理员身份回复、分配、关闭和重新打开对话时,必须提供管理员 ID
- 始终先使用 LIST_ALL_ADMINS 解析管理员 ID
HTML 内容:
- 对话正文为 HTML
- 纯文本会自动包装在段落标签中
- 清理 HTML 输入,以避免渲染问题
幂等性:
- 回复和创建对话不具备幂等性
- 重试或超时时可能重复发送
- 跟踪消息 ID,以防止重复
速率限制:
- 默认值:每分钟约 1000 个请求(因套餐而异)
- 429 响应中包含速率限制标头
- 重试时实施指数退避
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出对话 | INTERCOM_LIST_CONVERSATIONS | (分页) |
| 搜索对话 | INTERCOM_SEARCH_CONVERSATIONS | query |
| 获取对话 | INTERCOM_GET_CONVERSATION | id |
| 创建对话 | INTERCOM_CREATE_CONVERSATION | from, body |
| 回复对话 | INTERCOM_REPLY_TO_CONVERSATION | conversation_id, body, admin_id |
| 分配对话 | INTERCOM_ASSIGN_CONVERSATION | conversation_id, admin_id, assignee_id |
| 关闭对话 | INTERCOM_CLOSE_CONVERSATION | id, admin_id |
| 重新打开对话 | INTERCOM_REOPEN_CONVERSATION | id, admin_id |
| 搜索联系人 | INTERCOM_SEARCH_CONTACTS | query |
| 获取联系人 | INTERCOM_GET_A_CONTACT | contact_id |
| 按外部 ID 查找联系人 | INTERCOM_SHOW_CONTACT_BY_EXTERNAL_ID | external_id |
| 列出联系人 | INTERCOM_LIST_CONTACTS | (分页) |
| 联系人标签 | INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT | contact_id |
| 联系人细分 | INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT | contact_id |
| 分离联系人 | INTERCOM_DETACH_A_CONTACT | contact_id, company_id |
| 列出管理员 | INTERCOM_LIST_ALL_ADMINS | (无) |
| 识别管理员 | INTERCOM_IDENTIFY_AN_ADMIN | admin_id |
| 列出细分 | INTERCOM_LIST_SEGMENTS | (无) |
| 公司细分 | INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES | company_id |
| 获取计数 | INTERCOM_GET_COUNTS | type, count |
| 列出公司 | INTERCOM_LIST_ALL_COMPANIES | page, per_page |
由 Composio 提供支持