Teamwork Desk 集成技能
用途 本技能用于通过 Membrane CLI 与 Teamwork Desk 交互。Teamwork Desk 是一款帮助台软件,让企业能够管理和回复客户咨询。客服团队用它整理工单、自动化工作流并跟踪关键指标,以提升客户满意度并简化支持运营。当用户希望与 Teamwork Desk 数据交互时,可使用本技能。
主要能力 该技能覆盖 Teamwork Desk 的以下资源与对象:Tickets(工单)、Ticket Replies(工单回复)、Customers(客户)、Users(用户/坐席)、Tags(标签)、Inboxes(收件箱)、Reports(报表)、Companies(公司)、Time Tracking(时间跟踪)、SLA Events(SLA 事件)、Task Lists(任务列表)、Tasks(任务)、Projects(项目)、Mailboxes(邮箱)、Channels(渠道)、Articles(文章)、Categories(分类)、Sites(站点)、Settings(设置)、Webhooks(Webhook)。
预置的常用操作(popular actions)包括:List Tickets(按当前用户权限分页列出工单)、List Customers(分页列出客户)、List Companies(分页列出公司)、List Users(列出当前安装下的用户/坐席)、List Inboxes(分页列出收件箱)、List Tags(分页列出标签)、List Ticket Messages(分页列出某工单的消息)、Get Ticket / Get Customer / Get Company / Get User / Get Inbox / Get Tag(按 ID 获取单个对象)、Create Ticket / Create Customer / Create Company(创建新对象)、Update Ticket / Update Customer / Update Company(更新已有对象)、Delete Ticket(删除工单,移入回收站)。当预置操作无法覆盖用例时,还可通过 Membrane 代理直接向 Teamwork Desk API 发送请求。
使用方式
- 安装 CLI:npm install -g @membranehq/cli@latest
- 认证登录:membrane login --tenant --clientName=<agentType>。该命令会打开浏览器进行认证,或向控制台打印一个授权 URL(取决于是否有交互模式)。在无头(headless)环境中,命令会打印授权 URL,需请用户在浏览器中打开;用户登录后看到代码时,执行 membrane login complete <code> 完成。任意命令加 --json 可获得机器可读的 JSON 输出。agentType 可取 claude、openclaw、codex、warp、windsurf 等,用于针对所用运行环境调整工具链。
- 建立连接:使用 membrane connection ensure 按应用 URL 或域名查找或创建连接,例如 membrane connection ensure "https://www.teamwork.com/desk/" --json。用户在浏览器中完成认证,输出中包含新连接的 id。若返回的连接 state 为 READY,可直接跳到搜索操作步骤。若 state 为 BUILDING,则轮询直至就绪:npx @membranehq/cli connection get <id> --wait --json,--wait 会长时间轮询(最长不超过 --timeout 秒,默认 30)直到状态变化,持续轮询直到 state 不再是 BUILDING。状态含义:READY 表示连接已完全就绪;CLIENT_ACTION_REQUIRED 表示用户或代理需要执行操作,clientAction 对象描述所需动作,其中 clientAction.type 为 "connect" 时用户需认证,为 "provide-input" 时需补充信息,clientAction.description 为人类可读说明,clientAction.uiUrl(可选)为可完成操作的预建 UI 地址,clientAction.agentInstructions(可选)为代理以编程方式继续的说明;用户完成操作后再次用 membrane connection get <id> --json 轮询检查状态是否变为 READY;CONFIGURATION_ERROR 或 SETUP_FAILED 表示出错,可查看 error 字段了解详情。
- 搜索操作:使用自然语言描述意图进行搜索,例如 membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json。应始终在特定连接的上下文中搜索操作。每条结果包含 id、name、description、inputSchema(操作接受的参数)和 outputSchema(返回内容)。
- 运行操作:membrane action run <actionId> --connectionId=CONNECTION_ID --json;传入 JSON 参数:membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json。结果位于响应的 output 字段。
- 代理请求:当可用操作无法覆盖用例时,可通过 Membrane 代理直接向 Teamwork Desk API 发送请求:membrane request CONNECTION_ID /path/to/endpoint。Membrane 会自动在你提供的路径前附加基础 URL 并注入正确的认证头,包括凭据过期时的透明刷新。常用选项:-X/--method 指定 HTTP 方法(GET、POST、PUT、PATCH、DELETE,默认 GET);-H/--header 添加请求头(可重复);-d/--data 请求体(字符串);--json 便捷地发送 JSON 请求体并设置 Content-Type: application/json;--rawData 原样发送请求体不做处理;--query 查询字符串参数(可重复),如 --query "limit=10";--pathParam 路径参数(可重复),如 --pathParam "id=123"。
适用场景 适用于需要与 Teamwork Desk 数据交互的客服与支持运营场景,例如按权限查看和检索工单、客户、公司、坐席、收件箱、标签与工单消息,创建和更新工单、客户、公司,以及通过代理请求覆盖预置操作之外的 API 用例。
限制与说明 本技能通过 Membrane CLI 工作,需先完成 CLI 安装、登录认证与连接建立。凭据由 Membrane 在服务端管理,不应向用户索取 API 密钥或令牌,而应改为创建连接。官方文档为 https://developer.teamwork.com/desk。