integrations/ticketing/zendesk/dist¶
Interfaces¶
JsonObject¶
Indexable¶
ZendeskSdkResource¶
Methods¶
_rawRequest()?¶
Parameters¶
| Parameter | Type |
|---|---|
method |
string |
path |
string |
body? |
unknown |
Returns¶
Promise\<unknown>
create()?¶
Parameters¶
| Parameter | Type |
|---|---|
input |
ZendeskTicketingProviderPayload |
Returns¶
Promise\<unknown>
list()?¶
Returns¶
Promise\<unknown>
me()?¶
Returns¶
Promise\<unknown>
query()?¶
Parameters¶
| Parameter | Type |
|---|---|
query |
string |
Returns¶
Promise\<unknown>
show()?¶
Parameters¶
| Parameter | Type |
|---|---|
id |
number |
Returns¶
Promise\<unknown>
update()?¶
Parameters¶
| Parameter | Type |
|---|---|
id |
number |
input |
ZendeskTicketingProviderPayload |
Returns¶
Promise\<unknown>
upload()?¶
Parameters¶
| Parameter | Type |
|---|---|
data |
Buffer\<ArrayBufferLike> | BodyInit | ReadableStream |
options |
ZendeskUploadOptions |
Returns¶
Promise\<unknown>
ZendeskSdkResponse¶
Type Parameters¶
| Type Parameter | Default type |
|---|---|
T |
ZendeskTicketingProviderPayload |
Indexable¶
Properties¶
response?¶
result?¶
ZendeskTicketAttachmentInput¶
Extends¶
Properties¶
binary?¶
Inherited from¶
comment?¶
contentType?¶
Inherited from¶
ZendeskUploadFileInput.contentType
data¶
Inherited from¶
filename¶
Inherited from¶
ZendeskUploadFileInput.filename
public?¶
ticketId¶
token?¶
Inherited from¶
ZendeskTicketingClient¶
Properties¶
rawClient¶
Methods¶
addTicketAttachment()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
ZendeskTicketAttachmentInput |
Returns¶
Promise\<JsonObject>
createComment()¶
Parameters¶
| Parameter | Type |
|---|---|
ticketId |
string | number |
comment |
JsonObject |
publicComment? |
boolean |
Returns¶
Promise\<JsonObject>
createTicket()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
JsonObject |
Returns¶
Promise\<JsonObject>
getOrganization()¶
Parameters¶
| Parameter | Type |
|---|---|
organizationId |
string | number |
Returns¶
Promise\<JsonObject>
getRawClient()¶
Returns¶
getTicket()¶
Parameters¶
| Parameter | Type |
|---|---|
ticketId |
string | number |
Returns¶
Promise\<JsonObject>
getUser()¶
Parameters¶
| Parameter | Type |
|---|---|
userId |
string | number |
Returns¶
Promise\<JsonObject>
listWebhooks()¶
Returns¶
Promise\<ZendeskTicketingProviderPayload>
rawRequest()¶
Type Parameters¶
| Type Parameter | Default type |
|---|---|
T |
JsonValue |
Parameters¶
| Parameter | Type |
|---|---|
path |
string |
init? |
RequestInit |
Returns¶
Promise\<T>
readiness()¶
Returns¶
Promise\<JsonObject>
searchTickets()¶
Parameters¶
| Parameter | Type |
|---|---|
query |
string | JsonObject |
Returns¶
Promise\<ZendeskTicketingProviderPayload>
updateTicket()¶
Parameters¶
| Parameter | Type |
|---|---|
ticketId |
string | number |
patch |
JsonObject |
Returns¶
Promise\<JsonObject>
uploadFile()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
ZendeskUploadFileInput |
Returns¶
Promise\<JsonObject>
ZendeskTicketingClientOptions¶
Extended by¶
Properties¶
accessToken?¶
apiBasePath?¶
apiToken?¶
createSdkClient?¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ZendeskClientOptions |
Returns¶
email?¶
fetch?¶
Call Signature¶
Parameters¶
| Parameter | Type |
|---|---|
input |
URL | RequestInfo |
init? |
RequestInit |
Returns¶
Promise\<Response>
Call Signature¶
Parameters¶
| Parameter | Type |
|---|---|
input |
string | Request | URL |
init? |
RequestInit |
Returns¶
Promise\<Response>
instanceUrl¶
rawClient?¶
sdkOptions?¶
ZendeskTicketingIntegrationOptions¶
Extends¶
Properties¶
accessToken?¶
Inherited from¶
ZendeskTicketingClientOptions.accessToken
apiBasePath?¶
Inherited from¶
ZendeskTicketingClientOptions.apiBasePath
apiToken?¶
Inherited from¶
ZendeskTicketingClientOptions.apiToken
createSdkClient?¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ZendeskClientOptions |
Returns¶
Inherited from¶
ZendeskTicketingClientOptions.createSdkClient
email?¶
Inherited from¶
ZendeskTicketingClientOptions.email
fetch?¶
Call Signature¶
Parameters¶
| Parameter | Type |
|---|---|
input |
URL | RequestInfo |
init? |
RequestInit |
Returns¶
Promise\<Response>
Call Signature¶
Parameters¶
| Parameter | Type |
|---|---|
input |
string | Request | URL |
init? |
RequestInit |
Returns¶
Promise\<Response>
Inherited from¶
ZendeskTicketingClientOptions.fetch
instanceUrl¶
Inherited from¶
ZendeskTicketingClientOptions.instanceUrl
rawClient?¶
Inherited from¶
ZendeskTicketingClientOptions.rawClient
sdkOptions?¶
Inherited from¶
ZendeskTicketingClientOptions.sdkOptions
ticketingClient?¶
ZendeskTicketingRawClient¶
Properties¶
attachments¶
organizations¶
search¶
tickets¶
users¶
webhooks¶
ZendeskUploadFileInput¶
Extended by¶
Properties¶
binary?¶
contentType?¶
data¶
filename¶
token?¶
ZendeskUploadOptions¶
Properties¶
binary¶
filename¶
token?¶
Type Aliases¶
JsonPrimitive¶
JsonValue¶
ZendeskTicketingIntegration¶
ZendeskTicketingProviderPayload¶
Variables¶
createZendeskIntegration¶
createZendeskIntegrationOperationHandlers¶
Functions¶
createZendeskTicketingClient()¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ZendeskTicketingClientOptions |
Returns¶
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()¶
Parameters¶
| Parameter | Type |
|---|---|
options |
Pick\<ZendeskTicketingClientOptions, "instanceUrl" | "apiBasePath"> |
Returns¶
string
zendeskSdkOptions()¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ZendeskTicketingClientOptions |
endpointUri? |
string |
Returns¶
ZendeskClientOptions
References¶
zendeskTicketingOperationAliases¶
Re-exports zendeskTicketingOperationAliases
zendeskTicketingProviderManifest¶
Re-exports zendeskTicketingProviderManifest
zendeskTicketingProviderManifestInput¶
Re-exports zendeskTicketingProviderManifestInput