Skip to content

integrations/ticketing/kustomer/dist

Interfaces

JsonObject

Extended by

Indexable

[key: string]: JsonValue

KustomerCreateCustomerDraftInput

Extends

Indexable

[key: string]: JsonValue

Properties

customerId
customerId: string;
draft
draft: JsonObject;
query?
optional query?: JsonObject;

KustomerCreateMessageInput

Extends

Indexable

[key: string]: JsonValue

Properties

message
message: JsonObject;

KustomerListConversationsInput

Extends

Indexable

[key: string]: JsonValue

Properties

query?
optional query?: JsonObject;

KustomerListMessagesInput

Extends

Indexable

[key: string]: JsonValue

Properties

query?
optional query?: JsonObject;

KustomerReadConversationInput

Extends

Indexable

[key: string]: JsonValue

Properties

conversationId
conversationId: string;

KustomerTicketingClientOptions

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?: KustomerTicketingProviderClient;
retry?
optional retry?: number | ProviderJsonRetryOptions;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;

KustomerTicketingIntegrationOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

KustomerTicketingClientOptions.accessToken

apiKey?
optional apiKey?: string;
Inherited from

KustomerTicketingClientOptions.apiKey

baseUrl?
optional baseUrl?: string;
Inherited from

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

KustomerTicketingClientOptions.fetch

providerClient?
optional providerClient?: KustomerTicketingProviderClient;
Inherited from

KustomerTicketingClientOptions.providerClient

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

KustomerTicketingClientOptions.retry

signal?
optional signal?: AbortSignal;
Inherited from

KustomerTicketingClientOptions.signal

timeoutMs?
optional timeoutMs?: number;
Inherited from

KustomerTicketingClientOptions.timeoutMs


KustomerTicketingProviderClient

Properties

rawClient?
optional rawClient?: unknown;

Methods

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

Promise\<JsonObject>

createCustomerDraft()
createCustomerDraft(
   customerId,
   payload,
query?): Promise<JsonObject>;
Parameters
Parameter Type
customerId string
payload JsonObject
query? JsonObject
Returns

Promise\<JsonObject>

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

Promise\<JsonObject>

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

Promise\<JsonObject>

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

Promise\<JsonObject>

listMessages()
listMessages(query?): Promise<JsonObject>;
Parameters
Parameter Type
query? JsonObject
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
patch JsonObject
Returns

Promise\<JsonObject>


KustomerUpdateConversationInput

Extends

Indexable

[key: string]: JsonValue

Properties

conversationId
conversationId: string;
patch
patch: JsonObject;

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[];

KustomerCreateConversationInput

type KustomerCreateConversationInput = JsonObject;

Variables

createKustomerIntegration

const createKustomerIntegration: typeof createKustomerTicketingIntegration;

createKustomerIntegrationOperationHandlers

const createKustomerIntegrationOperationHandlers: typeof createKustomerTicketingOperationHandlers;

Functions

createKustomerTicketingClient()

function createKustomerTicketingClient(options?): KustomerTicketingProviderClient;

Parameters

Parameter Type
options? KustomerTicketingClientOptions

Returns

KustomerTicketingProviderClient


createKustomerTicketingIntegration()

function createKustomerTicketingIntegration(options?): DefinedIntegration<{
  capabilities: [{
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "kustomerConversation";
        label: "Kustomer Conversation";
      }, {
        kind: "kustomerMessage";
        label: "Kustomer Message";
      }, {
        kind: "kustomerDraft";
        label: "Kustomer Draft";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "kustomerConversation";
        label: "Kustomer Conversation";
      }, {
        kind: "kustomerMessage";
        label: "Kustomer Message";
     }];
     requiresCredential: true;
   }, {
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "kustomerConversation";
        label: "Kustomer Conversation";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "kustomerConversation";
        label: "Kustomer Conversation";
     }];
     requiresCredential: true;
   }, {
     capability: "handoff";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "kustomerConversation";
        label: "Kustomer Conversation";
      }, {
        kind: "kustomerMessage";
        label: "Kustomer Message";
      }, {
        kind: "kustomerDraft";
        label: "Kustomer Draft";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "ticketing";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Kustomer developer portal";
        url: "https://developer.kustomer.com/";
      }, {
        label: "Kustomer REST APIs portal";
        url: "https://developer.kustomer.com/kustomer-api-docs/reference";
      }, {
        label: "@kustomer/apps-server npm package";
        url: "https://www.npmjs.com/package/@kustomer/apps-server";
      }, {
        label: "@kustomer/apps-server-sdk npm package";
        url: "https://www.npmjs.com/package/@kustomer/apps-server-sdk";
     }];
     notes: ["Kustomer's developer surface separates REST APIs for backend systems from Apps Platform and Chat SDK packages.", "Support workflow calls use the built-in Kustomer REST adapter when baseUrl and accessToken/apiKey are configured.", "A host-provided KustomerTicketingProviderClient can still override the built-in REST adapter.", "The package declares an explicit REST-adapter exception because the checked Kustomer npm SDK packages do not provide a suitable backend support/ticketing REST client.", "Coverage is limited to Kustomer conversation create/read/update/list, message list/create, customer draft creation, and org readiness for support workflows.", "This package intentionally does not copy the old generated full Kustomer public API clone."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     id: "kustomer-base-url";
     label: "Kustomer API base URL";
     required: false;
   }, {
     id: "kustomer-api-access";
     label: "Kustomer API access token or API key";
     metadata: {
        defaultClientPolicy: "built-in-rest-adapter";
     };
     required: true;
   }, {
     id: "kustomer-api-permissions";
     label: "Kustomer API permissions";
     metadata: {
        privilegeGuidance: "Kustomer API keys are governed by roles and API permissions; these strings are provider permission labels, not OAuth scopes.";
        scopeKind: "provider-permission-labels";
     };
     required: true;
     scopes: ["org.user.conversation.read", "org.user.conversation.write", "org.permission.conversation.create", "org.user.message.read", "org.user.message.write", "org.permission.message.create", "org.permission.draft.create", "org.admin.user.read"];
  }];
  directions: ["bidirectional"];
  id: "ticketing.kustomer";
  limitations: ["REST-adapter or host-client configuration owns auth, tenancy, pagination, retries, rate limits, and provider response normalization policy.", "Conversation model, queues, teams, custom objects, and message visibility are host-client configuration."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     implementation: {
        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: "kustomer.message.list";
           id: "messages.list";
           source: "provider-rest-adapter";
           target: "restAdapter.listMessages";
         }, {
           alias: "ticket.comment.create";
           id: "messages.create";
           source: "provider-rest-adapter";
           target: "restAdapter.createMessage";
         }, {
           alias: "kustomer.customerDraft.create";
           id: "customer_drafts.create";
           source: "provider-rest-adapter";
           target: "restAdapter.createCustomerDraft";
         }, {
           alias: "kustomer.readiness";
           id: "readiness";
           source: "provider-rest-adapter";
           target: "restAdapter.readiness";
        }];
        implementationStrategy: "provider-rest-adapter";
        sdkDecision: {
           candidates: (
              | "@kustomer/apps-server"
              | "@kustomer/apps-client"
              | "@kustomer/apps-server-sdk"
             | "@kustomer/chat-react-native")[];
           checkedAt: "2026-06-25";
           reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package.";
           rejectedSdkPackages: readonly [{
              checkedVersion: "3.0.5";
              license: "MIT";
              packageName: "@kustomer/apps-server";
              reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client.";
            }, {
              checkedVersion: "3.0.5";
              license: "MIT";
              packageName: "@kustomer/apps-client";
              reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations.";
            }, {
              checkedVersion: "0.0.60";
              license: "not-declared";
              packageName: "@kustomer/apps-server-sdk";
              reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface.";
            }, {
              checkedVersion: "5.3.4";
              license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/";
              packageName: "@kustomer/chat-react-native";
              reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client.";
           }];
           result: "no-official-maintained-ticketing-rest-sdk";
           verdict: "no-official-sdk-rest-adapter";
        };
     };
     implementationStrategy: "provider-rest-adapter";
     issue: 35;
     manifestOnlySafe: true;
     providerClient: {
        defaultClientPolicy: "built-in-rest-adapter";
        importPolicy: "runtime-override";
        interface: "KustomerTicketingProviderClient";
        package: "optional-override";
     };
     providerRestAdapterException: {
        checkedAt: "2026-06-25";
        defaultClientPolicy: "built-in-kustomer-rest-adapter-with-access-token";
        reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package.";
        rejectedSdkPackages: readonly [{
           checkedVersion: "3.0.5";
           license: "MIT";
           packageName: "@kustomer/apps-server";
           reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client.";
         }, {
           checkedVersion: "3.0.5";
           license: "MIT";
           packageName: "@kustomer/apps-client";
           reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations.";
         }, {
           checkedVersion: "0.0.60";
           license: "not-declared";
           packageName: "@kustomer/apps-server-sdk";
           reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface.";
         }, {
           checkedVersion: "5.3.4";
           license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/";
           packageName: "@kustomer/chat-react-native";
           reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client.";
        }];
        result: "no-official-maintained-ticketing-rest-sdk";
        typedClientOverride: "KustomerTicketingProviderClient";
     };
     sdkDecision: {
        candidates: (
           | "@kustomer/apps-server"
           | "@kustomer/apps-client"
           | "@kustomer/apps-server-sdk"
          | "@kustomer/chat-react-native")[];
        checkedAt: "2026-06-25";
        reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package.";
        rejectedSdkPackages: readonly [{
           checkedVersion: "3.0.5";
           license: "MIT";
           packageName: "@kustomer/apps-server";
           reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client.";
         }, {
           checkedVersion: "3.0.5";
           license: "MIT";
           packageName: "@kustomer/apps-client";
           reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations.";
         }, {
           checkedVersion: "0.0.60";
           license: "not-declared";
           packageName: "@kustomer/apps-server-sdk";
           reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface.";
         }, {
           checkedVersion: "5.3.4";
           license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/";
           packageName: "@kustomer/chat-react-native";
           reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client.";
        }];
        result: "no-official-maintained-ticketing-rest-sdk";
        verdict: "no-official-sdk-rest-adapter";
     };
  };
  name: "Kustomer";
  operations: [{
     alias: "ticket.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "POST /v1/conversations";
     sideEffect: true;
   }, {
     alias: "ticket.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /v1/conversations/{conversation_id}";
   }, {
     alias: "ticket.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "PATCH /v1/conversations/{conversation_id}";
     sideEffect: true;
  }];
  packageName: "@cognidesk/integration-ticketing-kustomer";
  privacyNotes: ["Kustomer conversations can include customer timeline data, messages, notes, tags, queue status, and custom objects."];
  provider: "kustomer";
  trustLevel: "official";
}, unknown, {
  kustomer.customerDraft.create: (input) => Promise<JsonObject>;
  kustomer.message.list: (input?) => Promise<JsonObject>;
  kustomer.readiness: () => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
}>;

Parameters

Parameter Type
options? KustomerTicketingIntegrationOptions

Returns

DefinedIntegration\<{ capabilities: [{ capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "kustomerConversation"; label: "Kustomer Conversation"; }, { kind: "kustomerMessage"; label: "Kustomer Message"; }, { kind: "kustomerDraft"; label: "Kustomer Draft"; }]; requiresCredential: true; sideEffect: true; }, { capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "kustomerConversation"; label: "Kustomer Conversation"; }, { kind: "kustomerMessage"; label: "Kustomer Message"; }]; requiresCredential: true; }, { capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "kustomerConversation"; label: "Kustomer Conversation"; }]; requiresCredential: true; sideEffect: true; }, { capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "kustomerConversation"; label: "Kustomer Conversation"; }]; requiresCredential: true; }, { capability: "handoff"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "kustomerConversation"; label: "Kustomer Conversation"; }, { kind: "kustomerMessage"; label: "Kustomer Message"; }, { kind: "kustomerDraft"; label: "Kustomer Draft"; }]; requiresCredential: true; sideEffect: true; }]; category: "ticketing"; channelAudiences: ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: [{ label: "Kustomer developer portal"; url: "https://developer.kustomer.com/"; }, { label: "Kustomer REST APIs portal"; url: "https://developer.kustomer.com/kustomer-api-docs/reference"; }, { label: "@kustomer/apps-server npm package"; url: "https://www.npmjs.com/package/@kustomer/apps-server"; }, { label: "@kustomer/apps-server-sdk npm package"; url: "https://www.npmjs.com/package/@kustomer/apps-server-sdk"; }]; notes: ["Kustomer's developer surface separates REST APIs for backend systems from Apps Platform and Chat SDK packages.", "Support workflow calls use the built-in Kustomer REST adapter when baseUrl and accessToken/apiKey are configured.", "A host-provided KustomerTicketingProviderClient can still override the built-in REST adapter.", "The package declares an explicit REST-adapter exception because the checked Kustomer npm SDK packages do not provide a suitable backend support/ticketing REST client.", "Coverage is limited to Kustomer conversation create/read/update/list, message list/create, customer draft creation, and org readiness for support workflows.", "This package intentionally does not copy the old generated full Kustomer public API clone."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ id: "kustomer-base-url"; label: "Kustomer API base URL"; required: false; }, { id: "kustomer-api-access"; label: "Kustomer API access token or API key"; metadata: { defaultClientPolicy: "built-in-rest-adapter"; }; required: true; }, { id: "kustomer-api-permissions"; label: "Kustomer API permissions"; metadata: { privilegeGuidance: "Kustomer API keys are governed by roles and API permissions; these strings are provider permission labels, not OAuth scopes."; scopeKind: "provider-permission-labels"; }; required: true; scopes: ["org.user.conversation.read", "org.user.conversation.write", "org.permission.conversation.create", "org.user.message.read", "org.user.message.write", "org.permission.message.create", "org.permission.draft.create", "org.admin.user.read"]; }]; directions: ["bidirectional"]; id: "ticketing.kustomer"; limitations: ["REST-adapter or host-client configuration owns auth, tenancy, pagination, retries, rate limits, and provider response normalization policy.", "Conversation model, queues, teams, custom objects, and message visibility are host-client configuration."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { implementation: { 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: "kustomer.message.list"; id: "messages.list"; source: "provider-rest-adapter"; target: "restAdapter.listMessages"; }, { alias: "ticket.comment.create"; id: "messages.create"; source: "provider-rest-adapter"; target: "restAdapter.createMessage"; }, { alias: "kustomer.customerDraft.create"; id: "customer_drafts.create"; source: "provider-rest-adapter"; target: "restAdapter.createCustomerDraft"; }, { alias: "kustomer.readiness"; id: "readiness"; source: "provider-rest-adapter"; target: "restAdapter.readiness"; }]; implementationStrategy: "provider-rest-adapter"; sdkDecision: { candidates: ( | "@kustomer/apps-server" | "@kustomer/apps-client" | "@kustomer/apps-server-sdk" | "@kustomer/chat-react-native")[]; checkedAt: "2026-06-25"; reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package."; rejectedSdkPackages: readonly [{ checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-server"; reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client."; }, { checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-client"; reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations."; }, { checkedVersion: "0.0.60"; license: "not-declared"; packageName: "@kustomer/apps-server-sdk"; reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface."; }, { checkedVersion: "5.3.4"; license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/"; packageName: "@kustomer/chat-react-native"; reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client."; }]; result: "no-official-maintained-ticketing-rest-sdk"; verdict: "no-official-sdk-rest-adapter"; }; }; implementationStrategy: "provider-rest-adapter"; issue: 35; manifestOnlySafe: true; providerClient: { defaultClientPolicy: "built-in-rest-adapter"; importPolicy: "runtime-override"; interface: "KustomerTicketingProviderClient"; package: "optional-override"; }; providerRestAdapterException: { checkedAt: "2026-06-25"; defaultClientPolicy: "built-in-kustomer-rest-adapter-with-access-token"; reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package."; rejectedSdkPackages: readonly [{ checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-server"; reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client."; }, { checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-client"; reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations."; }, { checkedVersion: "0.0.60"; license: "not-declared"; packageName: "@kustomer/apps-server-sdk"; reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface."; }, { checkedVersion: "5.3.4"; license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/"; packageName: "@kustomer/chat-react-native"; reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client."; }]; result: "no-official-maintained-ticketing-rest-sdk"; typedClientOverride: "KustomerTicketingProviderClient"; }; sdkDecision: { candidates: ( | "@kustomer/apps-server" | "@kustomer/apps-client" | "@kustomer/apps-server-sdk" | "@kustomer/chat-react-native")[]; checkedAt: "2026-06-25"; reason: "Kustomer's maintained JavaScript packages cover Apps Platform and Chat SDK runtimes, but do not provide a backend support/ticketing REST client for the conversation, message, customer draft, and readiness operations exposed by this package."; rejectedSdkPackages: readonly [{ checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-server"; reason: "Official Apps Platform server SDK for building Kustomer apps, not a backend public REST ticketing client."; }, { checkedVersion: "3.0.5"; license: "MIT"; packageName: "@kustomer/apps-client"; reason: "Official Apps Platform client SDK for Kustomer app UI/runtime behavior, not backend support ticketing operations."; }, { checkedVersion: "0.0.60"; license: "not-declared"; packageName: "@kustomer/apps-server-sdk"; reason: "Legacy app-building SDK with limited app API helpers, not a maintained public REST ticketing client for this support surface."; }, { checkedVersion: "5.3.4"; license: "SEE LICENSE AT https://www.kustomer.com/legal/supplemental-terms/"; packageName: "@kustomer/chat-react-native"; reason: "React Native Chat SDK for customer-facing chat UI, not a server-side support ticketing REST client."; }]; result: "no-official-maintained-ticketing-rest-sdk"; verdict: "no-official-sdk-rest-adapter"; }; }; name: "Kustomer"; operations: [{ alias: "ticket.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "POST /v1/conversations"; sideEffect: true; }, { alias: "ticket.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /v1/conversations/{conversation_id}"; }, { alias: "ticket.update"; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "PATCH /v1/conversations/{conversation_id}"; sideEffect: true; }]; packageName: "@cognidesk/integration-ticketing-kustomer"; privacyNotes: ["Kustomer conversations can include customer timeline data, messages, notes, tags, queue status, and custom objects."]; provider: "kustomer"; trustLevel: "official"; }, unknown, { kustomer.customerDraft.create: (input) => Promise\<JsonObject>; kustomer.message.list: (input?) => Promise\<JsonObject>; kustomer.readiness: () => Promise\<JsonObject>; ticket.comment.create: (input) => Promise\<JsonObject>; ticket.create: (input) => Promise\<JsonObject>; ticket.read: (input) => Promise\<JsonObject>; ticket.search: (input?) => Promise\<JsonObject>; ticket.update: (input) => Promise\<JsonObject>; }>


createKustomerTicketingOperationHandlers()

function createKustomerTicketingOperationHandlers(options?): {
  kustomer.customerDraft.create: (input) => Promise<JsonObject>;
  kustomer.message.list: (input?) => Promise<JsonObject>;
  kustomer.readiness: () => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
};

Parameters

Parameter Type
options? KustomerTicketingIntegrationOptions

Returns

{
  kustomer.customerDraft.create: (input) => Promise<JsonObject>;
  kustomer.message.list: (input?) => Promise<JsonObject>;
  kustomer.readiness: () => Promise<JsonObject>;
  ticket.comment.create: (input) => Promise<JsonObject>;
  ticket.create: (input) => Promise<JsonObject>;
  ticket.read: (input) => Promise<JsonObject>;
  ticket.search: (input?) => Promise<JsonObject>;
  ticket.update: (input) => Promise<JsonObject>;
}
Name Type
kustomer.customerDraft.create() (input) => Promise\<JsonObject>
kustomer.message.list() (input?) => Promise\<JsonObject>
kustomer.readiness() () => Promise\<JsonObject>
ticket.comment.create() (input) => Promise\<JsonObject>
ticket.create() (input) => Promise\<JsonObject>
ticket.read() (input) => Promise\<JsonObject>
ticket.search() (input?) => Promise\<JsonObject>
ticket.update() (input) => Promise\<JsonObject>

References

kustomerTicketingProviderManifest

Re-exports kustomerTicketingProviderManifest