mcpField
I
intercom-automation

intercom-automation

github.com/davepoon其他3.7k115 次安装1 天前更新
代码仓库

关于 intercom-automation

intercom-automation 是通过 Composio 的 Intercom 工具包自动处理支持与联系人流程的技能,涵盖对话、联系人、管理员、细分群体和公司,并提供 Rube MCP 设置与操作指引。

主要功能

  1. 01创建、搜索、回复、分配对话及更改状态
  2. 02搜索和获取联系人、标签及细分群体
  3. 03列出管理员、团队、公司和细分群体
  4. 04创建对话并管理公司关联

适用场景

  1. 01回复或重新分配客户支持对话
  2. 02按结构化筛选条件或外部 ID 查找联系人
  3. 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 密钥——只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能正常响应,以验证 Rube MCP 是否可用
  2. 使用工具包 intercom 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请打开返回的授权链接,完成 Intercom OAuth
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

核心工作流

1. 管理对话

适用场景:用户希望创建、列出、搜索或管理支持对话

工具调用顺序:

  1. INTERCOM_LIST_ALL_ADMINS - 获取用于分配的管理员 ID [前置条件]
  2. INTERCOM_LIST_CONVERSATIONS - 列出所有对话 [可选]
  3. INTERCOM_SEARCH_CONVERSATIONS - 使用筛选条件搜索 [可选]
  4. INTERCOM_GET_CONVERSATION - 获取对话详情 [可选]
  5. INTERCOM_CREATE_CONVERSATION - 创建新对话 [可选]

关键参数:

  • from:包含 type('user'/'lead')和 id 的对象,用于指定对话创建者
  • body:消息正文(支持 HTML)
  • id:用于检索的对话 ID
  • query:搜索查询对象,包含 field、operator、value

注意事项:

  • CREATE_CONVERSATION 的 from 字段必须是联系人(用户/潜在客户),不能是管理员
  • 对话正文支持 HTML;纯文本会自动用 <p> 标签包裹
  • 搜索查询使用结构化筛选对象,而非自由文本搜索
  • 对话 ID 是数字字符串
2. 回复对话并管理对话状态

适用场景:用户希望回复、关闭、重新打开或分配对话

工具调用顺序:

  1. INTERCOM_GET_CONVERSATION - 获取当前状态 [前置条件]
  2. INTERCOM_REPLY_TO_CONVERSATION - 添加回复 [可选]
  3. INTERCOM_ASSIGN_CONVERSATION - 分配给管理员/团队 [可选]
  4. INTERCOM_CLOSE_CONVERSATION - 关闭对话 [可选]
  5. INTERCOM_REOPEN_CONVERSATION - 重新打开已关闭的对话 [可选]

关键参数:

  • conversation_id / id:对话 ID
  • body:回复消息正文(支持 HTML)
  • type:回复类型('admin' 或 'user')
  • admin_id:用于管理员回复、分配及关闭/重新打开操作的管理员 ID
  • assignee_id:用于分配的管理员或团队 ID
  • message_type:'comment'(默认)或 'note'(内部备注)

注意事项:

  • 管理员回复、关闭、重新打开和分配操作都必须提供 admin_id
  • 始终先使用 LIST_ALL_ADMINS 或 IDENTIFY_AN_ADMIN 获取管理员 ID
  • 重试时可能会重复发送;请实现幂等性检查
  • 内部备注使用 message_type: 'note';仅工作区成员可见
  • 关闭对话时必须提供 admin_id,并且可以选择附带正文消息
3. 管理联系人

使用场景:用户想要搜索、查看或管理联系人(用户和潜在客户)

工具调用顺序:

  1. INTERCOM_SEARCH_CONTACTS - 使用筛选条件搜索联系人[必需]
  2. INTERCOM_GET_A_CONTACT - 获取特定联系人[可选]
  3. INTERCOM_SHOW_CONTACT_BY_EXTERNAL_ID - 按外部 ID 查找[可选]
  4. INTERCOM_LIST_CONTACTS - 列出所有联系人[可选]
  5. INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT - 获取联系人标签[可选]
  6. INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT - 获取联系人所属细分[可选]
  7. INTERCOM_DETACH_A_CONTACT - 从公司中移除联系人[可选]

关键参数:

  • contact_id:用于检索的联系人 ID
  • external_id:用于查找的外部系统 ID
  • query:包含 field、operator、value 的搜索筛选对象
  • pagination:包含 per_page 和 starting_after 游标的对象

注意事项:

  • SEARCH_CONTACTS 使用结构化查询筛选条件,而非自由文本;格式为:{field, operator, value}
  • 支持的运算符:=、!=、>、<、~(包含)、!~(不包含)、IN、NIN
  • 联系人类型为 'user'(已识别)或 'lead'(匿名)
  • LIST_CONTACTS 返回分页结果;使用 starting_after 游标进行分页
  • 外部 ID 区分大小写
4. 管理管理员和团队

使用场景:用户想要列出工作区管理员或查找特定管理员

工具调用顺序:

  1. INTERCOM_LIST_ALL_ADMINS - 列出所有管理员和团队[必需]
  2. INTERCOM_IDENTIFY_AN_ADMIN - 获取特定管理员的详细信息[可选]

关键参数:

  • admin_id:用于识别管理员的 ID

注意事项:

  • LIST_ALL_ADMINS 会同时返回管理员和团队
  • 回复对话、分配、关闭和重新开启对话时需要管理员 ID
  • 团队会以 type: 'team' 的形式显示在管理员列表中
5. 查看细分和计数

使用场景:用户想要查看细分或获取汇总计数

工具调用顺序:

  1. INTERCOM_LIST_SEGMENTS - 列出所有细分[可选]
  2. INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT - 获取联系人的细分[可选]
  3. INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES - 获取公司的细分[可选]
  4. INTERCOM_GET_COUNTS - 获取汇总计数[可选]

关键参数:

  • contact_id:用于查找细分的联系人 ID
  • company_id:用于查找细分的公司 ID
  • type:计数类型('conversation'、'company'、'user'、'tag'、'segment')
  • count:子计数类型

注意事项:

  • GET_COUNTS 返回的是近似计数,而非精确数字
  • 细分成员关系是计算得出的;更改可能不会立即反映
6. 管理公司

使用场景:用户想要列出公司或管理公司与联系人的关系

工具调用顺序:

  1. INTERCOM_LIST_ALL_COMPANIES - 列出所有公司[必需]
  2. INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES - 获取公司的细分[可选]
  3. INTERCOM_DETACH_A_CONTACT - 从公司中移除联系人[可选]

关键参数:

  • company_id:公司 ID
  • contact_id:用于解除关联的联系人 ID
  • page:分页页码
  • 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_CONVERSATIONSquery
获取对话INTERCOM_GET_CONVERSATIONid
创建对话INTERCOM_CREATE_CONVERSATIONfrom, body
回复对话INTERCOM_REPLY_TO_CONVERSATIONconversation_id, body, admin_id
分配对话INTERCOM_ASSIGN_CONVERSATIONconversation_id, admin_id, assignee_id
关闭对话INTERCOM_CLOSE_CONVERSATIONid, admin_id
重新打开对话INTERCOM_REOPEN_CONVERSATIONid, admin_id
搜索联系人INTERCOM_SEARCH_CONTACTSquery
获取联系人INTERCOM_GET_A_CONTACTcontact_id
按外部 ID 查找联系人INTERCOM_SHOW_CONTACT_BY_EXTERNAL_IDexternal_id
列出联系人INTERCOM_LIST_CONTACTS(分页)
联系人标签INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACTcontact_id
联系人细分INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACTcontact_id
分离联系人INTERCOM_DETACH_A_CONTACTcontact_id, company_id
列出管理员INTERCOM_LIST_ALL_ADMINS(无)
识别管理员INTERCOM_IDENTIFY_AN_ADMINadmin_id
列出细分INTERCOM_LIST_SEGMENTS(无)
公司细分INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIEScompany_id
获取计数INTERCOM_GET_COUNTStype, count
列出公司INTERCOM_LIST_ALL_COMPANIESpage, per_page

由 Composio 提供支持

评论

支持 Markdown