Fetches messages from specific Helpscout inboxes
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install helpscout或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install helpscout⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/helpscout/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: helpscout description: Fetch and reply to Helpscout conversations metadata: { "openclaw": { "requires": { "env": ["API_KEY", "APP_SECRET", "INBOX_IDS"] }, }, } ---
This skill interacts with Helpscout to fetch conversations from specific inboxes and send replies. It is designed to streamline customer support operations directly from OpenClaw.
To use this skill, you need to configure Helpscout credentials and specify the IDs of the inboxes you want to fetch conversations from.
- API Key - App Secret
Use the following command to save your Helpscout credentials:
cat ~/.openclaw/openclaw.json | jq '.skills.entries.helpscout = {
enabled: true,
env: {
API_KEY: "your-api-key",
APP_SECRET: "your-app-secret",
INBOX_IDS: ["inbox-id-1", "inbox-id-2"]
}
}' | openclaw gateway config.apply
To ensure the credentials are properly set, check your configuration:
openclaw gateway config.get
Make sure the helpscout object looks correct (avoid sharing the API_KEY or APP_SECRET).
Fetch all active conversations from configured inboxes:
const { fetchAllInboxes } = require('./index.js');
// Fetch all active conversations (default)
const results = await fetchAllInboxes();
const { fetchConversations } = require('./index.js');
// Fetch closed conversations from a specific inbox
const conversations = await fetchConversations(321755, {
status: 'closed',
sortField: 'modifiedAt',
sortOrder: 'desc',
page: 1
});
// Fetch conversations assigned to a specific user
const assigned = await fetchConversations(321755, {
assignedTo: 782728,
status: 'active'
});
// Fetch conversations with a specific tag
const tagged = await fetchConversations(321755, {
tag: 'urgent',
status: 'active'
});
// Fetch conversations with embedded threads
const withThreads = await fetchConversations(321755, {
embed: 'threads',
status: 'active'
});
// Advanced search query
const searched = await fetchConversations(321755, {
query: '(customerEmail:[email protected])',
status: 'all'
});
const { sendReply } = require('./index.js');
// Send a customer-visible reply (will send email)
await sendReply(3227506031, {
text: 'Hi there,\n\nThanks for your message!\n\nBest regards,',
inboxId: 321755 // Required to auto-fetch customer ID
});
// Send a reply without emailing the customer (imported)
await sendReply(3227506031, {
text: 'Draft reply - not sent to customer yet',
customerId: 856475517, // Or provide inboxId to auto-fetch
imported: true
});
// Send a reply and close the conversation
await sendReply(3227506031, {
text: 'All done! Let me know if you need anything else.',
inboxId: 321755,
status: 'closed'
});
// Create an internal note
const { createNote } = require('./index.js');
await createNote(3227506031, 'Internal note: Customer called, issue resolved.');
| Parameter | Type | Description | |-----------|------|-------------| | text | string | Required. The reply text (HTML supported) | | inboxId | number | Inbox ID - required if customerId not provided (auto-fetches customer) | | customerId | number | Customer ID - if not provided, will be auto-fetched using inboxId | | imported | boolean | Mark as imported (won't email customer). Default: false | | status | string | Conversation status after reply: active, pending, closed. Optional. | | userId | number | User ID sending the reply. Optional (defaults to authenticated user). |
| Parameter | Type | Description | |-----------|------|-------------| | text | string | Required. The note text (HTML supported) |
| Parameter | Type | Description | |-----------|------|-------------| | status | string | Filter by status: active, pending, closed, spam, or all (default: active) | | folderId | number | Filter by folder ID | | assignedTo | number | Filter by user ID | | customerId | number | Filter by customer ID | | number | number | Filter by conversation number | | modifiedSince | string | ISO8601 date to filter conversations modified after this date | | sortField | string | Sort field: createdAt, mailboxId, modifiedAt, number, score, status, subject (default: createdAt) | | sortOrder | string | Sort order: asc or desc (default: desc) | | tag | string | Filter by tag name | | query | string | Advanced search query in fieldId:value format | | embed | string | Comma-separated list of resources to embed: threads | | page | number | Page number for pagination (default: 1) |
config.apply system for securely managing sensitive details.API_KEY and APP_SECRET) with others.安装 Helpscout 后,可以对 AI 说这些话来触发它
Send a Slack message to the #engineering channel about the deployment
Formats and sends the message with relevant context, tagging the right people
Summarize all unread messages in my inbox from today
Reads messages across connected channels and returns a prioritized summary
Draft a reply to this customer complaint and send it for review
Writes an empathetic, professional response and routes it to the approval queue
将技能文件夹放到 ~/.claude/skills/helpscout/ 目录(个人级,所有项目可用),或 .claude/skills/helpscout/(项目级)。重启 AI 客户端后,用 /helpscout 主动调用,或让 AI 根据上下文自动发现并使用。
Helpscout 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Helpscout 可免费安装使用。请查阅仓库了解许可证信息。
Fetches messages from specific Helpscout inboxes
Helpscout 属于「Communication」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。