> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Help Scout

The Help Scout connector lets your AI agent act in each user's Help Scout account. Each user signs in to Help Scout once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 100 tools.

**Authentication:** OAuth 2.0
**Categories:** Customer Support, Communication
**Tools:** 100: 48 read, 38 write, 14 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Help Scout app
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=HELPSCOUT)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Help Scout connection

   In **AgentKit > Connections**, create a Help Scout connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Help Scout connections use your own OAuth app. Register one with Help Scout and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Help Scout connection.

5. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'helpscout'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Help Scout:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'helpscout_conversations_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "helpscout"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Help Scout:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="helpscout_conversations_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'helpscout_conversation_attachment_data_get',
  toolInput: {
    attachment_id: 1,
    conversation_id: 1,
  },
  connector: 'helpscout',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="helpscout_conversation_attachment_data_get",
    tool_input={
        "attachment_id": 1,
        "conversation_id": 1,
    },
    connection_name="helpscout",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `helpscout_conversation_attachment_data_get`

Get Attachment Data · Read-only

Get the content of a Help Scout conversation attachment as Base64 text.
Returns an object whose data field holds the Base64-encoded file.
Use conversation_attachment_data_get to read a file. Find attachment IDs in conversation_threads_list (`_embedded.attachments`).

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `attachment_id` (`integer`, required): Attachment ID from the thread's `_embedded.attachments[].id`.
- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.

Example input: `{"attachment_id":1,"conversation_id":1}`

### `helpscout_conversation_get`

Get Conversation · Read-only

Get one Help Scout conversation by ID.
Returns subject, status, inbox, assignee, customer, tags, custom fields, cc and bcc, snooze state and links, and the threads when embed is threads.
Use conversation_get when you have the ID. Use conversations_list or conversations_search to find it. Use conversation_threads_list for the full message history.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `embed` (`string`, optional): Set to threads to include the conversation's threads in the response. One of: `threads`.

Example input: `{"conversation_id":1}`

### `helpscout_conversation_thread_source_get`

Get Thread Original Source · Read-only

Get the original source of an email thread in a Help Scout conversation, as JSON.
Returns the raw email headers and body parts as received.
Use conversation_thread_source_get to inspect email headers or the raw message. Use conversation_threads_list for normal reading.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).

Example input: `{"conversation_id":1,"thread_id":1}`

### `helpscout_conversation_threads_list`

List Conversation Threads · Read-only

List the threads (customer messages, replies, notes, chats, phone calls and system events) of a Help Scout conversation, newest first.
Returns each thread's id, type, status, body, author, recipients, cc and bcc, and attachment links, with page totals.
Use conversation_threads_list to read the full message history. Use conversation_get for conversation-level details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 25 threads; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"conversation_id":1}`

### `helpscout_conversations_list`

List Conversations · Read-only

List Help Scout conversations newest first, filtered by inbox, status, tag, assignee, customer, email, number or date.
Returns conversations with id, number, subject, status, inbox, assignee, customer, tags and custom fields, plus a `_links.next` cursor link when more results exist.
Use conversations_list to browse with exact filters. Use conversations_search for full-text or OR/NOT queries on subject, body or other fields.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `assigned_id` (`integer`, optional): Only return conversations assigned to this user ID. Get IDs from List Users.
- `contact_id` (`string`, optional): Only return conversations of these customer IDs. One ID or several separated by commas.
- `created_since` (`string`, optional): Only return conversations created after this time, as ISO 8601 UTC.
- `cursor` (`string`, optional): Pagination cursor for the next page. Copy the `cursor` query value from `_links.next.href` in the previous response (for example `...?cursor=eyJpZCI6MTIzfQ==` gives `eyJpZCI6MTIzfQ==`). Leave empty for the first page.
- `custom_fields_by_ids` (`string`, optional): Filter by custom field values as fieldId:value pairs separated by commas. Requires exactly one inbox_id. For dropdown fields the value is the option ID from List Inbox Custom Fields.
- `email` (`string`, optional): Only return conversations whose customer has exactly this email address. Accepts one address.
- `embed` (`string`, optional): Set to threads to include each conversation's threads in the response (chat threads are truncated). One of: `threads`.
- `inbox_id` (`string`, optional): Only return conversations in these inboxes. One inbox ID or several separated by commas. Get IDs from List Inboxes.
- `modified_since` (`string`, optional): Only return conversations modified after this time, as ISO 8601 UTC.
- `number` (`integer`, optional): Look up a conversation by the conversation number shown in the Help Scout app.
- `status` (`string`, optional): Conversation status filter, one value or several separated by commas: active, pending, closed, spam, open (active and pending) or all. Defaults to active.
- `tag` (`string`, optional): Only return conversations with these tag names. One tag or several separated by commas.

Example input: `{}`

### `helpscout_conversations_search`

Search Conversations · Read-only

Search Help Scout conversations with the advanced query syntax, combined with inbox, folder, status, tag and assignee filters, sorted by any supported field.
Returns a page of up to 25 conversations with id, number, subject, status, assignee, customer and tags, plus page totals.
Use conversations_search for text searches on subject, body or email, or for OR/NOT queries. Use conversations_list for simple exact filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `assigned_to` (`integer`, optional): Only return conversations assigned to this user ID.
- `custom_fields_by_ids` (`string`, optional): Filter by custom field values as fieldId:value pairs separated by commas. Requires mailbox.
- `embed` (`string`, optional): Set to threads to include threads in the response. One of: `threads`.
- `folder` (`integer`, optional): Only search this folder ID. Get IDs from List Inbox Folders.
- `mailbox` (`string`, optional): Only search these inboxes. One inbox ID or several separated by commas.
- `modified_since` (`string`, optional): Only return conversations modified after this time, as ISO 8601 UTC.
- `number` (`integer`, optional): Look up a conversation by its number.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 25 conversations; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.
- `query` (`string`, optional): Advanced search query in parentheses. Fields include subject, body, email, tag, customerIds, number, assigned, mailboxid, createdAt and modifiedAt; combine them with AND, OR and NOT. Example: (subject:"refund" AND tag:"vip").
- `sort_field` (`string`, optional): Field to sort by. Defaults to createdAt. One of: `createdAt`, `customerEmail`, `customerName`, `mailboxid`, `modifiedAt`, `number`, `score`, `status`, `subject`, `waitingSince`.
- `sort_order` (`string`, optional): Sort direction, asc or desc. Defaults to desc. One of: `asc`, `desc`.
- `status` (`string`, optional): Status filter: active, all, closed, open, pending or spam. Defaults to active. One of: `active`, `all`, `closed`, `open`, `pending`, `spam`.
- `tag` (`string`, optional): Only return conversations with these tag names, separated by commas.

Example input: `{}`

### `helpscout_customer_address_get`

Get Customer Address · Read-only

Get the postal address of a Help Scout customer.
Returns city, state, postal code, country and address lines.
Use customer_address_get to read the address alone. customer_get also embeds it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_chat_handles_list`

List Customer Chat Handles · Read-only

List the chat handles of a Help Scout customer.
Returns each entry's id, type and value.
Use customer_chat_handles_list to get entry IDs before an update or delete. customer_get also embeds them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_emails_list`

List Customer Emails · Read-only

List the emails of a Help Scout customer.
Returns each entry's id, type and value.
Use customer_emails_list to get entry IDs before an update or delete. customer_get also embeds them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_get`

Get Customer · Read-only

Get one Help Scout customer by ID.
Returns the profile (name, job title, location, notes, organization, conversation count) with embedded emails, phones, chat handles, social profiles, websites, address and properties.
Use customer_get when you have the ID. Use customers_list or customers_search to find it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_phones_list`

List Customer Phones · Read-only

List the phones of a Help Scout customer.
Returns each entry's id, type and value.
Use customer_phones_list to get entry IDs before an update or delete. customer_get also embeds them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_properties_list`

List Customer Properties · Read-only

List the customer property definitions of the Help Scout account.
Returns each property's slug, name, type (number, text, url, date or dropdown) and dropdown options.
Use customer_properties_list to get slugs and option IDs before customer_properties_update or customer_create.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `helpscout_customer_social_profiles_list`

List Customer Social Profiles · Read-only

List the social profiles of a Help Scout customer.
Returns each entry's id, type and value.
Use customer_social_profiles_list to get entry IDs before an update or delete. customer_get also embeds them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_websites_list`

List Customer Websites · Read-only

List the websites of a Help Scout customer.
Returns each entry's id, value.
Use customer_websites_list to get entry IDs before an update or delete. customer_get also embeds them.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customers_list`

List Customers · Read-only

List Help Scout customers newest first, filtered by name, email, creation or modification date, or an advanced query.
Returns customers with id, name, emails, job title, organization and conversation count, plus a `_links.next` cursor link when more results exist.
Use customers_list to find customers across all inboxes. Use customers_search to filter by inbox or sort by name or date.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_since` (`string`, optional): Only return customers created after this time, as ISO 8601 UTC.
- `cursor` (`string`, optional): Pagination cursor for the next page. Copy the `cursor` query value from `_links.next.href` in the previous response (for example `...?cursor=eyJpZCI6MTIzfQ==` gives `eyJpZCI6MTIzfQ==`). Leave empty for the first page.
- `email` (`string`, optional): Only return customers with this email address.
- `first_name` (`string`, optional): Only return customers with this first name.
- `last_name` (`string`, optional): Only return customers with this last name.
- `modified_since` (`string`, optional): Only return customers modified after this time, as ISO 8601 UTC.
- `query` (`string`, optional): Advanced search query in parentheses on firstName, lastName, email or modifiedAt, combined with AND or OR. Example: (email:"bear@acme.com").

Example input: `{}`

### `helpscout_customers_search`

Search Customers · Read-only

Search Help Scout customers by inbox, name, modification date or advanced query, sorted by name or date.
Returns a page of up to 50 customers with id, name, emails and organization, plus page totals.
Use customers_search to limit to one inbox or sort results. Use customers_list for newest-first browsing with an email filter.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `first_name` (`string`, optional): Only return customers with this first name.
- `last_name` (`string`, optional): Only return customers with this last name.
- `mailbox` (`integer`, optional): Only return customers from this inbox ID.
- `modified_since` (`string`, optional): Only return customers modified after this time, as ISO 8601 UTC.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 customers; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.
- `query` (`string`, optional): Advanced search query in parentheses on firstName, lastName, email or modifiedAt, combined with AND or OR. Example: (email:"bear@acme.com").
- `sort_field` (`string`, optional): Field to sort by. Defaults to createdAt. One of: `createdAt`, `firstName`, `lastName`, `modifiedAt`.
- `sort_order` (`string`, optional): Sort direction, asc or desc. Defaults to desc. One of: `asc`, `desc`.

Example input: `{}`

### `helpscout_inbox_custom_fields_list`

List Inbox Custom Fields · Read-only

List the conversation custom fields defined on a Help Scout inbox.
Returns each field's id, name, type, required flag, order, system type and dropdown options with their IDs.
Use inbox_custom_fields_list to get field and option IDs before conversation_custom_fields_update or custom field filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 custom fields; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"inbox_id":1}`

### `helpscout_inbox_folders_list`

List Inbox Folders · Read-only

List the folders of a Help Scout inbox, such as Unassigned, Mine, Drafts and team or user folders.
Returns each folder's id, name, type, user ID (for personal folders) and active and total conversation counts.
Use inbox_folders_list to get folder IDs for conversations_search and report filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 folders; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"inbox_id":1}`

### `helpscout_inbox_get`

Get Inbox · Read-only

Get one Help Scout inbox by ID.
Returns name, slug, email address, timestamps and links to its folders and custom fields.
Use inbox_get for one inbox's details. Use inboxes_list to find the ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.

Example input: `{"inbox_id":1}`

### `helpscout_inbox_routing_get`

Get Inbox Routing · Read-only

Get the automatic conversation routing settings of a Help Scout inbox.
Returns whether routing is enabled, the assignment method and limit, the users in the rotation and each user's eligibility.
Use inbox_routing_get to see who receives new conversations automatically.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.

Example input: `{"inbox_id":1}`

### `helpscout_inboxes_list`

List Inboxes · Read-only

List the Help Scout inboxes (mailboxes) the connected user can access.
Returns each inbox's id, name, slug, email address and timestamps, with page totals.
Use inboxes_list to get inbox IDs for conversation, report and saved reply tools.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 inboxes; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_organization_conversations_list`

List Organization Conversations · Read-only

List the conversations of all customers in a Help Scout organization.
Returns conversations with id, number, subject, status and customer, with page totals.
Use organization_conversations_list for a company's support history. Use conversations_list for other filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 conversations; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"organization_id":1}`

### `helpscout_organization_customers_list`

List Organization Customers · Read-only

List the customers that belong to a Help Scout organization.
Returns customers with id, name and emails, with page totals.
Use organization_customers_list to see who works at a company.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 customers; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"organization_id":1}`

### `helpscout_organization_get`

Get Organization · Read-only

Get one Help Scout organization by ID.
Returns name, website, domains, location, phones, note and brand color, and optionally customer and conversation counts and property values.
Use organization_get for one organization. Use organization_customers_list or organization_conversations_list for related records.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `include_counts` (`boolean`, optional): Set to true to include customer and conversation counts.
- `include_properties` (`boolean`, optional): Set to true to include organization property values.

Example input: `{"organization_id":1}`

### `helpscout_organization_properties_list`

List Organization Properties · Read-only

List the organization property definitions of the Help Scout account (up to 50).
Returns each property's slug, name, type and dropdown options.
Use organization_properties_list to get slugs before organization_property_value_set.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `helpscout_organization_property_get`

Get Organization Property · Read-only

Get one organization property definition by slug.
Returns its slug, name, type and dropdown options.
Use organization_property_get to check a property's type and allowed values.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `slug` (`string`, required): Organization property slug. Get it from List Organization Properties.

Example input: `{"slug":"<slug>"}`

### `helpscout_organizations_list`

List Organizations · Read-only

List the organizations (companies) of the Help Scout account, 50 per page.
Returns each organization's id, name, website, domains, location, phones and note, with page totals.
Use organizations_list to find organization IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 organizations; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.
- `sort` (`string`, optional): Sort field with an optional direction after a comma: name, customerCount, conversationCount or lastInteractionAt, then asc or desc. Defaults to lastInteractionAt,desc.

Example input: `{}`

### `helpscout_rating_get`

Get Rating · Read-only

Get one customer satisfaction rating by ID.
Returns the rating value, the customer's comments, the user rated, the customer, and the conversation and thread IDs.
Use rating_get for one rating's details. Use report_happiness_ratings to list ratings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `rating_id` (`integer`, required): Rating ID, for example from Happiness Ratings Report.

Example input: `{"rating_id":1}`

### `helpscout_report_company`

Company Report · Read-only

Get the Help Scout company report for a period: customers helped, closed conversations, replies, replies per day, happiness score and per-user stats.
Returns current and previous-period totals and user-level figures.
Use report_company for an account-wide overview. Use report_user for one person and report_productivity for team speed.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>"}`

### `helpscout_report_conversations`

Conversations Report · Read-only

Get the Help Scout conversations report for a period: total and new conversations, conversations per day, busiest day and time, and top tags, customers, saved replies, workflows and custom fields.
Returns current and previous-period figures.
Use report_conversations for volume and topic trends. Use report_company for overall team performance.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>"}`

### `helpscout_report_happiness`

Happiness Report · Read-only

Get the Help Scout happiness (customer satisfaction) report for a period.
Returns the happiness score and the share of great, okay and not good ratings, current and previous.
Use report_happiness for the overall score. Use report_happiness_ratings to read individual ratings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>"}`

### `helpscout_report_happiness_ratings`

Happiness Ratings Report · Read-only

List the individual customer satisfaction ratings for a period, with optional rating filter and sorting.
Returns each rating's id, comments, customer, rated user, conversation number and thread, with page totals.
Use report_happiness_ratings to read ratings and comments. Use rating_get for one rating.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 25 ratings; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `rating` (`string`, optional): Only include this rating: great, ok, not-good or all. One of: `great`, `ok`, `not-good`, `all`.
- `sort_field` (`string`, optional): Sort by number, modifiedAt or rating. One of: `number`, `modifiedAt`, `rating`.
- `sort_order` (`string`, optional): Sort direction, ASC or DESC. One of: `ASC`, `DESC`.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>"}`

### `helpscout_report_productivity`

Productivity Report · Read-only

Get the Help Scout productivity report for a period: first response time, response time, resolution time, replies per conversation and handle time.
Returns current and previous-period figures with distributions.
Use report_productivity for team speed. Use report_happiness for customer satisfaction.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `office_hours` (`boolean`, optional): Set to true to count only office hours (office hours must be enabled). Defaults to false.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>"}`

### `helpscout_report_user`

User Report · Read-only

Get the Help Scout report for one user over a period: replies, resolutions, customers helped, response and resolution times and happiness.
Returns current and previous-period figures for that user.
Use report_user to review one person's performance. Use report_company for the whole team.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end` (`string`, required): End of the report period, as ISO 8601 UTC.
- `start` (`string`, required): Start of the report period, as ISO 8601 UTC.
- `user` (`integer`, required): ID of the user to report on. Get it from List Users.
- `folders` (`string`, optional): Only include these folder IDs, separated by commas.
- `mailboxes` (`string`, optional): Only include these inbox IDs, separated by commas.
- `office_hours` (`boolean`, optional): Set to true to count only office hours (office hours must be enabled). Defaults to false.
- `previous_end` (`string`, optional): End of the previous comparison period, as ISO 8601 UTC.
- `previous_start` (`string`, optional): Start of a previous period to compare against, as ISO 8601 UTC.
- `tags` (`string`, optional): Only include conversations with these tag IDs, separated by commas.
- `types` (`string`, optional): Only include these conversation types, separated by commas: email, chat, phone.

Example input: `{"end":"<end>","start":"<start>","user":1}`

### `helpscout_saved_replies_list`

List Saved Replies · Read-only

List the saved replies (canned responses) of a Help Scout inbox.
Returns each saved reply's id, name and preview.
Use saved_replies_list to find a saved reply. Use saved_reply_get for its full text.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `include_chat_replies` (`boolean`, optional): Set to true to also include chat-only saved replies. Defaults to false.

Example input: `{"inbox_id":1}`

### `helpscout_saved_reply_get`

Get Saved Reply · Read-only

Get one saved reply of a Help Scout inbox.
Returns its id, name, email text and chat text.
Use saved_reply_get to read the text before sending it with conversation_reply_create.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `saved_reply_id` (`integer`, required): Saved reply ID. Get it from List Saved Replies.

Example input: `{"inbox_id":1,"saved_reply_id":1}`

### `helpscout_system_user_get`

Get System User · Read-only

Get one Help Scout system user (such as an AI agent) by ID.
Returns its id, name and type.
Use system_user_get when a conversation's createdBy or assignee has type system_user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `system_user_id` (`integer`, required): System user ID.

Example input: `{"system_user_id":1}`

### `helpscout_system_users_list`

List System Users · Read-only

List the system users (such as AI agents) of the Help Scout account.
Returns each system user's id, name and type, with page totals.
Use system_users_list to identify conversations created or assigned to AI agents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 system users; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_tag_get`

Get Tag · Read-only

Get one Help Scout tag by ID.
Returns its name, slug, color, ticket count and timestamps.
Use tag_get when you have the tag ID. Use tags_list to browse tags.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `tag_id` (`integer`, required): Tag ID. Get it from List Tags.

Example input: `{"tag_id":1}`

### `helpscout_tags_list`

List Tags · Read-only

List the tags used across all Help Scout inboxes, in alphabetical order.
Returns each tag's id, name, slug, color, ticket count and timestamps, with page totals.
Use tags_list to see available tag names. Use conversation_tags_update to tag a conversation.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 tags; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_team_members_list`

List Team Members · Read-only

List the users in a Help Scout team.
Returns each member's id, name, email and role, with page totals.
Use team_members_list to see who belongs to a team.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `team_id` (`integer`, required): Team ID. Get it from List Teams.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 members; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{"team_id":1}`

### `helpscout_teams_list`

List Teams · Read-only

List the teams of the Help Scout account.
Returns each team's id, name, timezone and photo, with page totals.
Use teams_list to get team IDs; a team ID can be used to assign conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 teams; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_user_get`

Get User · Read-only

Get one Help Scout user by ID.
Returns name, email, role, timezone, job title, phone, type and photo.
Use user_get when you have the ID. Use users_list to find it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`integer`, required): Help Scout user ID. Get it from List Users.

Example input: `{"user_id":1}`

### `helpscout_user_me_get`

Get Current User · Read-only

Get the Help Scout user the connection is authorized as.
Returns that user's id, name, email, role and timezone.
Use user_me_get to learn who is connected, for example to assign conversations to yourself.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `helpscout_user_status_get`

Get User Status · Read-only

Get the email (routing) and chat status of one Help Scout user. Light Users have no email status.
Returns the statuses and any custom status text and emoji.
Use user_status_get for one user. Use user_statuses_list for everyone.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`integer`, required): Help Scout user ID. Get it from List Users.

Example input: `{"user_id":1}`

### `helpscout_user_statuses_list`

List User Statuses · Read-only

List the email (routing) and chat status of every Help Scout user except Light Users.
Returns each user's id with their email and chat status and any custom status text and emoji.
Use user_statuses_list to see who is available. Use user_status_get for one user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 users; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_users_list`

List Users · Read-only

List the users of the Help Scout account, including invited users who have not accepted yet.
Returns each user's id, name, email, role, timezone, type and photo, with page totals.
Use users_list to get user IDs for assigning conversations. Use user_me_get for the connected user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, optional): Only return the user with exactly this email.
- `mailbox` (`integer`, optional): Only return users with access to this inbox ID.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 users; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.

Example input: `{}`

### `helpscout_workflows_list`

List Workflows · Read-only

List Help Scout workflows, optionally for one inbox or of one type.
Returns each workflow's id, name, type (manual or automatic), status, inbox and order, with page totals.
Use workflows_list to find a manual workflow ID before workflow_run.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `mailbox_id` (`integer`, optional): Only return workflows of this inbox ID.
- `page` (`integer`, optional): Page number to return, starting at 1. Each page holds up to 50 workflows; the response's `page.totalPages` says how many pages exist. Leave empty for the first page.
- `type` (`string`, optional): Only return workflows of this type: manual or automatic. One of: `manual`, `automatic`.

Example input: `{}`

### `helpscout_conversation_attachment_create`

Upload Attachment to Thread · Write

Attach a file, sent as Base64 text, to a thread in a Help Scout conversation. Help Scout scans uploads and blocks malicious files.
Returns an empty body on success; the new attachment ID is in the Resource-Id response header.
Use conversation_attachment_create to add a file to an existing thread. To attach files while writing, use the attachments input of conversation_reply_create or conversation_note_create.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `data` (`string`, required): File content encoded as Base64.
- `file_name` (`string`, required): File name, with extension.
- `mime_type` (`string`, required): MIME type of the file.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).

Example input: `{"conversation_id":1,"data":"<data>","file_name":"<file_name>","mime_type":"<mime_type>","thread_id":1}`

### `helpscout_conversation_chat_thread_create`

Add Chat Thread to Conversation · Write

Add a chat message thread to a Help Scout conversation.
Returns an empty body on success; the new thread ID is in the Resource-Id response header.
Use conversation_chat_thread_create to log chat transcripts. Use conversation_customer_thread_create for email messages.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `text` (`string`, required): Chat text.
- `attachments` (`array`, optional): Files to attach to the thread. Each file needs its name, its MIME type and its content as a Base64 string. Example: [{"fileName": "invoice.txt", "mimeType": "text/plain", "data": "aGVsbG8="}].
- `created_at` (`string`, optional): Creation time to record for an imported thread, as ISO 8601 UTC. Only allowed when imported is true.
- `customer_email` (`string`, optional): Email of the customer in the chat, used when customer_id is not set. If no customer has this email, Help Scout creates one using the first and last name below.
- `customer_first_name` (`string`, optional): First name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `customer_id` (`integer`, optional): ID of the Help Scout customer in the chat. Provide this or customer_email; when both are set, the ID wins.
- `customer_last_name` (`string`, optional): Last name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `imported` (`boolean`, optional): Set to true to add the thread for historical purposes only (for example when migrating from another help desk). No emails or notifications are sent and the conversation is not reopened.

Example input: `{"conversation_id":1,"text":"<text>"}`

### `helpscout_conversation_create`

Create Conversation · Write

Create a Help Scout conversation in an inbox with a first thread (a customer message, a reply, a note, a chat or a phone call).
Returns an empty body on success; the new conversation ID is in the Resource-Id response header.
Use conversation_create to start a new conversation. Use conversation_reply_create, conversation_note_create or conversation_customer_thread_create to add to an existing one.
Get the inbox ID from inboxes_list first.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `mailbox_id` (`integer`, required): ID of the inbox to create the conversation in. Get it from List Inboxes.
- `status` (`string`, required): Status of the new conversation: active, closed or pending. One of: `active`, `closed`, `pending`.
- `subject` (`string`, required): Subject of the conversation.
- `type` (`string`, required): Conversation type: email, chat or phone. One of: `email`, `chat`, `phone`.
- `assign_to` (`integer`, optional): User or team ID to assign the conversation to. Leave empty to follow the inbox's assignment settings.
- `auto_reply` (`boolean`, optional): Set to true to send the inbox's auto reply, if the conversation has at least one customer thread.
- `closed_at` (`string`, optional): Close time to record for an imported closed conversation, as ISO 8601 UTC.
- `created_at` (`string`, optional): Creation time to record, as ISO 8601 UTC. Mostly used with imported.
- `customer_email` (`string`, optional): Email of the customer the conversation is with, used when customer_id is not set. If no customer has this email, Help Scout creates one using the first and last name below.
- `customer_first_name` (`string`, optional): First name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `customer_id` (`integer`, optional): ID of the Help Scout customer the conversation is with. Provide this or customer_email; when both are set, the ID wins.
- `customer_last_name` (`string`, optional): Last name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `fields` (`array`, optional): Custom field values to set, each with the field ID and its value. Get IDs from List Inbox Custom Fields. Example: [{"id": 531, "value": "trial"}].
- `imported` (`boolean`, optional): Set to true to import a historical conversation. No emails or notifications are sent.
- `tags` (`array`, optional): Tag names to add to the conversation.
- `text` (`string`, optional): Text of the first thread. Required unless threads is set. HTML is allowed.
- `thread_type` (`string`, optional): Type of the first thread built from text: customer (a message from the customer), reply (from your team, emailed to the customer), note (internal), chat or phone. Defaults to customer. One of: `customer`, `reply`, `note`, `chat`, `phone`. Default: `customer`.
- `threads` (`array`, optional): Full list of threads, for conversations that need more than one thread or extra thread options. Overrides text and thread_type. Each thread has a type (customer, reply, note, chat or phone), its text, and for every type except note the customer it involves. Example: [{"type": "customer", "customer": {"email": "bear@acme.com"}, "text": "Hi"}].
- `user` (`integer`, optional): ID of the Help Scout user creating the conversation. Defaults to the connected user.

Example input: `{"mailbox_id":1,"status":"active","subject":"<subject>","type":"email"}`

### `helpscout_conversation_custom_fields_update`

Update Conversation Custom Fields · Write

Replace the custom field values of a Help Scout conversation. Fields left out are cleared, except Help Scout system fields such as Topics and Sentiment.
Returns an empty body on success.
Use conversation_custom_fields_update to set custom fields; send every value the conversation should keep. Get field and option IDs from inbox_custom_fields_list first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `fields` (`array`, required): Complete list of custom field values, each with the field ID and its value as a string. Dates use YYYY-MM-DD, dropdowns use the option ID, numbers are integers. Example: [{"id": 104, "value": "2024-12-31"}].

Example input: `{"conversation_id":1,"fields":[{"id":104,"value":"2024-12-31"}]}`

### `helpscout_conversation_customer_thread_create`

Add Customer Message to Conversation · Write

Add a message from the customer to a Help Scout conversation, as if the customer wrote in. This reopens the conversation unless imported is true.
Returns an empty body on success; the new thread ID is in the Resource-Id response header.
Use conversation_customer_thread_create to record an incoming customer message. Use conversation_reply_create for messages from your team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `text` (`string`, required): Message text from the customer. HTML is allowed.
- `attachments` (`array`, optional): Files to attach to the thread. Each file needs its name, its MIME type and its content as a Base64 string. Example: [{"fileName": "invoice.txt", "mimeType": "text/plain", "data": "aGVsbG8="}].
- `bcc` (`array`, optional): Email addresses to blind-copy on the thread.
- `cc` (`array`, optional): Email addresses to copy on the thread.
- `created_at` (`string`, optional): Creation time to record for an imported thread, as ISO 8601 UTC. Only allowed when imported is true.
- `customer_email` (`string`, optional): Email of the customer who wrote the message, used when customer_id is not set. If no customer has this email, Help Scout creates one using the first and last name below.
- `customer_first_name` (`string`, optional): First name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `customer_id` (`integer`, optional): ID of the Help Scout customer who wrote the message. Provide this or customer_email; when both are set, the ID wins.
- `customer_last_name` (`string`, optional): Last name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `imported` (`boolean`, optional): Set to true to add the thread for historical purposes only (for example when migrating from another help desk). No emails or notifications are sent and the conversation is not reopened.

Example input: `{"conversation_id":1,"text":"<text>"}`

### `helpscout_conversation_note_create`

Add Note to Conversation · Write

Add an internal note to a Help Scout conversation. Customers never see notes.
Returns an empty body on success; the new thread ID is in the Resource-Id response header.
Use conversation_note_create for internal comments and handoffs. Use conversation_reply_create to write to the customer.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `text` (`string`, required): Note text, visible only to your team. HTML is allowed.
- `attachments` (`array`, optional): Files to attach to the thread. Each file needs its name, its MIME type and its content as a Base64 string. Example: [{"fileName": "invoice.txt", "mimeType": "text/plain", "data": "aGVsbG8="}].
- `created_at` (`string`, optional): Creation time to record for an imported thread, as ISO 8601 UTC. Only allowed when imported is true.
- `imported` (`boolean`, optional): Set to true to add the thread for historical purposes only (for example when migrating from another help desk). No emails or notifications are sent and the conversation is not reopened.
- `status` (`string`, optional): Conversation status to set while adding the note. inbox_predefined uses the inbox's default. One of: `active`, `closed`, `inbox_predefined`, `open`, `pending`, `spam`.
- `user` (`integer`, optional): ID of the Help Scout user the note is from. Defaults to the connected user.

Example input: `{"conversation_id":1,"text":"<text>"}`

### `helpscout_conversation_phone_thread_create`

Add Phone Thread to Conversation · Write

Add a phone call record to a Help Scout conversation.
Returns an empty body on success; the new thread ID is in the Resource-Id response header.
Use conversation_phone_thread_create to log a call summary. Use conversation_note_create for other internal notes.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `text` (`string`, required): Summary or transcript of the phone call.
- `attachments` (`array`, optional): Files to attach to the thread. Each file needs its name, its MIME type and its content as a Base64 string. Example: [{"fileName": "invoice.txt", "mimeType": "text/plain", "data": "aGVsbG8="}].
- `created_at` (`string`, optional): Creation time to record for an imported thread, as ISO 8601 UTC. Only allowed when imported is true.
- `customer_email` (`string`, optional): Email of the customer on the call, used when customer_id is not set. If no customer has this email, Help Scout creates one using the first and last name below.
- `customer_first_name` (`string`, optional): First name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `customer_id` (`integer`, optional): ID of the Help Scout customer on the call. Provide this or customer_email; when both are set, the ID wins.
- `customer_last_name` (`string`, optional): Last name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `imported` (`boolean`, optional): Set to true to add the thread for historical purposes only (for example when migrating from another help desk). No emails or notifications are sent and the conversation is not reopened.

Example input: `{"conversation_id":1,"text":"<text>"}`

### `helpscout_conversation_reply_create`

Reply to Conversation · Write

Send a reply from your team to the customer on a Help Scout conversation, or save it as a draft.
Returns an empty body on success; the new thread ID is in the Resource-Id response header.
Use conversation_reply_create to answer the customer by email. Use conversation_note_create for an internal note the customer never sees.
Get the customer ID from conversation_get (primaryCustomer.id).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `text` (`string`, required): Reply text sent to the customer. HTML is allowed.
- `assign_to` (`integer`, optional): User or team ID to assign the conversation to once the reply is published.
- `attachments` (`array`, optional): Files to attach to the thread. Each file needs its name, its MIME type and its content as a Base64 string. Example: [{"fileName": "invoice.txt", "mimeType": "text/plain", "data": "aGVsbG8="}].
- `bcc` (`array`, optional): Email addresses to blind-copy on the thread.
- `cc` (`array`, optional): Email addresses to copy on the thread.
- `created_at` (`string`, optional): Creation time to record for an imported thread, as ISO 8601 UTC. Only allowed when imported is true.
- `customer_email` (`string`, optional): Email of the customer being replied to, used when customer_id is not set. If no customer has this email, Help Scout creates one using the first and last name below.
- `customer_first_name` (`string`, optional): First name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `customer_id` (`integer`, optional): ID of the Help Scout customer being replied to. Provide this or customer_email; when both are set, the ID wins.
- `customer_last_name` (`string`, optional): Last name for a new customer created from customer_email (1 to 40 characters). Ignored when the customer already exists.
- `draft` (`boolean`, optional): Set to true to save the reply as a draft instead of sending it.
- `imported` (`boolean`, optional): Set to true to add the thread for historical purposes only (for example when migrating from another help desk). No emails or notifications are sent and the conversation is not reopened.
- `status` (`string`, optional): Conversation status after the reply. When not set, a reply reactivates the conversation. inbox_predefined uses the inbox's default. One of: `active`, `closed`, `inbox_predefined`, `open`, `pending`, `spam`.
- `user` (`integer`, optional): ID of the Help Scout user the reply is from. Defaults to the connected user.

Example input: `{"conversation_id":1,"text":"<text>"}`

### `helpscout_conversation_snooze`

Snooze Conversation · Write

Snooze a Help Scout conversation until a future time, replacing any earlier snooze.
Returns an empty body on success.
Use conversation_snooze to hide a conversation until later. Use conversation_unsnooze to bring it back now.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `snoozed_until` (`string`, required): When the snooze ends, as a future ISO 8601 UTC time no later than 2100.
- `unsnooze_on_customer_reply` (`boolean`, required): Whether a new customer reply ends the snooze early.

Example input: `{"conversation_id":1,"snoozed_until":"<snoozed_until>","unsnooze_on_customer_reply":true}`

### `helpscout_conversation_tags_update`

Update Conversation Tags · Write

Replace the full tag list of a Help Scout conversation. Tags left out are removed and unknown tag names are created.
Returns an empty body on success.
Use conversation_tags_update to add or remove tags; send every tag the conversation should keep. Read current tags with conversation_get first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `tags` (`array`, required): Complete list of tag names for the conversation. Send an empty list to remove all tags.

Example input: `{"conversation_id":1,"tags":[]}`

### `helpscout_conversation_thread_schedule`

Schedule Draft Reply · Write

Schedule a draft reply or forward thread in a Help Scout conversation to send at a future time, replacing any earlier schedule.
Returns an empty body on success.
Use conversation_thread_schedule to send a draft later. Use conversation_thread_schedule_publish to send it now and conversation_thread_unschedule to cancel.
Create the draft with conversation_reply_create (draft true) first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `scheduled_for` (`string`, required): When to send, as a future ISO 8601 UTC time no later than 2100.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).
- `unschedule_on_customer_reply` (`boolean`, required): Whether a new customer reply cancels the schedule.
- `send_as_creator` (`boolean`, optional): Send as the user who created the draft. Defaults to false.

Example input: `{"conversation_id":1,"scheduled_for":"<scheduled_for>","thread_id":1,"unschedule_on_customer_reply":true}`

### `helpscout_conversation_thread_schedule_publish`

Send Scheduled Reply Now · Write

Send a scheduled reply or forward thread in a Help Scout conversation now instead of at its scheduled time.
Returns an empty body on success.
Use conversation_thread_schedule_publish to send early. Scheduled threads send on their own otherwise.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).

Example input: `{"conversation_id":1,"thread_id":1}`

### `helpscout_conversation_thread_update`

Update Conversation Thread · Write

Edit the text of a thread, or hide or unhide a thread, in a Help Scout conversation. Set exactly one of text or hidden.
Returns an empty body on success. The original text stays viewable in the Help Scout app.
Use conversation_thread_update to correct or hide an existing message. Needs an administrator, or thread editing enabled on the account.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).
- `hidden` (`boolean`, optional): true to hide the thread, false to unhide it. Only for non-draft customer or reply threads.
- `text` (`string`, optional): New text for the thread.

Example input: `{"conversation_id":1,"thread_id":1}`

### `helpscout_conversation_update`

Update Conversation · Write

Change one property of a Help Scout conversation: subject, status, assignee, primary customer, inbox, or publish a draft. Set exactly one of the change fields per call.
Returns an empty body on success.
Use conversation_update for status, owner, subject or inbox changes. Use conversation_tags_update for tags and conversation_custom_fields_update for custom fields.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `assign_to` (`integer`, optional): User or team ID to make the conversation owner.
- `mailbox_id` (`integer`, optional): Inbox ID to move the conversation to.
- `primary_customer_id` (`integer`, optional): Customer ID to set as the conversation's customer.
- `publish_draft` (`boolean`, optional): Set to true to publish a draft conversation.
- `status` (`string`, optional): New status: active, closed, open, pending or spam. One of: `active`, `closed`, `open`, `pending`, `spam`.
- `subject` (`string`, optional): New subject.
- `unassign` (`boolean`, optional): Set to true to remove the current assignee.

Example input: `{"conversation_id":1}`

### `helpscout_customer_address_create`

Add Customer Address · Write

Add a postal address to a Help Scout customer that has none.
Returns an empty body on success.
Use customer_address_create for a customer without an address. Use customer_address_update to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `city` (`string`, required): City.
- `country` (`string`, required): Country, as a two-letter code.
- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `postal_code` (`string`, required): Postal code.
- `state` (`string`, required): State or region.
- `lines` (`array`, optional): Street address lines.

Example input: `{"city":"<city>","country":"<country>","customer_id":1,"postal_code":"<postal_code>","state":"<state>"}`

### `helpscout_customer_address_update`

Update Customer Address · Write

Replace the postal address of a Help Scout customer.
Returns an empty body on success.
Use customer_address_update to change an address. Use customer_address_create when the customer has none.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `city` (`string`, required): City.
- `country` (`string`, required): Country, as a two-letter code.
- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `postal_code` (`string`, required): Postal code.
- `state` (`string`, required): State or region.
- `lines` (`array`, optional): Street address lines.

Example input: `{"city":"<city>","country":"<country>","customer_id":1,"postal_code":"<postal_code>","state":"<state>"}`

### `helpscout_customer_chat_handles_create`

Add Customer Chat Handle · Write

Add a chat handle to a Help Scout customer.
Returns an empty body on success; the new entry ID is in the Resource-Id response header.
Use customer_chat_handles_create to add one entry. Use customer_update to change several fields at once.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `type` (`string`, required): Chat service: aim, gtalk, icq, msn, other, qq, skype, xmpp or yahoo. One of: `aim`, `gtalk`, `icq`, `msn`, `other`, `qq`, `skype`, `xmpp`, `yahoo`.
- `value` (`string`, required): The chat handle.

Example input: `{"customer_id":1,"type":"aim","value":"<value>"}`

### `helpscout_customer_chat_handles_update`

Update Customer Chat Handle · Write

Replace a chat handle entry of a Help Scout customer.
Returns an empty body on success.
Use customer_chat_handles_update to change an existing entry. Get its ID from customer_chat_handles_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `chat_id` (`integer`, required): ID of the chat handle entry. Get it from List Customer Chat Handles.
- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `type` (`string`, required): Chat service: aim, gtalk, icq, msn, other, qq, skype, xmpp or yahoo. One of: `aim`, `gtalk`, `icq`, `msn`, `other`, `qq`, `skype`, `xmpp`, `yahoo`.
- `value` (`string`, required): The chat handle.

Example input: `{"chat_id":1,"customer_id":1,"type":"aim","value":"<value>"}`

### `helpscout_customer_create`

Create Customer · Write

Create a Help Scout customer with profile details and optional emails, phones, chat handles, social profiles, websites, address and properties.
Returns an empty body on success; the new customer ID is in the Resource-Id response header.
Use customer_create to add a new customer. Use customer_update to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address` (`object`, optional): Postal address with city, state, postal code, country and optional address lines. Example: {"city": "Austin", "state": "TX", "postalCode": "78701", "country": "US", "lines": ["100 Main St"]}.
- `age` (`string`, optional): Customer's age, as text.
- `background` (`string`, optional): Notes about the customer (the Notes field in the app), up to 200 characters.
- `chats` (`array`, optional): Chat handles, each with a type (aim, gtalk, icq, msn, other, qq, skype, xmpp or yahoo) and the handle. Example: [{"type": "skype", "value": "vbear"}].
- `emails` (`array`, optional): Email addresses, each with a type (home, work or other) and the address. Example: [{"type": "work", "value": "bear@acme.com"}].
- `first_name` (`string`, optional): First name, 1 to 40 characters.
- `gender` (`string`, optional): Gender: male, female or unknown. One of: `male`, `female`, `unknown`.
- `job_title` (`string`, optional): Job title, up to 60 characters.
- `last_name` (`string`, optional): Last name, 1 to 40 characters.
- `location` (`string`, optional): Location, up to 60 characters.
- `organization_id` (`integer`, optional): ID of the Help Scout organization the customer belongs to. Get it from List Organizations.
- `phones` (`array`, optional): Phone numbers, each with a type (fax, home, mobile, other, pager or work) and the number. Example: [{"type": "work", "value": "+1 555 0100"}].
- `photo_type` (`string`, optional): Source of the photo. One of: `unknown`, `gravatar`, `twitter`, `facebook`, `googleprofile`, `googleplus`, `linkedin`, `instagram`.
- `photo_url` (`string`, optional): URL of the customer's photo, up to 200 characters.
- `properties` (`object`, optional): Customer property values keyed by property slug. Get slugs from List Customer Properties. Example: {"plan": "Pro", "seats": 5}.
- `social_profiles` (`array`, optional): Social profiles, each with a type (for example twitter, linkedin or facebook) and the handle or URL. Example: [{"type": "linkedin", "value": "https://linkedin.com/in/vbear"}].
- `websites` (`array`, optional): Websites, each with its URL. Example: [{"value": "https://acme.com"}].

Example input: `{}`

### `helpscout_customer_emails_create`

Add Customer Email · Write

Add a email to a Help Scout customer.
Returns an empty body on success; the new entry ID is in the Resource-Id response header.
Use customer_emails_create to add one entry. Use customer_update to change several fields at once.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `type` (`string`, required): Kind of email address: home, work or other. One of: `home`, `other`, `work`.
- `value` (`string`, required): The email address.

Example input: `{"customer_id":1,"type":"home","value":"<value>"}`

### `helpscout_customer_emails_update`

Update Customer Email · Write

Replace a email entry of a Help Scout customer.
Returns an empty body on success.
Use customer_emails_update to change an existing entry. Get its ID from customer_emails_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `email_id` (`integer`, required): ID of the email entry. Get it from List Customer Emails.
- `type` (`string`, required): Kind of email address: home, work or other. One of: `home`, `other`, `work`.
- `value` (`string`, required): The email address.

Example input: `{"customer_id":1,"email_id":1,"type":"home","value":"<value>"}`

### `helpscout_customer_overwrite`

Overwrite Customer · Write

Replace all profile fields of a Help Scout customer. Fields you leave out are cleared; emails, phones and other entries are not touched.
Returns an empty body on success.
Use customer_overwrite to set the whole profile at once. Use customer_update to change only some fields.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `age` (`string`, optional): Customer's age, as text.
- `background` (`string`, optional): Notes about the customer (the Notes field in the app), up to 200 characters.
- `first_name` (`string`, optional): First name, 1 to 40 characters.
- `gender` (`string`, optional): Gender: male, female or unknown. One of: `male`, `female`, `unknown`.
- `job_title` (`string`, optional): Job title, up to 60 characters.
- `last_name` (`string`, optional): Last name, 1 to 40 characters.
- `location` (`string`, optional): Location, up to 60 characters.
- `organization_id` (`integer`, optional): ID of the Help Scout organization the customer belongs to. Get it from List Organizations.
- `photo_type` (`string`, optional): Source of the photo. One of: `unknown`, `gravatar`, `twitter`, `facebook`, `googleprofile`, `googleplus`, `linkedin`, `instagram`.
- `photo_url` (`string`, optional): URL of the customer's photo, up to 200 characters.

Example input: `{"customer_id":1}`

### `helpscout_customer_phones_create`

Add Customer Phone · Write

Add a phone to a Help Scout customer.
Returns an empty body on success; the new entry ID is in the Resource-Id response header.
Use customer_phones_create to add one entry. Use customer_update to change several fields at once.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `type` (`string`, required): Kind of phone: fax, home, mobile, other, pager or work. One of: `fax`, `home`, `mobile`, `other`, `pager`, `work`.
- `value` (`string`, required): The phone number.

Example input: `{"customer_id":1,"type":"fax","value":"<value>"}`

### `helpscout_customer_phones_update`

Update Customer Phone · Write

Replace a phone entry of a Help Scout customer.
Returns an empty body on success.
Use customer_phones_update to change an existing entry. Get its ID from customer_phones_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `phone_id` (`integer`, required): ID of the phone entry. Get it from List Customer Phones.
- `type` (`string`, required): Kind of phone: fax, home, mobile, other, pager or work. One of: `fax`, `home`, `mobile`, `other`, `pager`, `work`.
- `value` (`string`, required): The phone number.

Example input: `{"customer_id":1,"phone_id":1,"type":"fax","value":"<value>"}`

### `helpscout_customer_properties_update`

Update Customer Properties · Write

Set or clear custom property values on a Help Scout customer.
Returns an empty body on success.
Use customer_properties_update for custom properties. Use customer_update for built-in profile fields.
Get property slugs from customer_properties_list first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `operations` (`array`, required): Operations, each with op (replace or remove), path (the property slug with a leading slash) and, for replace, the value. Numbers are integers, dates use YYYY-MM-DD, dropdowns take the option ID or label. Example: [{"op": "replace", "path": "/plan", "value": "Pro"}, {"op": "remove", "path": "/trial-end"}].

Example input: `{"customer_id":1,"operations":[{"op":"replace","path":"/plan","value":"Pro"},{"op":"remove","path":"/trial-end"}]}`

### `helpscout_customer_social_profiles_create`

Add Customer Social Profile · Write

Add a social profile to a Help Scout customer.
Returns an empty body on success; the new entry ID is in the Resource-Id response header.
Use customer_social_profiles_create to add one entry. Use customer_update to change several fields at once.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `type` (`string`, required): Social network of the profile. One of: `aboutme`, `facebook`, `flickr`, `forsquare`, `google`, `googleplus`, `linkedin`, `other`, `quora`, `tungleme`, `twitter`, `youtube`.
- `value` (`string`, required): Profile handle or URL.

Example input: `{"customer_id":1,"type":"aboutme","value":"<value>"}`

### `helpscout_customer_social_profiles_update`

Update Customer Social Profile · Write

Replace a social profile entry of a Help Scout customer.
Returns an empty body on success.
Use customer_social_profiles_update to change an existing entry. Get its ID from customer_social_profiles_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `social_profile_id` (`integer`, required): ID of the social profile entry. Get it from List Customer Social Profiles.
- `type` (`string`, required): Social network of the profile. One of: `aboutme`, `facebook`, `flickr`, `forsquare`, `google`, `googleplus`, `linkedin`, `other`, `quora`, `tungleme`, `twitter`, `youtube`.
- `value` (`string`, required): Profile handle or URL.

Example input: `{"customer_id":1,"social_profile_id":1,"type":"aboutme","value":"<value>"}`

### `helpscout_customer_update`

Update Customer · Write

Apply a list of JSON Patch operations to a Help Scout customer: change profile fields, or add, change or remove emails, phones, chat handles, social profiles, websites and address parts in one call.
Returns an empty body on success.
Use customer_update for partial changes. Use customer_overwrite to replace all profile fields, and customer_properties_update for custom properties.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `operations` (`array`, required): JSON Patch operations, each with op (add, remove or replace), path and, except for remove, value. Paths include /firstName, /lastName, /jobTitle, /location, /background, /organizationId, /emails, /emails/{emailId}, /phones, /chats, /socialProfiles, /websites and /address/city. A whole collection cannot be removed. Example: [{"op": "replace", "path": "/firstName", "value": "Karl"}, {"op": "add", "path": "/emails", "value": {"type": "work", "value": "karl@acme.com"}}].

Example input: `{"customer_id":1,"operations":[{"op":"replace","path":"/firstName","value":"Karl"},{"op":"add","path":"/emails","value":{"type":"work","value":"karl@acme.com"}}]}`

### `helpscout_customer_websites_create`

Add Customer Website · Write

Add a website to a Help Scout customer.
Returns an empty body on success; the new entry ID is in the Resource-Id response header.
Use customer_websites_create to add one entry. Use customer_update to change several fields at once.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `value` (`string`, required): Website URL.

Example input: `{"customer_id":1,"value":"<value>"}`

### `helpscout_customer_websites_update`

Update Customer Website · Write

Replace a website entry of a Help Scout customer.
Returns an empty body on success.
Use customer_websites_update to change an existing entry. Get its ID from customer_websites_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `value` (`string`, required): Website URL.
- `website_id` (`integer`, required): ID of the website entry. Get it from List Customer Websites.

Example input: `{"customer_id":1,"value":"<value>","website_id":1}`

### `helpscout_organization_create`

Create Organization · Write

Create a Help Scout organization (company).
Returns an empty body on success; the new organization ID is in the Resource-Id response header.
Use organization_create to add a company. Link customers to it with organization_id in customer_create or customer_update.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Organization name.
- `brand_color` (`string`, optional): Brand color as a hex value.
- `description` (`string`, optional): Description of the organization.
- `location` (`string`, optional): Two-letter country code.
- `note` (`string`, optional): Internal note about the organization.
- `phones` (`array`, optional): Phone numbers of the organization.
- `website` (`string`, optional): Website of the organization.

Example input: `{"name":"<name>"}`

### `helpscout_organization_property_value_set`

Set Organization Property Value · Write

Set the value of a property on a Help Scout organization, replacing any earlier value.
Returns an empty body on success.
Use organization_property_value_set to fill a property. Use organization_property_value_remove to clear it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `slug` (`string`, required): Organization property slug. Get it from List Organization Properties.
- `value` (`string`, required): Value as a string: plain text or URL, a number like "100", a date like "2024-01-15", or the exact label of a dropdown option.

Example input: `{"organization_id":1,"slug":"<slug>","value":"<value>"}`

### `helpscout_organization_update`

Update Organization · Write

Replace all fields of a Help Scout organization. Fields you leave out are cleared.
Returns an empty body on success.
Use organization_update with every field the organization should keep; read them with organization_get first.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `name` (`string`, required): Organization name.
- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `brand_color` (`string`, optional): Brand color as a hex value.
- `description` (`string`, optional): Description of the organization.
- `domains` (`array`, optional): Email domains used to match customers to this organization.
- `location` (`string`, optional): Two-letter country code.
- `note` (`string`, optional): Internal note about the organization.
- `phones` (`array`, optional): Phone numbers of the organization.
- `website` (`string`, optional): Website of the organization.

Example input: `{"name":"<name>","organization_id":1}`

### `helpscout_saved_reply_create`

Create Saved Reply · Write

Create a saved reply in a Help Scout inbox.
Returns an empty body on success; the new ID is in the Resource-Id response header.
Use saved_reply_create to add a canned response. Use saved_reply_update to change one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `name` (`string`, required): Name of the saved reply.
- `chat_text` (`string`, optional): Text used in chat replies.
- `text` (`string`, optional): Text used in email replies. HTML is allowed.

Example input: `{"inbox_id":1,"name":"<name>"}`

### `helpscout_saved_reply_update`

Update Saved Reply · Write

Replace the name and text of a saved reply in a Help Scout inbox.
Returns an empty body on success.
Use saved_reply_update to edit a canned response. Get its ID from saved_replies_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `name` (`string`, required): Name of the saved reply.
- `saved_reply_id` (`integer`, required): Saved reply ID. Get it from List Saved Replies.
- `chat_text` (`string`, optional): Text used in chat replies.
- `text` (`string`, optional): Text used in email replies. HTML is allowed.

Example input: `{"inbox_id":1,"name":"<name>","saved_reply_id":1}`

### `helpscout_user_status_set`

Set User Status · Write

Set a Help Scout user's status to active or away, with an optional custom status message. Administrators and Account Owners can set other users' status.
Returns an empty body on success.
Use user_status_set to mark someone available or away. Use user_status_get to read it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status` (`string`, required): New status: active or away. One of: `active`, `away`.
- `user_id` (`integer`, required): Help Scout user ID. Get it from List Users.
- `custom_status_emoji` (`string`, optional): Emoji shown with the custom status.
- `custom_status_emoji_name` (`string`, optional): Name of the emoji.
- `custom_status_text` (`string`, optional): Custom status message.

Example input: `{"status":"active","user_id":1}`

### `helpscout_workflow_run`

Run Workflow · Write

Run a manual Help Scout workflow on up to 50 conversations from the workflow's inbox.
Returns an empty body on success.
Use workflow_run to apply a saved set of actions to conversations. Only manual workflows can be run.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `conversation_ids` (`array`, required): IDs of up to 50 conversations from the workflow's inbox.
- `workflow_id` (`integer`, required): Manual workflow ID. Get it from List Workflows.

Example input: `{"conversation_ids":[],"workflow_id":1}`

### `helpscout_workflow_status_update`

Activate or Deactivate Workflow · Write

Turn a Help Scout workflow on or off.
Returns an empty body on success.
Use workflow_status_update to activate or deactivate a workflow.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `status` (`string`, required): New status: active or inactive. One of: `active`, `inactive`.
- `workflow_id` (`integer`, required): Workflow ID. Get it from List Workflows.

Example input: `{"status":"active","workflow_id":1}`

### `helpscout_conversation_attachment_delete`

Delete Attachment · Destructive

Delete an attachment from a Help Scout conversation. Only works while the conversation is a draft.
Returns an empty body on success.
Use conversation_attachment_delete to remove a file from a draft.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `attachment_id` (`integer`, required): Attachment ID from the thread's `_embedded.attachments[].id`.
- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.

Example input: `{"attachment_id":1,"conversation_id":1}`

### `helpscout_conversation_delete`

Delete Conversation · Destructive

Permanently delete a Help Scout conversation and its threads.
Returns an empty body on success.
Use conversation_delete only to remove a conversation for good. Use conversation_update with status closed or spam to keep it.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.

Example input: `{"conversation_id":1}`

### `helpscout_conversation_thread_unschedule`

Unschedule Reply · Destructive

Cancel the schedule of a reply or forward thread in a Help Scout conversation. The thread becomes a normal draft.
Returns an empty body on success.
Use conversation_thread_unschedule to stop a scheduled send. Use conversation_thread_schedule to reschedule.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.
- `thread_id` (`integer`, required): Thread ID inside the conversation. Get it from List Threads (`_embedded.threads[].id`).

Example input: `{"conversation_id":1,"thread_id":1}`

### `helpscout_conversation_unsnooze`

Unsnooze Conversation · Destructive

End the snooze of a Help Scout conversation now. It returns to its folder (Mine, Team or Unassigned) and is reactivated if needed.
Returns an empty body on success.
Use conversation_unsnooze to cancel a snooze. Use conversation_snooze to set or change one.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`integer`, required): Help Scout conversation ID (the internal `id`, not the conversation `number` shown in the app). Get it from List Conversations or Search Conversations.

Example input: `{"conversation_id":1}`

### `helpscout_customer_address_delete`

Delete Customer Address · Destructive

Remove the postal address of a Help Scout customer.
Returns an empty body on success.
Use customer_address_delete to clear the address.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"customer_id":1}`

### `helpscout_customer_chat_handles_delete`

Delete Customer Chat Handle · Destructive

Remove a chat handle entry from a Help Scout customer.
Returns an empty body on success.
Use customer_chat_handles_delete to remove one entry. Get its ID from customer_chat_handles_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `chat_id` (`integer`, required): ID of the chat handle entry. Get it from List Customer Chat Handles.
- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.

Example input: `{"chat_id":1,"customer_id":1}`

### `helpscout_customer_delete`

Delete Customer · Destructive

Permanently delete a Help Scout customer with their conversations and survey responses (GDPR erasure). There is no undo.
Returns an empty body on success. Fails with 403 if the connected user cannot see all of the customer's conversations, or, without async, if the customer has more than 100 conversations.
Use customer_delete only for erasure requests. Set async to true for customers with many conversations.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `async` (`boolean`, optional): Set to true to delete in the background (returns 202). Needed for customers with more than 100 conversations.

Example input: `{"customer_id":1}`

### `helpscout_customer_emails_delete`

Delete Customer Email · Destructive

Remove a email entry from a Help Scout customer.
Returns an empty body on success.
Use customer_emails_delete to remove one entry. Get its ID from customer_emails_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `email_id` (`integer`, required): ID of the email entry. Get it from List Customer Emails.

Example input: `{"customer_id":1,"email_id":1}`

### `helpscout_customer_phones_delete`

Delete Customer Phone · Destructive

Remove a phone entry from a Help Scout customer.
Returns an empty body on success.
Use customer_phones_delete to remove one entry. Get its ID from customer_phones_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `phone_id` (`integer`, required): ID of the phone entry. Get it from List Customer Phones.

Example input: `{"customer_id":1,"phone_id":1}`

### `helpscout_customer_social_profiles_delete`

Delete Customer Social Profile · Destructive

Remove a social profile entry from a Help Scout customer.
Returns an empty body on success.
Use customer_social_profiles_delete to remove one entry. Get its ID from customer_social_profiles_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `social_profile_id` (`integer`, required): ID of the social profile entry. Get it from List Customer Social Profiles.

Example input: `{"customer_id":1,"social_profile_id":1}`

### `helpscout_customer_websites_delete`

Delete Customer Website · Destructive

Remove a website entry from a Help Scout customer.
Returns an empty body on success.
Use customer_websites_delete to remove one entry. Get its ID from customer_websites_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`integer`, required): Help Scout customer ID. Get it from List Customers or Search Customers.
- `website_id` (`integer`, required): ID of the website entry. Get it from List Customer Websites.

Example input: `{"customer_id":1,"website_id":1}`

### `helpscout_organization_delete`

Delete Organization · Destructive

Delete a Help Scout organization and remove it from all its customers.
Returns an empty body on success.
Use organization_delete to remove a company. Its customers are kept.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.

Example input: `{"organization_id":1}`

### `helpscout_organization_property_value_remove`

Remove Organization Property Value · Destructive

Clear the value of a property on a Help Scout organization. The property definition is kept.
Returns an empty body on success.
Use organization_property_value_remove to empty one property value.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`integer`, required): Help Scout organization ID. Get it from List Organizations.
- `slug` (`string`, required): Organization property slug. Get it from List Organization Properties.

Example input: `{"organization_id":1,"slug":"<slug>"}`

### `helpscout_saved_reply_delete`

Delete Saved Reply · Destructive

Delete a saved reply from a Help Scout inbox.
Returns an empty body on success.
Use saved_reply_delete to remove a canned response.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `inbox_id` (`integer`, required): Help Scout inbox (mailbox) ID. Get it from List Inboxes.
- `saved_reply_id` (`integer`, required): Saved reply ID. Get it from List Saved Replies.

Example input: `{"inbox_id":1,"saved_reply_id":1}`

## Related

Other Customer Support connectors ([all 21](/agentkit/connectors/?category=customer-support)):

- [Crisp](/agentkit/connectors/crisp/): Scalekit connector, API key, 50 tools
- [Intercom](/agentkit/connectors/intercom/): Scalekit connector, OAuth, 113 tools
- [Freshdesk](/agentkit/connectors/freshdesk/): Scalekit connector, Username and password, 34 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
