Skip to content

integrations/ticketing/zendesk/dist

Interfaces

JsonObject

Indexable

[key: string]: JsonValue

ZendeskSdkResource

Methods

_rawRequest()?
optional _rawRequest(
   method,
   path,
body?): Promise<unknown>;
Parameters
Parameter Type
method string
path string
body? unknown
Returns

Promise\<unknown>

create()?
optional create(input): Promise<unknown>;
Parameters
Parameter Type
input ZendeskTicketingProviderPayload
Returns

Promise\<unknown>

list()?
optional list(): Promise<unknown>;
Returns

Promise\<unknown>

me()?
optional me(): Promise<unknown>;
Returns

Promise\<unknown>

query()?
optional query(query): Promise<unknown>;
Parameters
Parameter Type
query string
Returns

Promise\<unknown>

show()?
optional show(id): Promise<unknown>;
Parameters
Parameter Type
id number
Returns

Promise\<unknown>

update()?
optional update(id, input): Promise<unknown>;
Parameters
Parameter Type
id number
input ZendeskTicketingProviderPayload
Returns

Promise\<unknown>

upload()?
optional upload(data, options): Promise<unknown>;
Parameters
Parameter Type
data Buffer\<ArrayBufferLike> | BodyInit | ReadableStream
options ZendeskUploadOptions
Returns

Promise\<unknown>


ZendeskSdkResponse

Type Parameters

Type Parameter Default type
T ZendeskTicketingProviderPayload

Indexable

[key: string]: unknown

Properties

response?
optional response?: unknown;
result?
optional result?: T;

ZendeskTicketAttachmentInput

Extends

Properties

binary?
optional binary?: boolean;
Inherited from

ZendeskUploadFileInput.binary

comment?
optional comment?: JsonObject;
contentType?
optional contentType?: string;
Inherited from

ZendeskUploadFileInput.contentType

data
data: Buffer<ArrayBufferLike> | BodyInit | ReadableStream;
Inherited from

ZendeskUploadFileInput.data

filename
filename: string;
Inherited from

ZendeskUploadFileInput.filename

public?
optional public?: boolean;
ticketId
ticketId: string | number;
token?
optional token?: string;
Inherited from

ZendeskUploadFileInput.token


ZendeskTicketingClient

Properties

rawClient
rawClient: ZendeskTicketingRawClient;

Methods

addTicketAttachment()
addTicketAttachment(input): Promise<JsonObject>;
Parameters
Parameter Type
input ZendeskTicketAttachmentInput
Returns

Promise\<JsonObject>

createComment()
createComment(
   ticketId,
   comment,
publicComment?): Promise<JsonObject>;
Parameters
Parameter Type
ticketId string | number
comment JsonObject
publicComment? boolean
Returns

Promise\<JsonObject>

createTicket()
createTicket(input): Promise<JsonObject>;
Parameters
Parameter Type
input JsonObject
Returns

Promise\<JsonObject>

getOrganization()
getOrganization(organizationId): Promise<JsonObject>;
Parameters
Parameter Type
organizationId string | number
Returns

Promise\<JsonObject>

getRawClient()
getRawClient(): ZendeskTicketingRawClient;
Returns

ZendeskTicketingRawClient

getTicket()
getTicket(ticketId): Promise<JsonObject>;
Parameters
Parameter Type
ticketId string | number
Returns

Promise\<JsonObject>

getUser()
getUser(userId): Promise<JsonObject>;
Parameters
Parameter Type
userId string | number
Returns

Promise\<JsonObject>

listWebhooks()
listWebhooks(): Promise<ZendeskTicketingProviderPayload>;
Returns

Promise\<ZendeskTicketingProviderPayload>

rawRequest()
rawRequest<T>(path, init?): Promise<T>;
Type Parameters
Type Parameter Default type
T JsonValue
Parameters
Parameter Type
path string
init? RequestInit
Returns

Promise\<T>

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

Promise\<JsonObject>

searchTickets()
searchTickets(query): Promise<ZendeskTicketingProviderPayload>;
Parameters
Parameter Type
query string | JsonObject
Returns

Promise\<ZendeskTicketingProviderPayload>

updateTicket()
updateTicket(ticketId, patch): Promise<JsonObject>;
Parameters
Parameter Type
ticketId string | number
patch JsonObject
Returns

Promise\<JsonObject>

uploadFile()
uploadFile(input): Promise<JsonObject>;
Parameters
Parameter Type
input ZendeskUploadFileInput
Returns

Promise\<JsonObject>


ZendeskTicketingClientOptions

Extended by

Properties

accessToken?
optional accessToken?: string;
apiBasePath?
optional apiBasePath?: string;
apiToken?
optional apiToken?: string;
createSdkClient?
optional createSdkClient?: (options) => ZendeskTicketingRawClient;
Parameters
Parameter Type
options ZendeskClientOptions
Returns

ZendeskTicketingRawClient

email?
optional email?: 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>

instanceUrl
instanceUrl: string;
rawClient?
optional rawClient?: ZendeskTicketingRawClient;
sdkOptions?
optional sdkOptions?: Partial<ZendeskClientOptions>;

ZendeskTicketingIntegrationOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

ZendeskTicketingClientOptions.accessToken

apiBasePath?
optional apiBasePath?: string;
Inherited from

ZendeskTicketingClientOptions.apiBasePath

apiToken?
optional apiToken?: string;
Inherited from

ZendeskTicketingClientOptions.apiToken

createSdkClient?
optional createSdkClient?: (options) => ZendeskTicketingRawClient;
Parameters
Parameter Type
options ZendeskClientOptions
Returns

ZendeskTicketingRawClient

Inherited from

ZendeskTicketingClientOptions.createSdkClient

email?
optional email?: string;
Inherited from

ZendeskTicketingClientOptions.email

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

ZendeskTicketingClientOptions.fetch

instanceUrl
instanceUrl: string;
Inherited from

ZendeskTicketingClientOptions.instanceUrl

rawClient?
optional rawClient?: ZendeskTicketingRawClient;
Inherited from

ZendeskTicketingClientOptions.rawClient

sdkOptions?
optional sdkOptions?: Partial<ZendeskClientOptions>;
Inherited from

ZendeskTicketingClientOptions.sdkOptions

ticketingClient?
optional ticketingClient?: ZendeskTicketingClient;

ZendeskTicketingRawClient

Properties

attachments
attachments: ZendeskSdkResource;
organizations
organizations: ZendeskSdkResource;
search: ZendeskSdkResource;
tickets
tickets: ZendeskSdkResource;
users
users: ZendeskSdkResource;
webhooks
webhooks: ZendeskSdkResource;

ZendeskUploadFileInput

Extended by

Properties

binary?
optional binary?: boolean;
contentType?
optional contentType?: string;
data
data: Buffer<ArrayBufferLike> | BodyInit | ReadableStream;
filename
filename: string;
token?
optional token?: string;

ZendeskUploadOptions

Properties

binary
binary: boolean;
filename
filename: string;
token?
optional token?: string;

Type Aliases

JsonPrimitive

type JsonPrimitive = string | number | boolean | null;

JsonValue

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

ZendeskTicketingIntegration

type ZendeskTicketingIntegration = ReturnType<typeof createZendeskTicketingIntegration>;

ZendeskTicketingProviderPayload

type ZendeskTicketingProviderPayload = JsonObject | object;

Variables

createZendeskIntegration

const createZendeskIntegration: typeof createZendeskTicketingIntegration;

createZendeskIntegrationOperationHandlers

const createZendeskIntegrationOperationHandlers: typeof createZendeskTicketingOperationHandlers;

Functions

createZendeskTicketingClient()

function createZendeskTicketingClient(options): ZendeskTicketingClient;

Parameters

Parameter Type
options ZendeskTicketingClientOptions

Returns

ZendeskTicketingClient


createZendeskTicketingIntegration()

function createZendeskTicketingIntegration(options): {
  bindingReport: OperationBindingReport;
  client: ZendeskTicketingClient;
  getRawClient: () => ZendeskTicketingRawClient;
  manifest: {
     capabilities: {
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension?: boolean;
        label?: string;
        metadata?: Record<string, unknown>;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     category: string;
     channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
     coverage: {
        evidence: {
           label: string;
           url?: string;
        }[];
        notes: string[];
        scope:   | "support-workflow-subset"
           | "provider-api-subset"
           | "connector-required"
           | "local-protocol"
           | "full-provider-api";
     };
     credentialRequirements: {
        description?: string;
        id: string;
        label?: string;
        metadata?: Record<string, unknown>;
        required: boolean;
        scopes: string[];
     }[];
     directions: (
        | "receive-only"
        | "send-only"
        | "inbound-only"
        | "outbound-only"
       | "bidirectional")[];
     id: string;
     limitations: string[];
     maintainers: {
        name: string;
        type: "community" | "official" | "unknown" | "partner";
        url?: string;
     }[];
     metadata?: Record<string, unknown>;
     name: string;
     operations: {
        alias: string;
        audience?: "customer-facing" | "internal-support" | "mixed";
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension: boolean;
        externallyVisible?: boolean;
        inputSchema?: unknown;
        inputSchemaName?: string;
        inputSchemaRef?: string;
        label?: string;
        metadata?: Record<string, unknown>;
        outputSchema?: unknown;
        outputSchemaName?: string;
        outputSchemaRef?: string;
        providerObject?: string;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        providerOperation?: string;
        requiredPolicyIds?: string[];
        requiresApproval?: boolean;
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     packageName: string;
     privacyNotes: string[];
     provider: string;
     trustLevel: "community" | "official" | "verified" | "experimental";
   } & {
     capabilities: [{
        capability: "create-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
         }, {
           kind: "zendeskTicketComment";
           label: "Zendesk Ticket Comment";
        }];
        requiresCredential: true;
        sideEffect: true;
      }, {
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
         }, {
           kind: "zendeskUser";
           label: "Zendesk User";
         }, {
           kind: "zendeskOrganization";
           label: "Zendesk Organization";
         }, {
           kind: "zendeskWebhook";
           label: "Zendesk Webhook";
        }];
        requiresCredential: true;
      }, {
        capability: "update-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
        }];
        requiresCredential: true;
        sideEffect: true;
     }];
     category: "ticketing";
     channelAudiences: ["customer-facing", "internal-support", "mixed"];
     coverage: {
        evidence: [{
           label: "node-zendesk package";
           url: "https://www.npmjs.com/package/node-zendesk";
         }, {
           label: "Zendesk Node.js API client docs";
           url: "https://developer.zendesk.com/documentation/ticketing/api-clients/nodejs/";
         }, {
           label: "Zendesk Support API OpenAPI";
           url: "https://developer.zendesk.com/zendesk/oas.yaml";
         }, {
           label: "Zendesk Support Tickets API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/";
         }, {
           label: "Zendesk Ticket Comments API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/";
         }, {
           label: "Zendesk Upload Files API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket-attachments/";
        }];
        notes: ["Coverage is a Cognidesk support workflow adapter backed by the node-zendesk provider SDK.", "Typed operations cover ticket create/read/update/search, public comments, internal notes, upload-and-attach, users, organizations, webhooks list, current-user readiness, and a node-zendesk rawClient escape hatch for SDK-user-owned advanced methods.", "This package intentionally does not copy the old generated full Zendesk Support OpenAPI clone."];
        scope: "support-workflow-subset";
     };
     credentialRequirements: [{
        id: "zendesk-instance";
        label: "Zendesk Support instance URL";
        required: true;
      }, {
        id: "zendesk-api-access";
        label: "Zendesk Support API access";
        metadata: {
           privilegeGuidance: "OAuth tokens use Zendesk read/write scopes. API-token credentials inherit the Zendesk user's role and Support permissions.";
           scopeKind: "mixed-auth-mode";
        };
        required: true;
        scopes: ["read", "write"];
     }];
     directions: ["bidirectional"];
     id: "ticketing.zendesk";
     limitations: ["Tenant fields, triggers, automations, macros, routing, requester identity, and outbound policy remain SDK-user configuration."];
     maintainers: [{
        name: "Cognidesk";
        type: "official";
     }];
     metadata: {
        channelCoverage: {
           broaderZendeskApi: "provider-sdk-raw-client";
           comments: "sdk-backed-ticket-update-comment";
           organizations: "sdk-backed-read";
           tickets: "sdk-backed-create-read-update-search";
           uploads: "sdk-backed-attachments-upload-and-ticket-comment-association";
           users: "sdk-backed-read-current-user";
           webhooks: "sdk-backed-list";
        };
        implementation: {
           manifestImport: "no-sdk-client-initialization";
           rawClientEscapeHatch: "ZendeskTicketingClient.rawClient / getRawClient()";
           sdkPackage: "node-zendesk";
           sdkVersionRange: "^6.0.1";
           strategy: "provider-sdk-backed-client";
        };
        implementationStrategy: "node-zendesk-sdk-backed-support-workflow-subset";
        integrationEntryPoints: {
           manifest: "@cognidesk/integration-ticketing-zendesk/manifest";
           runtime: "@cognidesk/integration-ticketing-zendesk/runtime";
        };
        integrationName: "Zendesk Integration";
        integrationPackageName: "@cognidesk/integration-ticketing-zendesk";
        issue: 35;
        providerClient: {
           importPolicy: "runtime-entrypoint-only";
           package: "node-zendesk";
           versionRange: "^6.0.1";
        };
     };
     name: "Zendesk Support";
     operations: [{
        alias: "ticket.create";
        capability: "create-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "POST /api/v2/tickets.json";
        sideEffect: true;
      }, {
        alias: "ticket.read";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "GET /api/v2/tickets/{ticket_id}.json";
      }, {
        alias: "ticket.update";
        capability: "update-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "PUT /api/v2/tickets/{ticket_id}.json";
        sideEffect: true;
     }];
     packageName: "@cognidesk/integration-ticketing-zendesk";
     privacyNotes: ["Zendesk tickets can contain customer messages, requester details, internal comments, tags, and workflow metadata."];
     provider: "zendesk";
     trustLevel: "official";
  };
  metadata?: Record<string, unknown>;
  operationAliases: (
     | "ticket.read"
     | "ticket.comment.create"
     | "ticket.create"
     | "ticket.update"
     | "ticket.search"
     | "ticket.internalNote.create"
     | "ticket.attachments.add"
     | "customer.read"
     | "zendesk.organization.read"
     | "zendesk.webhook.list"
    | "zendesk.readiness")[];
  operations: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  };
  getOperationHandler: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias];
  requireOperationHandler: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias];
  run: Promise<Awaited<ReturnType<{
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias]>>>;
};

Parameters

Parameter Type
options ZendeskTicketingIntegrationOptions

Returns

{
  bindingReport: OperationBindingReport;
  client: ZendeskTicketingClient;
  getRawClient: () => ZendeskTicketingRawClient;
  manifest: {
     capabilities: {
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension?: boolean;
        label?: string;
        metadata?: Record<string, unknown>;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     category: string;
     channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
     coverage: {
        evidence: {
           label: string;
           url?: string;
        }[];
        notes: string[];
        scope:   | "support-workflow-subset"
           | "provider-api-subset"
           | "connector-required"
           | "local-protocol"
           | "full-provider-api";
     };
     credentialRequirements: {
        description?: string;
        id: string;
        label?: string;
        metadata?: Record<string, unknown>;
        required: boolean;
        scopes: string[];
     }[];
     directions: (
        | "receive-only"
        | "send-only"
        | "inbound-only"
        | "outbound-only"
       | "bidirectional")[];
     id: string;
     limitations: string[];
     maintainers: {
        name: string;
        type: "community" | "official" | "unknown" | "partner";
        url?: string;
     }[];
     metadata?: Record<string, unknown>;
     name: string;
     operations: {
        alias: string;
        audience?: "customer-facing" | "internal-support" | "mixed";
        audiences?: ("customer-facing" | "internal-support" | "mixed")[];
        capability: string;
        changesWorkflow?: boolean;
        description?: string;
        exposesSensitiveData?: boolean;
        extension: boolean;
        externallyVisible?: boolean;
        inputSchema?: unknown;
        inputSchemaName?: string;
        inputSchemaRef?: string;
        label?: string;
        metadata?: Record<string, unknown>;
        outputSchema?: unknown;
        outputSchemaName?: string;
        outputSchemaRef?: string;
        providerObject?: string;
        providerObjects?: {
           description?: string;
           kind: string;
           label?: string;
           metadata?: Record<string, unknown>;
           schemaName?: string;
        }[];
        providerOperation?: string;
        requiredPolicyIds?: string[];
        requiresApproval?: boolean;
        requiresCredential?: boolean;
        sideEffect?: boolean;
     }[];
     packageName: string;
     privacyNotes: string[];
     provider: string;
     trustLevel: "community" | "official" | "verified" | "experimental";
   } & {
     capabilities: [{
        capability: "create-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
         }, {
           kind: "zendeskTicketComment";
           label: "Zendesk Ticket Comment";
        }];
        requiresCredential: true;
        sideEffect: true;
      }, {
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
         }, {
           kind: "zendeskUser";
           label: "Zendesk User";
         }, {
           kind: "zendeskOrganization";
           label: "Zendesk Organization";
         }, {
           kind: "zendeskWebhook";
           label: "Zendesk Webhook";
        }];
        requiresCredential: true;
      }, {
        capability: "update-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObjects: [{
           kind: "zendeskTicket";
           label: "Zendesk Ticket";
        }];
        requiresCredential: true;
        sideEffect: true;
     }];
     category: "ticketing";
     channelAudiences: ["customer-facing", "internal-support", "mixed"];
     coverage: {
        evidence: [{
           label: "node-zendesk package";
           url: "https://www.npmjs.com/package/node-zendesk";
         }, {
           label: "Zendesk Node.js API client docs";
           url: "https://developer.zendesk.com/documentation/ticketing/api-clients/nodejs/";
         }, {
           label: "Zendesk Support API OpenAPI";
           url: "https://developer.zendesk.com/zendesk/oas.yaml";
         }, {
           label: "Zendesk Support Tickets API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/";
         }, {
           label: "Zendesk Ticket Comments API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/";
         }, {
           label: "Zendesk Upload Files API";
           url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket-attachments/";
        }];
        notes: ["Coverage is a Cognidesk support workflow adapter backed by the node-zendesk provider SDK.", "Typed operations cover ticket create/read/update/search, public comments, internal notes, upload-and-attach, users, organizations, webhooks list, current-user readiness, and a node-zendesk rawClient escape hatch for SDK-user-owned advanced methods.", "This package intentionally does not copy the old generated full Zendesk Support OpenAPI clone."];
        scope: "support-workflow-subset";
     };
     credentialRequirements: [{
        id: "zendesk-instance";
        label: "Zendesk Support instance URL";
        required: true;
      }, {
        id: "zendesk-api-access";
        label: "Zendesk Support API access";
        metadata: {
           privilegeGuidance: "OAuth tokens use Zendesk read/write scopes. API-token credentials inherit the Zendesk user's role and Support permissions.";
           scopeKind: "mixed-auth-mode";
        };
        required: true;
        scopes: ["read", "write"];
     }];
     directions: ["bidirectional"];
     id: "ticketing.zendesk";
     limitations: ["Tenant fields, triggers, automations, macros, routing, requester identity, and outbound policy remain SDK-user configuration."];
     maintainers: [{
        name: "Cognidesk";
        type: "official";
     }];
     metadata: {
        channelCoverage: {
           broaderZendeskApi: "provider-sdk-raw-client";
           comments: "sdk-backed-ticket-update-comment";
           organizations: "sdk-backed-read";
           tickets: "sdk-backed-create-read-update-search";
           uploads: "sdk-backed-attachments-upload-and-ticket-comment-association";
           users: "sdk-backed-read-current-user";
           webhooks: "sdk-backed-list";
        };
        implementation: {
           manifestImport: "no-sdk-client-initialization";
           rawClientEscapeHatch: "ZendeskTicketingClient.rawClient / getRawClient()";
           sdkPackage: "node-zendesk";
           sdkVersionRange: "^6.0.1";
           strategy: "provider-sdk-backed-client";
        };
        implementationStrategy: "node-zendesk-sdk-backed-support-workflow-subset";
        integrationEntryPoints: {
           manifest: "@cognidesk/integration-ticketing-zendesk/manifest";
           runtime: "@cognidesk/integration-ticketing-zendesk/runtime";
        };
        integrationName: "Zendesk Integration";
        integrationPackageName: "@cognidesk/integration-ticketing-zendesk";
        issue: 35;
        providerClient: {
           importPolicy: "runtime-entrypoint-only";
           package: "node-zendesk";
           versionRange: "^6.0.1";
        };
     };
     name: "Zendesk Support";
     operations: [{
        alias: "ticket.create";
        capability: "create-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "POST /api/v2/tickets.json";
        sideEffect: true;
      }, {
        alias: "ticket.read";
        capability: "read-provider-object";
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "GET /api/v2/tickets/{ticket_id}.json";
      }, {
        alias: "ticket.update";
        capability: "update-provider-object";
        changesWorkflow: true;
        exposesSensitiveData: true;
        providerObject: "ticket";
        providerOperation: "PUT /api/v2/tickets/{ticket_id}.json";
        sideEffect: true;
     }];
     packageName: "@cognidesk/integration-ticketing-zendesk";
     privacyNotes: ["Zendesk tickets can contain customer messages, requester details, internal comments, tags, and workflow metadata."];
     provider: "zendesk";
     trustLevel: "official";
  };
  metadata?: Record<string, unknown>;
  operationAliases: (
     | "ticket.read"
     | "ticket.comment.create"
     | "ticket.create"
     | "ticket.update"
     | "ticket.search"
     | "ticket.internalNote.create"
     | "ticket.attachments.add"
     | "customer.read"
     | "zendesk.organization.read"
     | "zendesk.webhook.list"
    | "zendesk.readiness")[];
  operations: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  };
  getOperationHandler: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias];
  requireOperationHandler: {
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias];
  run: Promise<Awaited<ReturnType<{
     customer.read: (input, _context) => Promise<JsonObject>;
     ticket.attachments.add: (input, _context) => Promise<JsonObject>;
     ticket.comment.create: (input, _context) => Promise<JsonObject>;
     ticket.create: (input, _context) => Promise<JsonObject>;
     ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
     ticket.read: (input, _context) => Promise<JsonObject>;
     ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
     ticket.update: (input, _context) => Promise<JsonObject>;
     zendesk.organization.read: (input, _context) => Promise<JsonObject>;
     zendesk.readiness: () => Promise<JsonObject>;
     zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
  }[Alias]>>>;
}
Name Type
bindingReport OperationBindingReport
client ZendeskTicketingClient
getRawClient() () => ZendeskTicketingRawClient
manifest { capabilities: { audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: Record\<string, unknown>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[]; category: string; channelAudiences: ("customer-facing" | "internal-support" | "mixed")[]; coverage: { evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; }; credentialRequirements: { description?: string; id: string; label?: string; metadata?: Record\<string, unknown>; required: boolean; scopes: string[]; }[]; directions: ( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[]; id: string; limitations: string[]; maintainers: { name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[]; metadata?: Record\<string, unknown>; name: string; operations: { alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: Record\<string, unknown>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[]; packageName: string; privacyNotes: string[]; provider: string; trustLevel: "community" | "official" | "verified" | "experimental"; } & { capabilities: [{ capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "zendeskTicket"; label: "Zendesk Ticket"; }, { kind: "zendeskTicketComment"; label: "Zendesk Ticket Comment"; }]; requiresCredential: true; sideEffect: true; }, { capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "zendeskTicket"; label: "Zendesk Ticket"; }, { kind: "zendeskUser"; label: "Zendesk User"; }, { kind: "zendeskOrganization"; label: "Zendesk Organization"; }, { kind: "zendeskWebhook"; label: "Zendesk Webhook"; }]; requiresCredential: true; }, { capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "zendeskTicket"; label: "Zendesk Ticket"; }]; requiresCredential: true; sideEffect: true; }]; category: "ticketing"; channelAudiences: ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: [{ label: "node-zendesk package"; url: "https://www.npmjs.com/package/node-zendesk"; }, { label: "Zendesk Node.js API client docs"; url: "https://developer.zendesk.com/documentation/ticketing/api-clients/nodejs/"; }, { label: "Zendesk Support API OpenAPI"; url: "https://developer.zendesk.com/zendesk/oas.yaml"; }, { label: "Zendesk Support Tickets API"; url: "https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/"; }, { label: "Zendesk Ticket Comments API"; url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/"; }, { label: "Zendesk Upload Files API"; url: "https://developer.zendesk.com/api-reference/ticketing/tickets/ticket-attachments/"; }]; notes: ["Coverage is a Cognidesk support workflow adapter backed by the node-zendesk provider SDK.", "Typed operations cover ticket create/read/update/search, public comments, internal notes, upload-and-attach, users, organizations, webhooks list, current-user readiness, and a node-zendesk rawClient escape hatch for SDK-user-owned advanced methods.", "This package intentionally does not copy the old generated full Zendesk Support OpenAPI clone."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ id: "zendesk-instance"; label: "Zendesk Support instance URL"; required: true; }, { id: "zendesk-api-access"; label: "Zendesk Support API access"; metadata: { privilegeGuidance: "OAuth tokens use Zendesk read/write scopes. API-token credentials inherit the Zendesk user's role and Support permissions."; scopeKind: "mixed-auth-mode"; }; required: true; scopes: ["read", "write"]; }]; directions: ["bidirectional"]; id: "ticketing.zendesk"; limitations: ["Tenant fields, triggers, automations, macros, routing, requester identity, and outbound policy remain SDK-user configuration."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { channelCoverage: { broaderZendeskApi: "provider-sdk-raw-client"; comments: "sdk-backed-ticket-update-comment"; organizations: "sdk-backed-read"; tickets: "sdk-backed-create-read-update-search"; uploads: "sdk-backed-attachments-upload-and-ticket-comment-association"; users: "sdk-backed-read-current-user"; webhooks: "sdk-backed-list"; }; implementation: { manifestImport: "no-sdk-client-initialization"; rawClientEscapeHatch: "ZendeskTicketingClient.rawClient / getRawClient()"; sdkPackage: "node-zendesk"; sdkVersionRange: "^6.0.1"; strategy: "provider-sdk-backed-client"; }; implementationStrategy: "node-zendesk-sdk-backed-support-workflow-subset"; integrationEntryPoints: { manifest: "@cognidesk/integration-ticketing-zendesk/manifest"; runtime: "@cognidesk/integration-ticketing-zendesk/runtime"; }; integrationName: "Zendesk Integration"; integrationPackageName: "@cognidesk/integration-ticketing-zendesk"; issue: 35; providerClient: { importPolicy: "runtime-entrypoint-only"; package: "node-zendesk"; versionRange: "^6.0.1"; }; }; name: "Zendesk Support"; operations: [{ alias: "ticket.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "POST /api/v2/tickets.json"; sideEffect: true; }, { alias: "ticket.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /api/v2/tickets/{ticket_id}.json"; }, { alias: "ticket.update"; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "PUT /api/v2/tickets/{ticket_id}.json"; sideEffect: true; }]; packageName: "@cognidesk/integration-ticketing-zendesk"; privacyNotes: ["Zendesk tickets can contain customer messages, requester details, internal comments, tags, and workflow metadata."]; provider: "zendesk"; trustLevel: "official"; }
metadata? Record\<string, unknown>
operationAliases ( | "ticket.read" | "ticket.comment.create" | "ticket.create" | "ticket.update" | "ticket.search" | "ticket.internalNote.create" | "ticket.attachments.add" | "customer.read" | "zendesk.organization.read" | "zendesk.webhook.list" | "zendesk.readiness")[]
operations { customer.read: (input, _context) => Promise\<JsonObject>; ticket.attachments.add: (input, _context) => Promise\<JsonObject>; ticket.comment.create: (input, _context) => Promise\<JsonObject>; ticket.create: (input, _context) => Promise\<JsonObject>; ticket.internalNote.create: (input, _context) => Promise\<JsonObject>; ticket.read: (input, _context) => Promise\<JsonObject>; ticket.search: (input, _context) => Promise\<ZendeskTicketingProviderPayload>; ticket.update: (input, _context) => Promise\<JsonObject>; zendesk.organization.read: (input, _context) => Promise\<JsonObject>; zendesk.readiness: () => Promise\<JsonObject>; zendesk.webhook.list: () => Promise\<ZendeskTicketingProviderPayload>; }
operations.customer.read() (input, _context) => Promise\<JsonObject>
operations.ticket.attachments.add() (input, _context) => Promise\<JsonObject>
operations.ticket.comment.create() (input, _context) => Promise\<JsonObject>
operations.ticket.create() (input, _context) => Promise\<JsonObject>
operations.ticket.internalNote.create() (input, _context) => Promise\<JsonObject>
operations.ticket.read() (input, _context) => Promise\<JsonObject>
operations.ticket.search() (input, _context) => Promise\<ZendeskTicketingProviderPayload>
operations.ticket.update() (input, _context) => Promise\<JsonObject>
operations.zendesk.organization.read() (input, _context) => Promise\<JsonObject>
operations.zendesk.readiness() () => Promise\<JsonObject>
operations.zendesk.webhook.list() () => Promise\<ZendeskTicketingProviderPayload>
getOperationHandler() (alias) => { customer.read: (input, _context) => Promise\<JsonObject>; ticket.attachments.add: (input, _context) => Promise\<JsonObject>; ticket.comment.create: (input, _context) => Promise\<JsonObject>; ticket.create: (input, _context) => Promise\<JsonObject>; ticket.internalNote.create: (input, _context) => Promise\<JsonObject>; ticket.read: (input, _context) => Promise\<JsonObject>; ticket.search: (input, _context) => Promise\<ZendeskTicketingProviderPayload>; ticket.update: (input, _context) => Promise\<JsonObject>; zendesk.organization.read: (input, _context) => Promise\<JsonObject>; zendesk.readiness: () => Promise\<JsonObject>; zendesk.webhook.list: () => Promise\<ZendeskTicketingProviderPayload>; }[Alias]
requireOperationHandler() (alias) => { customer.read: (input, _context) => Promise\<JsonObject>; ticket.attachments.add: (input, _context) => Promise\<JsonObject>; ticket.comment.create: (input, _context) => Promise\<JsonObject>; ticket.create: (input, _context) => Promise\<JsonObject>; ticket.internalNote.create: (input, _context) => Promise\<JsonObject>; ticket.read: (input, _context) => Promise\<JsonObject>; ticket.search: (input, _context) => Promise\<ZendeskTicketingProviderPayload>; ticket.update: (input, _context) => Promise\<JsonObject>; zendesk.organization.read: (input, _context) => Promise\<JsonObject>; zendesk.readiness: () => Promise\<JsonObject>; zendesk.webhook.list: () => Promise\<ZendeskTicketingProviderPayload>; }[Alias]
run() ( alias, input, context?) => Promise\<Awaited\<ReturnType\<{ customer.read: (input, _context) => Promise\<JsonObject>; ticket.attachments.add: (input, _context) => Promise\<JsonObject>; ticket.comment.create: (input, _context) => Promise\<JsonObject>; ticket.create: (input, _context) => Promise\<JsonObject>; ticket.internalNote.create: (input, _context) => Promise\<JsonObject>; ticket.read: (input, _context) => Promise\<JsonObject>; ticket.search: (input, _context) => Promise\<ZendeskTicketingProviderPayload>; ticket.update: (input, _context) => Promise\<JsonObject>; zendesk.organization.read: (input, _context) => Promise\<JsonObject>; zendesk.readiness: () => Promise\<JsonObject>; zendesk.webhook.list: () => Promise\<ZendeskTicketingProviderPayload>; }[Alias]>>>

createZendeskTicketingOperationHandlers()

function createZendeskTicketingOperationHandlers(options): {
  customer.read: (input, _context) => Promise<JsonObject>;
  ticket.attachments.add: (input, _context) => Promise<JsonObject>;
  ticket.comment.create: (input, _context) => Promise<JsonObject>;
  ticket.create: (input, _context) => Promise<JsonObject>;
  ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
  ticket.read: (input, _context) => Promise<JsonObject>;
  ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
  ticket.update: (input, _context) => Promise<JsonObject>;
  zendesk.organization.read: (input, _context) => Promise<JsonObject>;
  zendesk.readiness: () => Promise<JsonObject>;
  zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
};

Parameters

Parameter Type
options ZendeskTicketingIntegrationOptions

Returns

{
  customer.read: (input, _context) => Promise<JsonObject>;
  ticket.attachments.add: (input, _context) => Promise<JsonObject>;
  ticket.comment.create: (input, _context) => Promise<JsonObject>;
  ticket.create: (input, _context) => Promise<JsonObject>;
  ticket.internalNote.create: (input, _context) => Promise<JsonObject>;
  ticket.read: (input, _context) => Promise<JsonObject>;
  ticket.search: (input, _context) => Promise<ZendeskTicketingProviderPayload>;
  ticket.update: (input, _context) => Promise<JsonObject>;
  zendesk.organization.read: (input, _context) => Promise<JsonObject>;
  zendesk.readiness: () => Promise<JsonObject>;
  zendesk.webhook.list: () => Promise<ZendeskTicketingProviderPayload>;
}
Name Type
customer.read() (input, _context) => Promise\<JsonObject>
ticket.attachments.add() (input, _context) => Promise\<JsonObject>
ticket.comment.create() (input, _context) => Promise\<JsonObject>
ticket.create() (input, _context) => Promise\<JsonObject>
ticket.internalNote.create() (input, _context) => Promise\<JsonObject>
ticket.read() (input, _context) => Promise\<JsonObject>
ticket.search() (input, _context) => Promise\<ZendeskTicketingProviderPayload>
ticket.update() (input, _context) => Promise\<JsonObject>
zendesk.organization.read() (input, _context) => Promise\<JsonObject>
zendesk.readiness() () => Promise\<JsonObject>
zendesk.webhook.list() () => Promise\<ZendeskTicketingProviderPayload>

zendeskEndpointUri()

function zendeskEndpointUri(options): string;

Parameters

Parameter Type
options Pick\<ZendeskTicketingClientOptions, "instanceUrl" | "apiBasePath">

Returns

string


zendeskSdkOptions()

function zendeskSdkOptions(options, endpointUri?): ZendeskClientOptions;

Parameters

Parameter Type
options ZendeskTicketingClientOptions
endpointUri? string

Returns

ZendeskClientOptions

References

zendeskTicketingOperationAliases

Re-exports zendeskTicketingOperationAliases


zendeskTicketingProviderManifest

Re-exports zendeskTicketingProviderManifest


zendeskTicketingProviderManifestInput

Re-exports zendeskTicketingProviderManifestInput