Skip to content

integrations/ticketing/servicenow/dist

Interfaces

ServiceNowAddAttachmentOperationInput

Extends

Properties

contentType?
optional contentType?: string;
data
data: BodyInit;
fileName
fileName: string;
id?
optional id?: string;
Inherited from

ServiceNowRecordIdentifierInput.id

sysId?
optional sysId?: string;
Inherited from

ServiceNowRecordIdentifierInput.sysId

tableName?
optional tableName?: string;
Inherited from

ServiceNowRecordIdentifierInput.tableName

tableSysId?
optional tableSysId?: string;
ticketId?
optional ticketId?: string;
Inherited from

ServiceNowRecordIdentifierInput.ticketId


ServiceNowCreateCommentOperationInput

Extends

Properties

body?
optional body?: string;
comment?
optional comment?: string;
id?
optional id?: string;
Inherited from

ServiceNowRecordIdentifierInput.id

sysId?
optional sysId?: string;
Inherited from

ServiceNowRecordIdentifierInput.sysId

tableName?
optional tableName?: string;
Inherited from

ServiceNowRecordIdentifierInput.tableName

text?
optional text?: string;
ticketId?
optional ticketId?: string;
Inherited from

ServiceNowRecordIdentifierInput.ticketId


ServiceNowCreateIncidentInput

Properties

additionalFields?
optional additionalFields?: ServiceNowProviderExtensionFields;
assignmentGroup?
optional assignmentGroup?: string;
callerId?
optional callerId?: string;
category?
optional category?: string;
contactType?
optional contactType?: string;
description?
optional description?: string;
impact?
optional impact?: string;
shortDescription
shortDescription: string;
subcategory?
optional subcategory?: string;
urgency?
optional urgency?: string;

ServiceNowCreateInternalNoteOperationInput

Extends

Properties

body?
optional body?: string;
id?
optional id?: string;
Inherited from

ServiceNowRecordIdentifierInput.id

note?
optional note?: string;
sysId?
optional sysId?: string;
Inherited from

ServiceNowRecordIdentifierInput.sysId

tableName?
optional tableName?: string;
Inherited from

ServiceNowRecordIdentifierInput.tableName

text?
optional text?: string;
ticketId?
optional ticketId?: string;
Inherited from

ServiceNowRecordIdentifierInput.ticketId


ServiceNowCreateRecordOperationInput

Properties

fields?
optional fields?: ServiceNowProviderPayload;
record?
optional record?: ServiceNowProviderPayload;
tableName
tableName: string;

ServiceNowCreateTicketOperationInput

Extends

Properties

additionalFields?
optional additionalFields?: ServiceNowProviderExtensionFields;
Inherited from

ServiceNowCreateIncidentInput.additionalFields

assignmentGroup?
optional assignmentGroup?: string;
Inherited from

ServiceNowCreateIncidentInput.assignmentGroup

callerId?
optional callerId?: string;
Inherited from

ServiceNowCreateIncidentInput.callerId

category?
optional category?: string;
Inherited from

ServiceNowCreateIncidentInput.category

contactType?
optional contactType?: string;
Inherited from

ServiceNowCreateIncidentInput.contactType

description?
optional description?: string;
Inherited from

ServiceNowCreateIncidentInput.description

fields?
optional fields?: ServiceNowProviderExtensionFields;
impact?
optional impact?: string;
Inherited from

ServiceNowCreateIncidentInput.impact

shortDescription?
optional shortDescription?: string;
Inherited from

ServiceNowCreateIncidentInput.shortDescription

subcategory?
optional subcategory?: string;
Inherited from

ServiceNowCreateIncidentInput.subcategory

subject?
optional subject?: string;
title?
optional title?: string;
urgency?
optional urgency?: string;
Inherited from

ServiceNowCreateIncidentInput.urgency


ServiceNowCredentialStatusInput

Properties

accessToken?
optional accessToken?: string;
baseUrl?
optional baseUrl?: string;
instance?
optional instance?: string;
instanceUrl?
optional instanceUrl?: string;

ServiceNowImportSetOperationInput

Properties

fields?
optional fields?: ServiceNowProviderPayload;
record?
optional record?: ServiceNowProviderPayload;
stagingTableName?
optional stagingTableName?: string;
tableName?
optional tableName?: string;

ServiceNowImportSetResultOperationInput

Properties

id?
optional id?: string;
stagingTableName?
optional stagingTableName?: string;
sysId?
optional sysId?: string;
tableName?
optional tableName?: string;

ServiceNowJsonObject

Extended by

Indexable

[key: string]: ServiceNowProviderExtensionValue

ServiceNowListAttachmentsOperationInput

Extends

Properties

displayValue?
optional displayValue?: boolean | "all";
Inherited from

ServiceNowTableQuery.displayValue

optional excludeReferenceLink?: boolean;
Inherited from

ServiceNowTableQuery.excludeReferenceLink

fields?
optional fields?: string[];
Inherited from

ServiceNowTableQuery.fields

id?
optional id?: string;
Inherited from

ServiceNowRecordIdentifierInput.id

limit?
optional limit?: number;
Inherited from

ServiceNowTableQuery.limit

offset?
optional offset?: number;
Inherited from

ServiceNowTableQuery.offset

query?
optional query?: string;
Inherited from

ServiceNowTableQuery.query

sysId?
optional sysId?: string;
Inherited from

ServiceNowRecordIdentifierInput.sysId

tableName?
optional tableName?: string;
Inherited from

ServiceNowRecordIdentifierInput.tableName

tableSysId?
optional tableSysId?: string;
ticketId?
optional ticketId?: string;
Inherited from

ServiceNowRecordIdentifierInput.ticketId


ServiceNowLiveCheckOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

ServiceNowTicketingClientOptions.accessToken

apiVersion?
optional apiVersion?: string;
Inherited from

ServiceNowTicketingClientOptions.apiVersion

baseUrl?
optional baseUrl?: string;
Inherited from

ServiceNowTicketingClientOptions.baseUrl

client?
optional client?: Pick<ServiceNowTicketingClient, "searchRecords">;
connector?
optional connector?: IConnector;
Inherited from

ServiceNowTicketingClientOptions.connector

headers?
optional headers?: Record<string, string>;
Inherited from

ServiceNowTicketingClientOptions.headers

instance?
optional instance?: string;
Inherited from

ServiceNowTicketingClientOptions.instance

instanceUrl?
optional instanceUrl?: string;
Inherited from

ServiceNowTicketingClientOptions.instanceUrl

rawClient?
optional rawClient?: ServiceNowRawClient;
Inherited from

ServiceNowTicketingClientOptions.rawClient

signal?
optional signal?: AbortSignal;
Inherited from

ServiceNowTicketingClientOptions.signal

tableName?
optional tableName?: string;
timeoutMs?
optional timeoutMs?: number;
Inherited from

ServiceNowTicketingClientOptions.timeoutMs


ServiceNowProviderExtensionFields

Extends

Indexable

[key: string]: ServiceNowProviderExtensionValue

ServiceNowProviderResponse

Extends

Indexable

[key: string]: ServiceNowProviderExtensionValue

ServiceNowRawClient

Extended by

Methods

createRecord()
createRecord<T>(tableName, record): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
record ServiceNowProviderPayload
Returns

Promise\<T>

getImportSetResult()
getImportSetResult(stagingTableName, sysId): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
stagingTableName string
sysId string
Returns

Promise\<ServiceNowProviderResponse>

getRecord()
getRecord<T>(
   tableName,
   sysId,
query?): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
sysId string
query? Omit\<ServiceNowTableQuery, "query" | "limit" | "offset">
Returns

Promise\<T>

importSet()
importSet(stagingTableName, record): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
stagingTableName string
record ServiceNowProviderPayload
Returns

Promise\<ServiceNowProviderResponse>

listAttachments()
listAttachments(query?): Promise<ServiceNowJsonObject[]>;
Parameters
Parameter Type
query? ServiceNowTableQuery
Returns

Promise\<ServiceNowJsonObject[]>

searchRecords()
searchRecords<T>(tableName, query?): Promise<T[]>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
query? ServiceNowTableQuery
Returns

Promise\<T[]>

updateRecord()
updateRecord<T>(
   tableName,
   sysId,
patch): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
sysId string
patch ServiceNowProviderPayload
Returns

Promise\<T>

uploadAttachment()
uploadAttachment(input): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
input ServiceNowUploadAttachmentInput
Returns

Promise\<ServiceNowProviderResponse>


ServiceNowRecord

Indexable

[key: string]: ServiceNowProviderExtensionValue

Properties

number?
optional number?: string;
short_description?
optional short_description?: string;
state?
optional state?: string;
sys_id?
optional sys_id?: string;

ServiceNowRecordIdentifierInput

Extended by

Properties

id?
optional id?: string;
sysId?
optional sysId?: string;
tableName?
optional tableName?: string;
ticketId?
optional ticketId?: string;

ServiceNowSearchRecordsOperationInput

Extends

Properties

displayValue?
optional displayValue?: boolean | "all";
Inherited from

ServiceNowTableQuery.displayValue

optional excludeReferenceLink?: boolean;
Inherited from

ServiceNowTableQuery.excludeReferenceLink

fields?
optional fields?: string[];
Inherited from

ServiceNowTableQuery.fields

limit?
optional limit?: number;
Inherited from

ServiceNowTableQuery.limit

offset?
optional offset?: number;
Inherited from

ServiceNowTableQuery.offset

query?
optional query?: string;
Inherited from

ServiceNowTableQuery.query

tableName?
optional tableName?: string;

ServiceNowTableQuery

Extended by

Properties

displayValue?
optional displayValue?: boolean | "all";
optional excludeReferenceLink?: boolean;
fields?
optional fields?: string[];
limit?
optional limit?: number;
offset?
optional offset?: number;
query?
optional query?: string;

ServiceNowTicketingClient

Extends

Properties

rawClient
rawClient: ServiceNowRawClient;

Methods

addIncidentComment()
addIncidentComment(sysId, comment): Promise<ServiceNowRecord>;
Parameters
Parameter Type
sysId string
comment string
Returns

Promise\<ServiceNowRecord>

addIncidentWorkNote()
addIncidentWorkNote(sysId, note): Promise<ServiceNowRecord>;
Parameters
Parameter Type
sysId string
note string
Returns

Promise\<ServiceNowRecord>

createIncident()
createIncident(input): Promise<ServiceNowRecord>;
Parameters
Parameter Type
input ServiceNowCreateIncidentInput
Returns

Promise\<ServiceNowRecord>

createRecord()
createRecord<T>(tableName, record): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
record ServiceNowProviderPayload
Returns

Promise\<T>

Inherited from

ServiceNowRawClient.createRecord

getImportSetResult()
getImportSetResult(stagingTableName, sysId): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
stagingTableName string
sysId string
Returns

Promise\<ServiceNowProviderResponse>

Inherited from

ServiceNowRawClient.getImportSetResult

getRecord()
getRecord<T>(
   tableName,
   sysId,
query?): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
sysId string
query? Omit\<ServiceNowTableQuery, "query" | "limit" | "offset">
Returns

Promise\<T>

Inherited from

ServiceNowRawClient.getRecord

importSet()
importSet(stagingTableName, record): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
stagingTableName string
record ServiceNowProviderPayload
Returns

Promise\<ServiceNowProviderResponse>

Inherited from

ServiceNowRawClient.importSet

listAttachments()
listAttachments(query?): Promise<ServiceNowJsonObject[]>;
Parameters
Parameter Type
query? ServiceNowTableQuery
Returns

Promise\<ServiceNowJsonObject[]>

Inherited from

ServiceNowRawClient.listAttachments

searchRecords()
searchRecords<T>(tableName, query?): Promise<T[]>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
query? ServiceNowTableQuery
Returns

Promise\<T[]>

Inherited from

ServiceNowRawClient.searchRecords

updateRecord()
updateRecord<T>(
   tableName,
   sysId,
patch): Promise<T>;
Type Parameters
Type Parameter Default type
T extends ServiceNowRecord ServiceNowRecord
Parameters
Parameter Type
tableName string
sysId string
patch ServiceNowProviderPayload
Returns

Promise\<T>

Inherited from

ServiceNowRawClient.updateRecord

uploadAttachment()
uploadAttachment(input): Promise<ServiceNowProviderResponse>;
Parameters
Parameter Type
input ServiceNowUploadAttachmentInput
Returns

Promise\<ServiceNowProviderResponse>

Inherited from

ServiceNowRawClient.uploadAttachment


ServiceNowTicketingClientOptions

Extended by

Properties

accessToken?
optional accessToken?: string;
apiVersion?
optional apiVersion?: string;
baseUrl?
optional baseUrl?: string;
connector?
optional connector?: IConnector;
headers?
optional headers?: Record<string, string>;
instance?
optional instance?: string;
instanceUrl?
optional instanceUrl?: string;
rawClient?
optional rawClient?: ServiceNowRawClient;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;

ServiceNowTicketingIntegrationOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

ServiceNowTicketingClientOptions.accessToken

apiVersion?
optional apiVersion?: string;
Inherited from

ServiceNowTicketingClientOptions.apiVersion

baseUrl?
optional baseUrl?: string;
Inherited from

ServiceNowTicketingClientOptions.baseUrl

connector?
optional connector?: IConnector;
Inherited from

ServiceNowTicketingClientOptions.connector

headers?
optional headers?: Record<string, string>;
Inherited from

ServiceNowTicketingClientOptions.headers

instance?
optional instance?: string;
Inherited from

ServiceNowTicketingClientOptions.instance

instanceUrl?
optional instanceUrl?: string;
Inherited from

ServiceNowTicketingClientOptions.instanceUrl

rawClient?
optional rawClient?: ServiceNowRawClient;
Inherited from

ServiceNowTicketingClientOptions.rawClient

signal?
optional signal?: AbortSignal;
Inherited from

ServiceNowTicketingClientOptions.signal

ticketingClient?
optional ticketingClient?: ServiceNowTicketingClient;
timeoutMs?
optional timeoutMs?: number;
Inherited from

ServiceNowTicketingClientOptions.timeoutMs


ServiceNowUpdateTicketOperationInput

Extends

Properties

fields?
optional fields?: ServiceNowProviderPayload;
id?
optional id?: string;
Inherited from

ServiceNowRecordIdentifierInput.id

patch?
optional patch?: ServiceNowProviderPayload;
sysId?
optional sysId?: string;
Inherited from

ServiceNowRecordIdentifierInput.sysId

tableName?
optional tableName?: string;
Inherited from

ServiceNowRecordIdentifierInput.tableName

ticketId?
optional ticketId?: string;
Inherited from

ServiceNowRecordIdentifierInput.ticketId


ServiceNowUploadAttachmentInput

Properties

contentType?
optional contentType?: string;
data
data: BodyInit;
fileName
fileName: string;
tableName
tableName: string;
tableSysId
tableSysId: string;

Type Aliases

ServiceNowJsonPrimitive

type ServiceNowJsonPrimitive = string | number | boolean | null;

ServiceNowJsonValue

type ServiceNowJsonValue =
  | ServiceNowJsonPrimitive
  | ServiceNowJsonObject
  | readonly ServiceNowJsonValue[];

ServiceNowProviderExtensionValue

type ServiceNowProviderExtensionValue = ServiceNowJsonValue | object | undefined;

ServiceNowProviderPayload

type ServiceNowProviderPayload = ServiceNowJsonObject | object;

ServiceNowProviderQuery

type ServiceNowProviderQuery = Record<string, ServiceNowProviderExtensionValue>;

ServiceNowTicketingOperationAlias

type ServiceNowTicketingOperationAlias = typeof serviceNowTicketingProviderOperations[number]["alias"];

Variables

serviceNowTicketingProviderOperations

const serviceNowTicketingProviderOperations: (
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow: true;
  description: string;
  exposesSensitiveData: true;
  extension?: never;
  externallyVisible?: never;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect: true;
}
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow?: never;
  description: string;
  exposesSensitiveData: true;
  extension?: never;
  externallyVisible?: never;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect?: never;
}
  | {
  alias: string;
  audiences: "mixed"[];
  capability: string;
  changesWorkflow: true;
  description: string;
  exposesSensitiveData: true;
  extension?: never;
  externallyVisible: true;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval: true;
  requiresCredential: true;
  sideEffect: true;
}
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow: true;
  description: string;
  exposesSensitiveData: true;
  extension?: never;
  externallyVisible: false;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect: true;
}
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow?: never;
  description: string;
  exposesSensitiveData: true;
  extension?: never;
  externallyVisible: true;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect: true;
}
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow: true;
  description: string;
  exposesSensitiveData: true;
  extension: true;
  externallyVisible?: never;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect: true;
}
  | {
  alias: string;
  audiences: ("internal-support" | "mixed")[];
  capability: string;
  changesWorkflow?: never;
  description: string;
  exposesSensitiveData: true;
  extension: true;
  externallyVisible?: never;
  label: string;
  providerObject: string;
  providerOperation: string;
  requiresApproval?: never;
  requiresCredential: true;
  sideEffect?: never;
})[];

Functions

createServiceNowSdkConnector()

function createServiceNowSdkConnector(options): IConnector;

Parameters

Parameter Type
options Pick\<ServiceNowTicketingClientOptions, "accessToken" | "baseUrl" | "instance" | "instanceUrl">

Returns

IConnector


createServiceNowSdkConnectorRawClient()

function createServiceNowSdkConnectorRawClient(options): ServiceNowRawClient;

Parameters

Parameter Type
options ServiceNowTicketingClientOptions

Returns

ServiceNowRawClient


createServiceNowTicketingClient()

function createServiceNowTicketingClient(options?): ServiceNowTicketingClient;

Parameters

Parameter Type
options? ServiceNowTicketingClientOptions

Returns

ServiceNowTicketingClient


createServiceNowTicketingIntegration()

function createServiceNowTicketingIntegration(options?): DefinedIntegration<{
  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: readonly [{
     audiences: readonly ["internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates SDK-user-selected ServiceNow Table API records such as incidents or cases; generic table names are SDK-owned schema plumbing, not generated per-table coverage.";
     label: "Create ServiceNow records";
     providerObjects: readonly [{
        kind: "servicenowRecord";
        label: "ServiceNow Record";
      }, {
        kind: "servicenowIncident";
        label: "ServiceNow Incident";
        schemaName: "incident";
      }, {
        kind: "servicenowAttachment";
        label: "ServiceNow Attachment";
      }, {
        kind: "servicenowImportSetRecord";
        label: "ServiceNow Import Set Record";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Reads ServiceNow Table API records by table and sys_id.";
     exposesSensitiveData: true;
     label: "Read ServiceNow records";
     providerObjects: readonly [{
        kind: "servicenowRecord";
        label: "ServiceNow Record";
      }, {
        kind: "servicenowAttachment";
        label: "ServiceNow Attachment";
      }, {
        kind: "servicenowImportSetRecord";
        label: "ServiceNow Import Set Record";
     }];
     requiresCredential: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "update-provider-object";
     changesWorkflow: true;
     description: "Updates ServiceNow Table API records such as incidents, comments, state, or assignment fields.";
     exposesSensitiveData: true;
     label: "Update ServiceNow records";
     providerObjects: readonly [{
        kind: "servicenowRecord";
        label: "ServiceNow Record";
      }, {
        kind: "servicenowIncident";
        label: "ServiceNow Incident";
        schemaName: "incident";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "search-provider-object";
     description: "Queries ServiceNow Table API records with SDK-user-supplied sysparm_query and field constraints.";
     exposesSensitiveData: true;
     label: "Search ServiceNow records";
     providerObjects: readonly [{
        kind: "servicenowRecord";
        label: "ServiceNow Record";
     }];
     requiresCredential: true;
   }, {
     audiences: readonly ["mixed"];
     capability: "send";
     changesWorkflow: true;
     description: "Posts customer-visible comments to ServiceNow incident records.";
     exposesSensitiveData: true;
     externallyVisible: true;
     label: "Send customer-visible updates";
     providerObjects: readonly [{
        kind: "servicenowIncident";
        label: "ServiceNow Incident";
        schemaName: "incident";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "draft";
     changesWorkflow: true;
     description: "Creates internal work notes on ServiceNow incident records.";
     exposesSensitiveData: true;
     externallyVisible: false;
     label: "Create internal notes";
     providerObjects: readonly [{
        kind: "servicenowIncident";
        label: "ServiceNow Incident";
        schemaName: "incident";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "attach";
     description: "Uploads attachments to ServiceNow records.";
     exposesSensitiveData: true;
     externallyVisible: true;
     label: "Attach files to ServiceNow records";
     providerObjects: readonly [{
        kind: "servicenowAttachment";
        label: "ServiceNow Attachment";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "handoff";
     changesWorkflow: true;
     description: "Provides Table API incident, attachment, and import-set operations used by SDK-user-configured record handoff workflows; this is not native Virtual Agent or Live Agent Chat transfer coverage.";
     label: "Attach record handoff to ServiceNow";
     providerObjects: readonly [{
        kind: "servicenowIncident";
        label: "ServiceNow Incident";
        schemaName: "incident";
      }, {
        kind: "servicenowAttachment";
        label: "ServiceNow Attachment";
      }, {
        kind: "servicenowImportSetRecord";
        label: "ServiceNow Import Set Record";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "ticketing";
  channelAudiences: readonly ["internal-support", "mixed"];
  coverage: {
     evidence: readonly [{
        label: "ServiceNow Table API";
        url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_TableAPI.html";
      }, {
        label: "ServiceNow Attachment API";
        url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_AttachmentAPI.html";
      }, {
        label: "ServiceNow Import Set API";
        url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_ImportSetAPI.html";
      }, {
        label: "ServiceNow Virtual Agent API";
        url: "https://www.servicenow.com/docs/r/conversational-interfaces/virtual-agent/virtual-agent-api-landing-page.html";
      }, {
        label: "ServiceNow Virtual Agent Bot Integration API";
        url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/bot-api.html";
      }, {
        label: "ServiceNow Virtual Agent API features";
        url: "https://www.servicenow.com/docs/r/yokohama/conversational-interfaces/virtual-agent/va-api-features.html";
     }];
     notes: readonly ["Coverage is limited to ServiceNow Table API record create/read/update/search, incident creation, Attachment API upload/list, Import Set insert/read, and readiness checks used by Cognidesk support workflows.", "Implementation uses the official @servicenow/sdk-api Connector when instanceUrl/baseUrl and OAuth bearer credentials are configured, with ServiceNowRawClient injection as an override for host-owned transports.", "Generic Table API helpers accept SDK-user-selected table names and fields, but they are not customer-specific generated schema coverage for arbitrary tables, custom fields, ACLs, business rules, or plugins.", "This is not full ServiceNow platform API coverage for Service Catalog/cart, journal-field semantics, attachment download/delete, transform-map lifecycle, scripted REST APIs, workflow APIs, or broader platform administration."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: readonly [{
     description: "The SDK user's ServiceNow instance URL for the built-in official @servicenow/sdk-api Connector transport, for example https://example.service-now.com. Not required when the host injects a ServiceNowRawClient.";
     id: "servicenow-instance";
     label: "ServiceNow instance URL";
     metadata: {
        requiredWhen: "built-in-servicenow-sdk-connector";
     };
     required: false;
   }, {
     description: "Server-side OAuth bearer access for the built-in official @servicenow/sdk-api Connector transport; effective access is governed by ServiceNow roles, ACLs, table access, and any tenant REST API Auth Scopes. Use ServiceNowRawClient injection for other tenant-auth transports.";
     id: "servicenow-api-access";
     label: "ServiceNow API access";
     metadata: {
        privilegeGuidance: "The table_api value is Cognidesk capability guidance, not a universal ServiceNow OAuth scope. The credential must be authorized for Table API, Attachment API, Import Set API, and configured target tables.";
        requiredWhen: "built-in-servicenow-sdk-connector";
        scopeKind: "internal-capability-labels";
     };
     required: false;
     scopes: readonly ["table_api"];
   }, {
     description: "Optional ServiceNowRawClient override supplied by the host application. When configured, Cognidesk delegates operations to that client instead of constructing the built-in @servicenow/sdk-api Connector transport.";
     id: "servicenow-raw-client";
     label: "Host-provided ServiceNow raw client";
     metadata: {
        clientInterface: "ServiceNowRawClient";
        credentialKind: "host-client-override";
        satisfies: readonly ["servicenow-instance", "servicenow-api-access"];
     };
     required: false;
  }];
  directions: readonly ["bidirectional"];
  id: "ticketing.servicenow";
  limitations: readonly ["Available tables, fields, ACLs, business rules, and mandatory fields are owned by the SDK user's ServiceNow instance.", "Handoff timing, approval, field mapping, assignment, and customer visibility are SDK-user configuration."];
  maintainers: readonly [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     channelCoverage: {
        arbitraryTableTyping: "not-covered";
        attachmentDownloadDelete: "provider-supported-not-implemented";
        attachments: "typed-upload-list";
        catalogWorkflowScriptedRest: "provider-supported-not-implemented";
        cccifCustomChatIntegration: "provider-supported-not-typed";
        connectConversationScopedApi: "provider-supported-not-typed";
        csmCaseApi: "provider-supported-not-typed";
        genericTableApi: "sdk-owned-classified-endpoint";
        importSets: "typed-json-create-read";
        incidents: "typed-create-comment-worknote";
        liveAgentTransfer: "provider-supported-not-typed";
        readinessSearch: "typed-search";
        tableRecords: "typed-json-create-read-update-search";
        taskTableRecords: "provider-supported-not-typed";
        virtualAgentApi: "provider-supported-not-typed";
        virtualAgentBotIntegrationApi: "provider-supported-not-typed";
     };
     checkedProviderApiCoverage: {
        coverageArtifact: "docs/provider-coverage/servicenow-checked-table-attachment-importset-2026-06-18.inventory.json";
        familyCount: 4;
        fullCoverageExportRequirement: "Full instance-specific ServiceNow coverage requires REST API Explorer/OpenAPI export for enabled APIs, table dictionary export, plugin/product inventory, ACL/role evidence, and scripted REST definitions from the SDK user's instance.";
        gapFamilyCount: 1;
        implementedFamilyCount: 3;
        implementedOperationCount: 11;
        sourceKind: "checked-endpoint-family-inventory";
        verifiedAt: "2026-06-18";
     };
     checkedProviderSdk: {
        checkedVersion: "4.8.0";
        license: "MIT";
        package: "@servicenow/sdk-api";
        reason: "OAuth default runtime uses Connector.fetch for create/read/update/attachment/import-set calls and Connector.queryTable for compatible table search calls. Non-OAuth tenant-auth transports must be supplied through ServiceNowRawClient injection instead of a package-owned REST fallback.";
        result: "used-as-runtime-connector";
     };
     implementation: {
        defaultClientPolicy: "use-official-servicenow-sdk-api-connector-for-oauth-runtime-transport; require ServiceNowRawClient injection for non-OAuth tenant-auth transports";
        manifestImport: "no-sdk-client-initialization";
        packageOwnedRestClient: false;
        rawClientEscapeHatch: "ServiceNowTicketingClient.rawClient";
        rawClientOverride: true;
        runtimePackage: "@cognidesk/integration-ticketing-servicenow";
        sdkPackage: "@servicenow/sdk-api";
        sdkRuntimeSurface: "Connector.fetch and Connector.queryTable";
        strategy: "official-sdk-connector";
     };
     sdkDecision: {
        checkedAt: "2026-06-25";
        checkedVersion: "4.8.0";
        license: "MIT";
        package: "@servicenow/sdk-api";
        reason: "The official ServiceNow SDK API exports Connector.fetch and Connector.queryTable as runtime instance transport. It does not provide a ticketing-specific Table/Attachment/Import Set client, so Cognidesk translates ticketing operations into the official connector transport and retains typed rawClient injection for host-owned clients.";
        result: "official-sdk-runtime-connector-not-ticketing-client";
     };
  };
  name: "ServiceNow Ticketing";
  operations: (
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow: true;
     description: string;
     exposesSensitiveData: true;
     extension?: never;
     externallyVisible?: never;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect: true;
   }
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: never;
     description: string;
     exposesSensitiveData: true;
     extension?: never;
     externallyVisible?: never;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect?: never;
   }
     | {
     alias: string;
     audiences: "mixed"[];
     capability: string;
     changesWorkflow: true;
     description: string;
     exposesSensitiveData: true;
     extension?: never;
     externallyVisible: true;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval: true;
     requiresCredential: true;
     sideEffect: true;
   }
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow: true;
     description: string;
     exposesSensitiveData: true;
     extension?: never;
     externallyVisible: false;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect: true;
   }
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: never;
     description: string;
     exposesSensitiveData: true;
     extension?: never;
     externallyVisible: true;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect: true;
   }
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow: true;
     description: string;
     exposesSensitiveData: true;
     extension: true;
     externallyVisible?: never;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect: true;
   }
     | {
     alias: string;
     audiences: ("internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: never;
     description: string;
     exposesSensitiveData: true;
     extension: true;
     externallyVisible?: never;
     label: string;
     providerObject: string;
     providerOperation: string;
     requiresApproval?: never;
     requiresCredential: true;
     sideEffect?: never;
  })[];
  packageName: "@cognidesk/integration-ticketing-servicenow";
  privacyNotes: readonly ["ServiceNow records can contain customer data, support notes, internal assignment data, and attached workflow context.", "ServiceNow credentials stay server-side and are never exposed through Studio credential status."];
  provider: "servicenow";
  trustLevel: "official";
}, unknown, IntegrationOperationHandlers>;

Parameters

Parameter Type
options? ServiceNowTicketingIntegrationOptions

Returns

DefinedIntegration\<{ 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: readonly [{ audiences: readonly ["internal-support", "mixed"]; capability: "create-provider-object"; changesWorkflow: true; description: "Creates SDK-user-selected ServiceNow Table API records such as incidents or cases; generic table names are SDK-owned schema plumbing, not generated per-table coverage."; label: "Create ServiceNow records"; providerObjects: readonly [{ kind: "servicenowRecord"; label: "ServiceNow Record"; }, { kind: "servicenowIncident"; label: "ServiceNow Incident"; schemaName: "incident"; }, { kind: "servicenowAttachment"; label: "ServiceNow Attachment"; }, { kind: "servicenowImportSetRecord"; label: "ServiceNow Import Set Record"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "read-provider-object"; description: "Reads ServiceNow Table API records by table and sys_id."; exposesSensitiveData: true; label: "Read ServiceNow records"; providerObjects: readonly [{ kind: "servicenowRecord"; label: "ServiceNow Record"; }, { kind: "servicenowAttachment"; label: "ServiceNow Attachment"; }, { kind: "servicenowImportSetRecord"; label: "ServiceNow Import Set Record"; }]; requiresCredential: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "update-provider-object"; changesWorkflow: true; description: "Updates ServiceNow Table API records such as incidents, comments, state, or assignment fields."; exposesSensitiveData: true; label: "Update ServiceNow records"; providerObjects: readonly [{ kind: "servicenowRecord"; label: "ServiceNow Record"; }, { kind: "servicenowIncident"; label: "ServiceNow Incident"; schemaName: "incident"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "search-provider-object"; description: "Queries ServiceNow Table API records with SDK-user-supplied sysparm_query and field constraints."; exposesSensitiveData: true; label: "Search ServiceNow records"; providerObjects: readonly [{ kind: "servicenowRecord"; label: "ServiceNow Record"; }]; requiresCredential: true; }, { audiences: readonly ["mixed"]; capability: "send"; changesWorkflow: true; description: "Posts customer-visible comments to ServiceNow incident records."; exposesSensitiveData: true; externallyVisible: true; label: "Send customer-visible updates"; providerObjects: readonly [{ kind: "servicenowIncident"; label: "ServiceNow Incident"; schemaName: "incident"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "draft"; changesWorkflow: true; description: "Creates internal work notes on ServiceNow incident records."; exposesSensitiveData: true; externallyVisible: false; label: "Create internal notes"; providerObjects: readonly [{ kind: "servicenowIncident"; label: "ServiceNow Incident"; schemaName: "incident"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "attach"; description: "Uploads attachments to ServiceNow records."; exposesSensitiveData: true; externallyVisible: true; label: "Attach files to ServiceNow records"; providerObjects: readonly [{ kind: "servicenowAttachment"; label: "ServiceNow Attachment"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "handoff"; changesWorkflow: true; description: "Provides Table API incident, attachment, and import-set operations used by SDK-user-configured record handoff workflows; this is not native Virtual Agent or Live Agent Chat transfer coverage."; label: "Attach record handoff to ServiceNow"; providerObjects: readonly [{ kind: "servicenowIncident"; label: "ServiceNow Incident"; schemaName: "incident"; }, { kind: "servicenowAttachment"; label: "ServiceNow Attachment"; }, { kind: "servicenowImportSetRecord"; label: "ServiceNow Import Set Record"; }]; requiresCredential: true; sideEffect: true; }]; category: "ticketing"; channelAudiences: readonly ["internal-support", "mixed"]; coverage: { evidence: readonly [{ label: "ServiceNow Table API"; url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_TableAPI.html"; }, { label: "ServiceNow Attachment API"; url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_AttachmentAPI.html"; }, { label: "ServiceNow Import Set API"; url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/c_ImportSetAPI.html"; }, { label: "ServiceNow Virtual Agent API"; url: "https://www.servicenow.com/docs/r/conversational-interfaces/virtual-agent/virtual-agent-api-landing-page.html"; }, { label: "ServiceNow Virtual Agent Bot Integration API"; url: "https://www.servicenow.com/docs/r/washingtondc/api-reference/rest-apis/bot-api.html"; }, { label: "ServiceNow Virtual Agent API features"; url: "https://www.servicenow.com/docs/r/yokohama/conversational-interfaces/virtual-agent/va-api-features.html"; }]; notes: readonly ["Coverage is limited to ServiceNow Table API record create/read/update/search, incident creation, Attachment API upload/list, Import Set insert/read, and readiness checks used by Cognidesk support workflows.", "Implementation uses the official @servicenow/sdk-api Connector when instanceUrl/baseUrl and OAuth bearer credentials are configured, with ServiceNowRawClient injection as an override for host-owned transports.", "Generic Table API helpers accept SDK-user-selected table names and fields, but they are not customer-specific generated schema coverage for arbitrary tables, custom fields, ACLs, business rules, or plugins.", "This is not full ServiceNow platform API coverage for Service Catalog/cart, journal-field semantics, attachment download/delete, transform-map lifecycle, scripted REST APIs, workflow APIs, or broader platform administration."]; scope: "support-workflow-subset"; }; credentialRequirements: readonly [{ description: "The SDK user's ServiceNow instance URL for the built-in official @servicenow/sdk-api Connector transport, for example https://example.service-now.com. Not required when the host injects a ServiceNowRawClient."; id: "servicenow-instance"; label: "ServiceNow instance URL"; metadata: { requiredWhen: "built-in-servicenow-sdk-connector"; }; required: false; }, { description: "Server-side OAuth bearer access for the built-in official @servicenow/sdk-api Connector transport; effective access is governed by ServiceNow roles, ACLs, table access, and any tenant REST API Auth Scopes. Use ServiceNowRawClient injection for other tenant-auth transports."; id: "servicenow-api-access"; label: "ServiceNow API access"; metadata: { privilegeGuidance: "The table_api value is Cognidesk capability guidance, not a universal ServiceNow OAuth scope. The credential must be authorized for Table API, Attachment API, Import Set API, and configured target tables."; requiredWhen: "built-in-servicenow-sdk-connector"; scopeKind: "internal-capability-labels"; }; required: false; scopes: readonly ["table_api"]; }, { description: "Optional ServiceNowRawClient override supplied by the host application. When configured, Cognidesk delegates operations to that client instead of constructing the built-in @servicenow/sdk-api Connector transport."; id: "servicenow-raw-client"; label: "Host-provided ServiceNow raw client"; metadata: { clientInterface: "ServiceNowRawClient"; credentialKind: "host-client-override"; satisfies: readonly ["servicenow-instance", "servicenow-api-access"]; }; required: false; }]; directions: readonly ["bidirectional"]; id: "ticketing.servicenow"; limitations: readonly ["Available tables, fields, ACLs, business rules, and mandatory fields are owned by the SDK user's ServiceNow instance.", "Handoff timing, approval, field mapping, assignment, and customer visibility are SDK-user configuration."]; maintainers: readonly [{ name: "Cognidesk"; type: "official"; }]; metadata: { channelCoverage: { arbitraryTableTyping: "not-covered"; attachmentDownloadDelete: "provider-supported-not-implemented"; attachments: "typed-upload-list"; catalogWorkflowScriptedRest: "provider-supported-not-implemented"; cccifCustomChatIntegration: "provider-supported-not-typed"; connectConversationScopedApi: "provider-supported-not-typed"; csmCaseApi: "provider-supported-not-typed"; genericTableApi: "sdk-owned-classified-endpoint"; importSets: "typed-json-create-read"; incidents: "typed-create-comment-worknote"; liveAgentTransfer: "provider-supported-not-typed"; readinessSearch: "typed-search"; tableRecords: "typed-json-create-read-update-search"; taskTableRecords: "provider-supported-not-typed"; virtualAgentApi: "provider-supported-not-typed"; virtualAgentBotIntegrationApi: "provider-supported-not-typed"; }; checkedProviderApiCoverage: { coverageArtifact: "docs/provider-coverage/servicenow-checked-table-attachment-importset-2026-06-18.inventory.json"; familyCount: 4; fullCoverageExportRequirement: "Full instance-specific ServiceNow coverage requires REST API Explorer/OpenAPI export for enabled APIs, table dictionary export, plugin/product inventory, ACL/role evidence, and scripted REST definitions from the SDK user's instance."; gapFamilyCount: 1; implementedFamilyCount: 3; implementedOperationCount: 11; sourceKind: "checked-endpoint-family-inventory"; verifiedAt: "2026-06-18"; }; checkedProviderSdk: { checkedVersion: "4.8.0"; license: "MIT"; package: "@servicenow/sdk-api"; reason: "OAuth default runtime uses Connector.fetch for create/read/update/attachment/import-set calls and Connector.queryTable for compatible table search calls. Non-OAuth tenant-auth transports must be supplied through ServiceNowRawClient injection instead of a package-owned REST fallback."; result: "used-as-runtime-connector"; }; implementation: { defaultClientPolicy: "use-official-servicenow-sdk-api-connector-for-oauth-runtime-transport; require ServiceNowRawClient injection for non-OAuth tenant-auth transports"; manifestImport: "no-sdk-client-initialization"; packageOwnedRestClient: false; rawClientEscapeHatch: "ServiceNowTicketingClient.rawClient"; rawClientOverride: true; runtimePackage: "@cognidesk/integration-ticketing-servicenow"; sdkPackage: "@servicenow/sdk-api"; sdkRuntimeSurface: "Connector.fetch and Connector.queryTable"; strategy: "official-sdk-connector"; }; sdkDecision: { checkedAt: "2026-06-25"; checkedVersion: "4.8.0"; license: "MIT"; package: "@servicenow/sdk-api"; reason: "The official ServiceNow SDK API exports Connector.fetch and Connector.queryTable as runtime instance transport. It does not provide a ticketing-specific Table/Attachment/Import Set client, so Cognidesk translates ticketing operations into the official connector transport and retains typed rawClient injection for host-owned clients."; result: "official-sdk-runtime-connector-not-ticketing-client"; }; }; name: "ServiceNow Ticketing"; operations: ( | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow: true; description: string; exposesSensitiveData: true; extension?: never; externallyVisible?: never; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect: true; } | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow?: never; description: string; exposesSensitiveData: true; extension?: never; externallyVisible?: never; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect?: never; } | { alias: string; audiences: "mixed"[]; capability: string; changesWorkflow: true; description: string; exposesSensitiveData: true; extension?: never; externallyVisible: true; label: string; providerObject: string; providerOperation: string; requiresApproval: true; requiresCredential: true; sideEffect: true; } | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow: true; description: string; exposesSensitiveData: true; extension?: never; externallyVisible: false; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect: true; } | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow?: never; description: string; exposesSensitiveData: true; extension?: never; externallyVisible: true; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect: true; } | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow: true; description: string; exposesSensitiveData: true; extension: true; externallyVisible?: never; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect: true; } | { alias: string; audiences: ("internal-support" | "mixed")[]; capability: string; changesWorkflow?: never; description: string; exposesSensitiveData: true; extension: true; externallyVisible?: never; label: string; providerObject: string; providerOperation: string; requiresApproval?: never; requiresCredential: true; sideEffect?: never; })[]; packageName: "@cognidesk/integration-ticketing-servicenow"; privacyNotes: readonly ["ServiceNow records can contain customer data, support notes, internal assignment data, and attached workflow context.", "ServiceNow credentials stay server-side and are never exposed through Studio credential status."]; provider: "servicenow"; trustLevel: "official"; }, unknown, IntegrationOperationHandlers>


createServiceNowTicketingLiveChecks()

function createServiceNowTicketingLiveChecks(options?): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        sampleCount: number;
        tableName: string;
     };
  }>;
}[];

Parameters

Parameter Type
options? ServiceNowLiveCheckOptions

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { sampleCount: number; tableName: string; }; }>; }[]


createServiceNowTicketingOperationHandlers()

function createServiceNowTicketingOperationHandlers(options?): IntegrationOperationHandlers;

Parameters

Parameter Type
options? ServiceNowTicketingIntegrationOptions

Returns

IntegrationOperationHandlers


createUnconfiguredServiceNowRawClient()

function createUnconfiguredServiceNowRawClient(message?): ServiceNowRawClient;

Parameters

Parameter Type
message? string

Returns

ServiceNowRawClient


serviceNowTicketingCredentialStatuses()

function serviceNowTicketingCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input ServiceNowCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]

References

serviceNowTicketingProviderManifest

Re-exports serviceNowTicketingProviderManifest