helpscout

Fetch and reply to Helpscout conversations

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "helpscout" with this command: npx skills add fabiensebban/helpscout

Helpscout Skill

Description

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.

Features

  • Fetch conversations from multiple Helpscout inboxes
  • Send replies to conversations (customer-visible or internal notes)
  • Filter by status, folder, assignee, customer, tags, and more
  • Sort conversations by various fields
  • Embed thread data directly in the response
  • Securely authenticate using an API key and App Secret
  • Handle potential errors like invalid credentials or network issues gracefully

Setup Instructions

To use this skill, you need to configure Helpscout credentials and specify the IDs of the inboxes you want to fetch conversations from.

1. Retrieve Helpscout API Key & App Secret

  1. Go to your Helpscout account.
  2. Navigate to Manage > Apps.
  3. Create or open your app to retrieve the following details:
    • API Key
    • App Secret

2. Collect Inbox IDs

  1. Retrieve the IDs of the inboxes you want to fetch conversations from using Helpscout's API documentation.

3. Save Credentials in OpenClaw

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

4. Verify Configuration

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).

Usage

Basic Usage

Fetch all active conversations from configured inboxes:

const { fetchAllInboxes } = require('./index.js');

// Fetch all active conversations (default)
const results = await fetchAllInboxes();

Advanced Filtering

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:user@example.com)',
  status: 'all'
});

Sending Replies

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.');

sendReply Options

ParameterTypeDescription
textstringRequired. The reply text (HTML supported)
inboxIdnumberInbox ID - required if customerId not provided (auto-fetches customer)
customerIdnumberCustomer ID - if not provided, will be auto-fetched using inboxId
importedbooleanMark as imported (won't email customer). Default: false
statusstringConversation status after reply: active, pending, closed. Optional.
userIdnumberUser ID sending the reply. Optional (defaults to authenticated user).

createNote

ParameterTypeDescription
textstringRequired. The note text (HTML supported)

Available Options (fetchConversations)

ParameterTypeDescription
statusstringFilter by status: active, pending, closed, spam, or all (default: active)
folderIdnumberFilter by folder ID
assignedTonumberFilter by user ID
customerIdnumberFilter by customer ID
numbernumberFilter by conversation number
modifiedSincestringISO8601 date to filter conversations modified after this date
sortFieldstringSort field: createdAt, mailboxId, modifiedAt, number, score, status, subject (default: createdAt)
sortOrderstringSort order: asc or desc (default: desc)
tagstringFilter by tag name
querystringAdvanced search query in fieldId:value format
embedstringComma-separated list of resources to embed: threads
pagenumberPage number for pagination (default: 1)

Security Best Practices

  • Never hardcode credentials into your codebase.
  • Use OpenClaw's config.apply system for securely managing sensitive details.
  • Avoid sharing sensitive parts of your configuration output (API_KEY and APP_SECRET) with others.

Contribution Guidelines

  • Ensure compliance with Helpscout's API usage policies.
  • Add documentation for any new features added.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Sendflare

通过 Sendflare SDK 发送带附件的电子邮件,管理联系人列表,支持 CC/BCC 和安全 API 认证。

Registry SourceRecently Updated
General

Playtomic - Book courts using padel-tui

This skill should be used when the user asks to "book a padel court", "find available padel courts", "search padel courts near me", "reserve a Playtomic cour...

Registry SourceRecently Updated
General

Fund Keeper

国内场外基金智能顾问 + 股票行情查询。实时估值、买卖建议、收益统计、定投计划、OCR 识图、股票 - 基金联动。支持离线模式、多数据源缓存。

Registry SourceRecently Updated