Skip to content

integrations/ticketing/help-scout/dist

Interfaces

HelpScoutTicketingClientOptions

Extended by

Properties

accessToken?
optional accessToken?: string;
apiKey?
optional apiKey?: string;
baseUrl?
optional baseUrl?: string;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

providerClient?
optional providerClient?: HelpScoutTicketingProviderClient;
retry?
optional retry?: number | ProviderJsonRetryOptions;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;

HelpScoutTicketingIntegrationOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

HelpScoutTicketingClientOptions.accessToken

apiKey?
optional apiKey?: string;
Inherited from

HelpScoutTicketingClientOptions.apiKey

baseUrl?
optional baseUrl?: string;
Inherited from

HelpScoutTicketingClientOptions.baseUrl

fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

Inherited from

HelpScoutTicketingClientOptions.fetch

providerClient?
optional providerClient?: HelpScoutTicketingProviderClient;
Inherited from

HelpScoutTicketingClientOptions.providerClient

retry?
optional retry?: number | ProviderJsonRetryOptions;
Inherited from

HelpScoutTicketingClientOptions.retry

signal?
optional signal?: AbortSignal;
Inherited from

HelpScoutTicketingClientOptions.signal

timeoutMs?
optional timeoutMs?: number;
Inherited from

HelpScoutTicketingClientOptions.timeoutMs


HelpScoutTicketingProviderClient

Properties

rawClient?
optional rawClient?: unknown;

Methods

createConversation()
createConversation(payload): Promise<JsonObject>;
Parameters
Parameter Type
payload JsonObject
Returns

Promise\<JsonObject>

createNote()
createNote(conversationId, payload): Promise<JsonObject>;
Parameters
Parameter Type
conversationId string | number
payload JsonObject
Returns

Promise\<JsonObject>

createReply()
createReply(conversationId, payload): Promise<JsonObject>;
Parameters
Parameter Type
conversationId string | number
payload JsonObject
Returns

Promise\<JsonObject>

getConversation()
getConversation(conversationId): Promise<JsonObject>;
Parameters
Parameter Type
conversationId string | number
Returns

Promise\<JsonObject>

listConversations()
listConversations(query?): Promise<JsonObject>;
Parameters
Parameter Type
query? JsonObject
Returns

Promise\<JsonObject>

listThreads()
listThreads(conversationId): Promise<JsonObject>;
Parameters
Parameter Type
conversationId string | number
Returns

Promise\<JsonObject>

rawRequest()?
optional rawRequest<T>(operation, input?): Promise<T>;
Type Parameters
Type Parameter Default type
T JsonValue
Parameters
Parameter Type
operation string
input? unknown
Returns

Promise\<T>

readiness()
readiness(): Promise<JsonObject>;
Returns

Promise\<JsonObject>

updateConversation()
updateConversation(conversationId, patch): Promise<JsonObject>;
Parameters
Parameter Type
conversationId string | number
patch JsonObject | JsonObject[]
Returns

Promise\<JsonObject>


JsonObject

Indexable

[key: string]: JsonValue

ProviderJsonRetryOptions

Properties

attempts?
optional attempts?: number;
baseDelayMs?
optional baseDelayMs?: number;
maxDelayMs?
optional maxDelayMs?: number;
statusCodes?
optional statusCodes?: readonly number[];

Type Aliases

JsonPrimitive

type JsonPrimitive = string | number | boolean | null;

JsonValue

type JsonValue =
  | JsonPrimitive
  | JsonObject
  | JsonValue[];

Functions

createHelpScoutTicketingClient()

function createHelpScoutTicketingClient(options?): HelpScoutTicketingProviderClient;

Parameters

Parameter Type
options? HelpScoutTicketingClientOptions

Returns

HelpScoutTicketingProviderClient


createHelpScoutTicketingIntegration()

function createHelpScoutTicketingIntegration(options?): DefinedIntegration<{
  capabilities: [{
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "helpScoutConversation";
        label: "Help Scout Conversation";
      }, {
        kind: "helpScoutReplyThread";
        label: "Help Scout Reply Thread";
      }, {
        kind: "helpScoutNoteThread";
        label: "Help Scout Note Thread";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "helpScoutConversation";
        label: "Help Scout Conversation";
     }];
     requiresCredential: true;
   }, {
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "helpScoutConversation";
        label: "Help Scout Conversation";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "helpScoutConversation";
        label: "Help Scout Conversation";
     }];
     requiresCredential: true;
   }, {
     capability: "handoff";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "helpScoutConversation";
        label: "Help Scout Conversation";
      }, {
        kind: "helpScoutReplyThread";
        label: "Help Scout Reply Thread";
      }, {
        kind: "helpScoutNoteThread";
        label: "Help Scout Note Thread";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "ticketing";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Help Scout Inbox API";
        url: "https://developer.helpscout.com/mailbox-api/";
      }, {
        label: "Help Scout JavaScript SDK";
        url: "https://developer.helpscout.com/apps/javascript-sdk/";
      }, {
        label: "Help Scout open-source clients";
        url: "https://developer.helpscout.com/open-source/";
     }];
     notes: ["No official maintained backend JavaScript Inbox API client was verified; Help Scout's official Inbox SDK is PHP, and the official JavaScript SDK is for Apps UI context.", "Coverage is implemented by the built-in Help Scout REST adapter for conversation create/read/list/update, thread list, reply/note thread creation, and mailbox-list readiness.", "A host-provided HelpScoutTicketingProviderClient can still override the built-in REST adapter."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     id: "help-scout-base-url";
     label: "Help Scout API base URL";
     required: false;
   }, {
     id: "help-scout-api-access";
     label: "Help Scout OAuth access token or API key";
     required: true;
  }];
  directions: ["bidirectional"];
  id: "ticketing.help-scout";
  limitations: ["Mailbox IDs, thread types, assignment, workflow rules, and customer visibility are SDK-user configuration."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     implementation: {
        adapterKind: "no-official-sdk-rest-adapter";
        allowedOperations: readonly [{
           alias: "ticket.create";
           id: "conversations.create";
           source: "provider-rest-adapter";
           target: "restAdapter.createConversation";
         }, {
           alias: "ticket.read";
           id: "conversations.read";
           source: "provider-rest-adapter";
           target: "restAdapter.getConversation";
         }, {
           alias: "ticket.update";
           id: "conversations.update";
           source: "provider-rest-adapter";
           target: "restAdapter.updateConversation";
         }, {
           alias: "ticket.search";
           id: "conversations.list";
           source: "provider-rest-adapter";
           target: "restAdapter.listConversations";
         }, {
           alias: "ticket.comment.create";
           id: "reply.create";
           source: "provider-rest-adapter";
           target: "restAdapter.createReply";
         }, {
           alias: "ticket.internalNote.create";
           id: "note.create";
           source: "provider-rest-adapter";
           target: "restAdapter.createNote";
         }, {
           alias: "help-scout.thread.list";
           id: "threads.list";
           source: "provider-rest-adapter";
           target: "restAdapter.listThreads";
         }, {
           alias: "help-scout.readiness";
           id: "mailboxes.list";
           source: "provider-rest-adapter";
           target: "restAdapter.readiness";
        }];
        defaultHttpClient: "providerJsonRequest";
        packageOwnedRestClient: true;
        providerClientOverride: true;
        providerSdkDecision: "no-official-sdk-rest-adapter";
        sdkEvaluation: {
           candidates: readonly [{
              checkedVersion: "0.10.0";
              package: "@helpscout/javascript-sdk";
              reason: "Official Help Scout JavaScript SDK is for Apps UI context, contextual data, and interface actions rather than backend Inbox API ticketing operations.";
              result: "not-runtime-inbox-api-client";
            }, {
              checkedVersion: "0.0.1";
              package: "helpscout";
              reason: "Community Node wrapper; not listed by Help Scout as an official supported Inbox API client.";
              result: "rejected-unofficial-legacy";
            }, {
              checkedVersion: "0.0.2";
              package: "helpscout-v2";
              reason: "Community Help Scout API v2 wrapper; not an official or maintained provider runtime SDK.";
              result: "rejected-unofficial";
            }, {
              checkedVersion: "0.1.2";
              package: "@bufferapp/helpscout";
              reason: "Third-party/legacy Node wrapper; not an official Help Scout-maintained runtime SDK.";
              result: "rejected-unofficial-legacy";
           }];
           checkedAt: "2026-06-25";
           requiredRuntimeSurface: "server-side Help Scout Inbox API 2.0 ticketing client";
           result: "no-official-maintained-runtime-sdk";
        };
        strategy: "provider-rest-adapter";
        verifiedAt: "2026-06-25";
     };
     issue: 35;
     manifestOnlySafe: true;
     providerClient: {
        defaultClientPolicy: "built-in-rest-adapter";
        importPolicy: "runtime-override";
        interface: "HelpScoutTicketingProviderClient";
        package: "host-provided";
     };
     providerRestAdapterException: {
        adapterKind: "no-official-sdk-rest-adapter";
        allowedDefaultRuntime: "built-in-help-scout-inbox-rest-adapter";
        guardrails: readonly ["Do not add @helpscout/javascript-sdk as a runtime dependency for Inbox API ticketing; it is an Apps UI SDK.", "Only the allowlisted Help Scout Inbox API operations in metadata.implementation.allowedOperations are package-owned.", "Use a host-injected HelpScoutTicketingProviderClient for unsupported operations or for any future official maintained backend SDK."];
        hostSdkPath: "HelpScoutTicketingProviderClient";
        status: "accepted";
     };
     sdkDecision: "no-official-sdk-rest-adapter";
  };
  name: "Help Scout";
  operations: [{
     alias: "ticket.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "POST /v2/conversations";
     sideEffect: true;
   }, {
     alias: "ticket.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /v2/conversations/{conversation_id}";
   }, {
     alias: "ticket.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "PATCH /v2/conversations/{conversation_id}";
     sideEffect: true;
  }];
  packageName: "@cognidesk/integration-ticketing-help-scout";
  privacyNotes: ["Help Scout conversations can include customer identity, mailbox threads, notes, tags, custom fields, and assignments."];
  provider: "help-scout";
  trustLevel: "official";
}, unknown, {
  help-scout.readiness: () => Promise<JsonObject>;
  help-scout.thread.list: (input) => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.internalNote.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
}>;

Parameters

Parameter Type
options? HelpScoutTicketingIntegrationOptions

Returns

DefinedIntegration\<{ capabilities: [{ capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "helpScoutConversation"; label: "Help Scout Conversation"; }, { kind: "helpScoutReplyThread"; label: "Help Scout Reply Thread"; }, { kind: "helpScoutNoteThread"; label: "Help Scout Note Thread"; }]; requiresCredential: true; sideEffect: true; }, { capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "helpScoutConversation"; label: "Help Scout Conversation"; }]; requiresCredential: true; }, { capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "helpScoutConversation"; label: "Help Scout Conversation"; }]; requiresCredential: true; sideEffect: true; }, { capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "helpScoutConversation"; label: "Help Scout Conversation"; }]; requiresCredential: true; }, { capability: "handoff"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "helpScoutConversation"; label: "Help Scout Conversation"; }, { kind: "helpScoutReplyThread"; label: "Help Scout Reply Thread"; }, { kind: "helpScoutNoteThread"; label: "Help Scout Note Thread"; }]; requiresCredential: true; sideEffect: true; }]; category: "ticketing"; channelAudiences: ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: [{ label: "Help Scout Inbox API"; url: "https://developer.helpscout.com/mailbox-api/"; }, { label: "Help Scout JavaScript SDK"; url: "https://developer.helpscout.com/apps/javascript-sdk/"; }, { label: "Help Scout open-source clients"; url: "https://developer.helpscout.com/open-source/"; }]; notes: ["No official maintained backend JavaScript Inbox API client was verified; Help Scout's official Inbox SDK is PHP, and the official JavaScript SDK is for Apps UI context.", "Coverage is implemented by the built-in Help Scout REST adapter for conversation create/read/list/update, thread list, reply/note thread creation, and mailbox-list readiness.", "A host-provided HelpScoutTicketingProviderClient can still override the built-in REST adapter."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ id: "help-scout-base-url"; label: "Help Scout API base URL"; required: false; }, { id: "help-scout-api-access"; label: "Help Scout OAuth access token or API key"; required: true; }]; directions: ["bidirectional"]; id: "ticketing.help-scout"; limitations: ["Mailbox IDs, thread types, assignment, workflow rules, and customer visibility are SDK-user configuration."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { implementation: { adapterKind: "no-official-sdk-rest-adapter"; allowedOperations: readonly [{ alias: "ticket.create"; id: "conversations.create"; source: "provider-rest-adapter"; target: "restAdapter.createConversation"; }, { alias: "ticket.read"; id: "conversations.read"; source: "provider-rest-adapter"; target: "restAdapter.getConversation"; }, { alias: "ticket.update"; id: "conversations.update"; source: "provider-rest-adapter"; target: "restAdapter.updateConversation"; }, { alias: "ticket.search"; id: "conversations.list"; source: "provider-rest-adapter"; target: "restAdapter.listConversations"; }, { alias: "ticket.comment.create"; id: "reply.create"; source: "provider-rest-adapter"; target: "restAdapter.createReply"; }, { alias: "ticket.internalNote.create"; id: "note.create"; source: "provider-rest-adapter"; target: "restAdapter.createNote"; }, { alias: "help-scout.thread.list"; id: "threads.list"; source: "provider-rest-adapter"; target: "restAdapter.listThreads"; }, { alias: "help-scout.readiness"; id: "mailboxes.list"; source: "provider-rest-adapter"; target: "restAdapter.readiness"; }]; defaultHttpClient: "providerJsonRequest"; packageOwnedRestClient: true; providerClientOverride: true; providerSdkDecision: "no-official-sdk-rest-adapter"; sdkEvaluation: { candidates: readonly [{ checkedVersion: "0.10.0"; package: "@helpscout/javascript-sdk"; reason: "Official Help Scout JavaScript SDK is for Apps UI context, contextual data, and interface actions rather than backend Inbox API ticketing operations."; result: "not-runtime-inbox-api-client"; }, { checkedVersion: "0.0.1"; package: "helpscout"; reason: "Community Node wrapper; not listed by Help Scout as an official supported Inbox API client."; result: "rejected-unofficial-legacy"; }, { checkedVersion: "0.0.2"; package: "helpscout-v2"; reason: "Community Help Scout API v2 wrapper; not an official or maintained provider runtime SDK."; result: "rejected-unofficial"; }, { checkedVersion: "0.1.2"; package: "@bufferapp/helpscout"; reason: "Third-party/legacy Node wrapper; not an official Help Scout-maintained runtime SDK."; result: "rejected-unofficial-legacy"; }]; checkedAt: "2026-06-25"; requiredRuntimeSurface: "server-side Help Scout Inbox API 2.0 ticketing client"; result: "no-official-maintained-runtime-sdk"; }; strategy: "provider-rest-adapter"; verifiedAt: "2026-06-25"; }; issue: 35; manifestOnlySafe: true; providerClient: { defaultClientPolicy: "built-in-rest-adapter"; importPolicy: "runtime-override"; interface: "HelpScoutTicketingProviderClient"; package: "host-provided"; }; providerRestAdapterException: { adapterKind: "no-official-sdk-rest-adapter"; allowedDefaultRuntime: "built-in-help-scout-inbox-rest-adapter"; guardrails: readonly ["Do not add @helpscout/javascript-sdk as a runtime dependency for Inbox API ticketing; it is an Apps UI SDK.", "Only the allowlisted Help Scout Inbox API operations in metadata.implementation.allowedOperations are package-owned.", "Use a host-injected HelpScoutTicketingProviderClient for unsupported operations or for any future official maintained backend SDK."]; hostSdkPath: "HelpScoutTicketingProviderClient"; status: "accepted"; }; sdkDecision: "no-official-sdk-rest-adapter"; }; name: "Help Scout"; operations: [{ alias: "ticket.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "POST /v2/conversations"; sideEffect: true; }, { alias: "ticket.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /v2/conversations/{conversation_id}"; }, { alias: "ticket.update"; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "PATCH /v2/conversations/{conversation_id}"; sideEffect: true; }]; packageName: "@cognidesk/integration-ticketing-help-scout"; privacyNotes: ["Help Scout conversations can include customer identity, mailbox threads, notes, tags, custom fields, and assignments."]; provider: "help-scout"; trustLevel: "official"; }, unknown, { help-scout.readiness: () => Promise\<JsonObject>; help-scout.thread.list: (input) => Promise\<JsonObject>; ticket.comment.create: (input) => Promise\<JsonObject>; ticket.create: (input) => Promise\<JsonObject>; ticket.internalNote.create: (input) => Promise\<JsonObject>; ticket.read: (input) => Promise\<JsonObject>; ticket.search: (input?) => Promise\<JsonObject>; ticket.update: (input) => Promise\<JsonObject>; }>


createHelpScoutTicketingOperationHandlers()

function createHelpScoutTicketingOperationHandlers(options?): {
  help-scout.readiness: () => Promise<JsonObject>;
  help-scout.thread.list: (input) => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.internalNote.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
};

Parameters

Parameter Type
options? HelpScoutTicketingIntegrationOptions

Returns

{
  help-scout.readiness: () => Promise<JsonObject>;
  help-scout.thread.list: (input) => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.internalNote.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
}
Name Type
help-scout.readiness() () => Promise\<JsonObject>
help-scout.thread.list() (input) => Promise\<JsonObject>
ticket.comment.create() (input) => Promise\<JsonObject>
ticket.create() (input) => Promise\<JsonObject>
ticket.internalNote.create() (input) => Promise\<JsonObject>
ticket.read() (input) => Promise\<JsonObject>
ticket.search() (input?) => Promise\<JsonObject>
ticket.update() (input) => Promise\<JsonObject>

References

helpScoutTicketingProviderManifest

Re-exports helpScoutTicketingProviderManifest