Skip to content

integrations/workplace/teams/dist/runtime

Interfaces

ParseTeamsChangeNotificationOptions

Properties

clientState?
optional clientState?: string;
requireClientState?
optional requireClientState?: boolean;

TeamsChangeNotification

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

changeType?
optional changeType?: string;
clientState?
optional clientState?: string;
encryptedContent?
optional encryptedContent?: TeamsWorkplaceProviderExtensionValue;
id?
optional id?: string;
resource?
optional resource?: string;
resourceData?
optional resourceData?: {
[key: string]: TeamsWorkplaceProviderExtensionValue;
  @odata.etag?: string;
  @odata.id?: string;
  @odata.type?: string;
  id?: string;
};
Index Signature
[key: string]: TeamsWorkplaceProviderExtensionValue
@odata.etag?
optional @odata.etag?: string;
@odata.id?
optional @odata.id?: string;
@odata.type?
optional @odata.type?: string;
id?
optional id?: string;
subscriptionExpirationDateTime?
optional subscriptionExpirationDateTime?: string;
subscriptionId?
optional subscriptionId?: string;
tenantId?
optional tenantId?: string;

TeamsChangeNotificationCollection

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

validationTokens?
optional validationTokens?: string[];
value?
optional value?: TeamsChangeNotification[];

TeamsChatMessageCollectionResponse

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

@odata.context?
optional @odata.context?: string;
optional @odata.nextLink?: string;
value?
optional value?: TeamsChatMessageResource[];

TeamsChatMessageInput

Extended by

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
body?
optional body?: TeamsItemBody;
content?
optional content?: string;
contentType?
optional contentType?: "html" | "text";
hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
importance?
optional importance?: string;
mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
subject?
optional subject?: string;

TeamsChatMessageResource

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
body?
optional body?: TeamsItemBody;
chatId?
optional chatId?: string;
createdDateTime?
optional createdDateTime?: string;
deletedDateTime?
optional deletedDateTime?: string;
etag?
optional etag?: string;
from?
optional from?: TeamsWorkplaceProviderExtensionValue;
hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
id?
optional id?: string;
importance?
optional importance?: string;
lastEditedDateTime?
optional lastEditedDateTime?: string;
lastModifiedDateTime?
optional lastModifiedDateTime?: string;
locale?
optional locale?: string;
mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
messageType?
optional messageType?: string;
policyViolation?
optional policyViolation?: TeamsWorkplaceProviderExtensionValue;
reactions?
optional reactions?: TeamsWorkplaceJsonValue[];
replyToId?
optional replyToId?: string;
subject?
optional subject?: string;
summary?
optional summary?: string;
webUrl?
optional webUrl?: string;

TeamsCreateSubscriptionInput

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
changeType
changeType: string;
clientState?
optional clientState?: string;
encryptionCertificate?
optional encryptionCertificate?: string;
encryptionCertificateId?
optional encryptionCertificateId?: string;
expirationDateTime
expirationDateTime: string;
includeResourceData?
optional includeResourceData?: boolean;
latestSupportedTlsVersion?
optional latestSupportedTlsVersion?: string;
lifecycleNotificationUrl?
optional lifecycleNotificationUrl?: string;
notificationUrl
notificationUrl: string;
resource
resource: string;

TeamsCredentialStatusInput

Properties

accessToken?
optional accessToken?: string;
adminConsentGranted?
optional adminConsentGranted?: boolean;
appClientId?
optional appClientId?: string;
clientState?
optional clientState?: string;
expiresAt?
optional expiresAt?: string;
requiredScopes?
optional requiredScopes?: string[];
scopes?
optional scopes?: string[];
tenantId?
optional tenantId?: string;

TeamsGetChannelMessageInput

Properties

channelId
channelId: string;
messageId
messageId: string;
replyId?
optional replyId?: string;
teamId
teamId: string;

TeamsGetChatMessageInput

Properties

chatId
chatId: string;
messageId
messageId: string;

TeamsGraphRequestInput

Properties

body?
optional body?: TeamsWorkplaceProviderPayload;
headers?
optional headers?: Record<string, string>;
method
method: TeamsGraphHttpMethod;
path
path: string;
pathParams?
optional pathParams?: Record<string, string | number | boolean>;
query?
optional query?: TeamsWorkplaceProviderQuery;
rawResponse?
optional rawResponse?: boolean;
signal?
optional signal?: AbortSignal;

TeamsGraphResource

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

TeamsItemBody

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

content?
optional content?: string;
contentType?
optional contentType?: string;

TeamsListChannelMessagesInput

Properties

channelId
channelId: string;
expand?
optional expand?: string;
teamId
teamId: string;
top?
optional top?: number;

TeamsListChannelRepliesInput

Properties

channelId
channelId: string;
messageId
messageId: string;
teamId
teamId: string;
top?
optional top?: number;

TeamsListChatMessagesInput

Properties

chatId
chatId: string;
filter?
optional filter?: string;
orderby?
optional orderby?: string;
top?
optional top?: number;

TeamsLiveCheckOptions

Extends

Properties

accessToken
accessToken: string;
Inherited from

TeamsWorkplaceClientOptions.accessToken

client?
optional client?: Pick<TeamsWorkplaceClient, "getCurrentUser">;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

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

MDN Reference

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

Promise\<Response>

Inherited from

TeamsWorkplaceClientOptions.fetch

graphApiBaseUrl?
optional graphApiBaseUrl?: string;
Inherited from

TeamsWorkplaceClientOptions.graphApiBaseUrl

graphApiVersion?
optional graphApiVersion?: string;
Inherited from

TeamsWorkplaceClientOptions.graphApiVersion

graphClient?
optional graphClient?: Client;
Inherited from

TeamsWorkplaceClientOptions.graphClient

permissionMode?
optional permissionMode?: "application" | "delegated";
Inherited from

TeamsWorkplaceClientOptions.permissionMode

signal?
optional signal?: AbortSignal;
Inherited from

TeamsWorkplaceClientOptions.signal


TeamsParsedChangeNotificationRequest

Properties

contentType?
optional contentType?: string;
notifications
notifications: TeamsChangeNotification[];
payload?
optional payload?: TeamsChangeNotificationCollection;
rawBody
rawBody: string;
validationToken?
optional validationToken?: string;
validClientState?
optional validClientState?: boolean;

TeamsSendChannelMessageInput

Extends

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
Inherited from

TeamsChatMessageInput.additionalFields

attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.attachments

body?
optional body?: TeamsItemBody;
Inherited from

TeamsChatMessageInput.body

channelId
channelId: string;
content?
optional content?: string;
Inherited from

TeamsChatMessageInput.content

contentType?
optional contentType?: "html" | "text";
Inherited from

TeamsChatMessageInput.contentType

hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.hostedContents

importance?
optional importance?: string;
Inherited from

TeamsChatMessageInput.importance

mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.mentions

subject?
optional subject?: string;
Inherited from

TeamsChatMessageInput.subject

teamId
teamId: string;

TeamsSendChannelReplyInput

Extends

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
Inherited from

TeamsChatMessageInput.additionalFields

attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.attachments

body?
optional body?: TeamsItemBody;
Inherited from

TeamsChatMessageInput.body

channelId
channelId: string;
content?
optional content?: string;
Inherited from

TeamsChatMessageInput.content

contentType?
optional contentType?: "html" | "text";
Inherited from

TeamsChatMessageInput.contentType

hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.hostedContents

importance?
optional importance?: string;
Inherited from

TeamsChatMessageInput.importance

mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.mentions

messageId
messageId: string;
subject?
optional subject?: string;
Inherited from

TeamsChatMessageInput.subject

teamId
teamId: string;

TeamsSendChatMessageInput

Extends

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
Inherited from

TeamsChatMessageInput.additionalFields

attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.attachments

body?
optional body?: TeamsItemBody;
Inherited from

TeamsChatMessageInput.body

chatId
chatId: string;
content?
optional content?: string;
Inherited from

TeamsChatMessageInput.content

contentType?
optional contentType?: "html" | "text";
Inherited from

TeamsChatMessageInput.contentType

hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.hostedContents

importance?
optional importance?: string;
Inherited from

TeamsChatMessageInput.importance

mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.mentions

subject?
optional subject?: string;
Inherited from

TeamsChatMessageInput.subject


TeamsSubscriptionResource

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

applicationId?
optional applicationId?: string;
changeType?
optional changeType?: string;
clientState?
optional clientState?: string;
expirationDateTime?
optional expirationDateTime?: string;
id?
optional id?: string;
lifecycleNotificationUrl?
optional lifecycleNotificationUrl?: string;
notificationUrl?
optional notificationUrl?: string;
resource?
optional resource?: string;

TeamsUpdateChannelMessageInput

Properties

channelId
channelId: string;
message
message: TeamsUpdateChatMessageInput;
messageId
messageId: string;
replyId?
optional replyId?: string;
teamId
teamId: string;

TeamsUpdateChatMessageInput

Extends

Properties

additionalFields?
optional additionalFields?: TeamsWorkplaceProviderExtensionFields;
Inherited from

TeamsChatMessageInput.additionalFields

attachments?
optional attachments?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.attachments

body?
optional body?: TeamsItemBody;
Inherited from

TeamsChatMessageInput.body

content?
optional content?: string;
Inherited from

TeamsChatMessageInput.content

contentType?
optional contentType?: "html" | "text";
Inherited from

TeamsChatMessageInput.contentType

hostedContents?
optional hostedContents?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.hostedContents

importance?
optional importance?: string;
Inherited from

TeamsChatMessageInput.importance

mentions?
optional mentions?: TeamsWorkplaceJsonValue[];
Inherited from

TeamsChatMessageInput.mentions

policyViolation?
optional policyViolation?: TeamsWorkplaceProviderExtensionValue;
subject?
optional subject?: string;
Inherited from

TeamsChatMessageInput.subject


TeamsUpdateChatMessageRequest

Properties

chatId
chatId: string;
message
message: TeamsUpdateChatMessageInput;
messageId
messageId: string;

TeamsUserResource

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

Properties

displayName?
optional displayName?: string;
id?
optional id?: string;
jobTitle?
optional jobTitle?: string;
mail?
optional mail?: string;
userPrincipalName?
optional userPrincipalName?: string;

TeamsWorkplaceClient

Properties

graphClient
graphClient: Client;
rawClient
rawClient: Client;

Methods

createSubscription()
createSubscription(input): Promise<TeamsSubscriptionResource>;
Parameters
Parameter Type
input TeamsCreateSubscriptionInput
Returns

Promise\<TeamsSubscriptionResource>

getChannelMessage()
getChannelMessage(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input TeamsGetChannelMessageInput
Returns

Promise\<TeamsChatMessageResource>

getChatMessage()
getChatMessage(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input TeamsGetChatMessageInput
Returns

Promise\<TeamsChatMessageResource>

getCurrentUser()
getCurrentUser(): Promise<TeamsUserResource>;
Returns

Promise\<TeamsUserResource>

listChannelMessages()
listChannelMessages(input): Promise<TeamsChatMessageCollectionResponse>;
Parameters
Parameter Type
input TeamsListChannelMessagesInput
Returns

Promise\<TeamsChatMessageCollectionResponse>

listChannelReplies()
listChannelReplies(input): Promise<TeamsChatMessageCollectionResponse>;
Parameters
Parameter Type
input TeamsListChannelRepliesInput
Returns

Promise\<TeamsChatMessageCollectionResponse>

listChatMessages()
listChatMessages(input): Promise<TeamsChatMessageCollectionResponse>;
Parameters
Parameter Type
input TeamsListChatMessagesInput
Returns

Promise\<TeamsChatMessageCollectionResponse>

postInternalAssistMessage()
postInternalAssistMessage(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input | TeamsSendChannelMessageInput | TeamsSendChatMessageInput
Returns

Promise\<TeamsChatMessageResource>

requestGraph()
requestGraph<T>(input): Promise<T>;
Type Parameters
Type Parameter Default type
T TeamsGraphResource
Parameters
Parameter Type
input TeamsGraphRequestInput
Returns

Promise\<T>

sendChannelMessage()
sendChannelMessage(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input TeamsSendChannelMessageInput
Returns

Promise\<TeamsChatMessageResource>

sendChannelReply()
sendChannelReply(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input TeamsSendChannelReplyInput
Returns

Promise\<TeamsChatMessageResource>

sendChatMessage()
sendChatMessage(input): Promise<TeamsChatMessageResource>;
Parameters
Parameter Type
input TeamsSendChatMessageInput
Returns

Promise\<TeamsChatMessageResource>

updateChannelMessage()
updateChannelMessage(input): Promise<Partial<TeamsChatMessageResource>>;
Parameters
Parameter Type
input TeamsUpdateChannelMessageInput
Returns

Promise\<Partial\<TeamsChatMessageResource>>

updateChatMessage()
updateChatMessage(input): Promise<Partial<TeamsChatMessageResource>>;
Parameters
Parameter Type
input TeamsUpdateChatMessageRequest
Returns

Promise\<Partial\<TeamsChatMessageResource>>


TeamsWorkplaceClientOptions

Extended by

Properties

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

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

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

MDN Reference

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

Promise\<Response>

graphApiBaseUrl?
optional graphApiBaseUrl?: string;
graphApiVersion?
optional graphApiVersion?: string;
graphClient?
optional graphClient?: Client;
permissionMode?
optional permissionMode?: "application" | "delegated";
signal?
optional signal?: AbortSignal;

TeamsWorkplaceJsonObject

Extended by

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

TeamsWorkplaceProviderExtensionFields

Extends

Indexable

[key: string]: TeamsWorkplaceProviderExtensionValue

ValidateTeamsChangeNotificationClientStateInput

Properties

clientState
clientState: string;
notifications
notifications: TeamsChangeNotification[];

Type Aliases

TeamsGraphHttpMethod

type TeamsGraphHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";

TeamsWorkplaceJsonPrimitive

type TeamsWorkplaceJsonPrimitive = string | number | boolean | null;

TeamsWorkplaceJsonValue

type TeamsWorkplaceJsonValue =
  | TeamsWorkplaceJsonPrimitive
  | TeamsWorkplaceJsonObject
  | readonly TeamsWorkplaceJsonValue[];

TeamsWorkplaceOperationCredentials

type TeamsWorkplaceOperationCredentials = TeamsWorkplaceClientOptions;

TeamsWorkplaceProviderExtensionValue

type TeamsWorkplaceProviderExtensionValue =
  | TeamsWorkplaceJsonValue
  | object
  | undefined;

TeamsWorkplaceProviderPayload

type TeamsWorkplaceProviderPayload = TeamsWorkplaceJsonObject | object;

TeamsWorkplaceProviderQuery

type TeamsWorkplaceProviderQuery = Record<string, TeamsWorkplaceProviderExtensionValue>;

Variables

teamsWorkplaceIntegration

const teamsWorkplaceIntegration: DefinedIntegration<{
  capabilities: [{
     audiences: ["internal-support", "mixed"];
     capability: "receive";
     description: "Validates Microsoft Graph change notification clientState values and parses Teams chatMessage notifications for SDK-user-owned workflows.";
     exposesSensitiveData: true;
     label: "Receive Teams change notifications";
     providerObjects: [{
        kind: "teamsChangeNotification";
        label: "Teams Change Notification";
      }, {
        kind: "teamsChatMessage";
        label: "Teams Chat Message";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "send";
     description: "Sends channel or chat messages through Microsoft Graph chatMessage endpoints with delegated permissions when SDK-user policy permits workplace-visible output.";
     exposesSensitiveData: true;
     label: "Send Teams messages";
     providerObjects: [{
        kind: "teamsChatMessage";
        label: "Teams Chat Message";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["internal-support"];
     capability: "notify";
     description: "Posts SDK-user-routed Teams messages for internal agent-assist, supervisor review, and workplace collaboration flows.";
     exposesSensitiveData: true;
     label: "Support internal agent assist";
     providerObjects: [{
        kind: "teamsAgentAssistMessage";
        label: "Teams Agent Assist Message";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "thread";
     description: "Associates support context with Teams channel threads, replies, and chat message identifiers selected by SDK-user configuration.";
     exposesSensitiveData: true;
     label: "Use Teams conversations";
     providerObjects: [{
        kind: "teamsChatMessage";
        label: "Teams Chat Message";
      }, {
        kind: "teamsThread";
        label: "Teams Thread";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Reads Teams channel or chat messages where Microsoft Graph permissions, resource-specific consent, and tenant policy allow access.";
     exposesSensitiveData: true;
     label: "Read Teams messages";
     providerObjects: [{
        kind: "teamsChatMessage";
        label: "Teams Chat Message";
      }, {
        kind: "teamsUser";
        label: "Microsoft Graph User";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates Microsoft Graph change-notification subscriptions for SDK-user-selected Teams resources; renewal and deletion lifecycle stays SDK-user-owned.";
     exposesSensitiveData: true;
     label: "Create Graph subscriptions";
     providerObjects: [{
        kind: "teamsGraphSubscription";
        label: "Microsoft Graph Subscription";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "update-provider-object";
     changesWorkflow: true;
     description: "Updates Teams chatMessage resources through Microsoft Graph: delegated permissions can update message properties, while application permissions are limited to policyViolation updates.";
     exposesSensitiveData: true;
     label: "Update Teams messages";
     providerObjects: [{
        kind: "teamsChatMessage";
        label: "Teams Chat Message";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "workplace";
  channelAudiences: ["internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Microsoft Graph JavaScript client";
        url: "https://www.npmjs.com/package/@microsoft/microsoft-graph-client";
      }, {
        label: "Microsoft Graph send channel message";
        url: "https://learn.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph send chat message";
        url: "https://learn.microsoft.com/en-us/graph/api/chat-post-messages?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph send channel reply";
        url: "https://learn.microsoft.com/en-us/graph/api/chatmessage-post-replies?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph list channel messages";
        url: "https://learn.microsoft.com/en-us/graph/api/channel-list-messages?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph list channel replies";
        url: "https://learn.microsoft.com/en-us/graph/api/chatmessage-list-replies?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph get chatMessage";
        url: "https://learn.microsoft.com/en-us/graph/api/chatmessage-get?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph update chatMessage";
        url: "https://learn.microsoft.com/en-us/graph/api/chatmessage-update?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph create subscription";
        url: "https://learn.microsoft.com/en-us/graph/api/subscription-post-subscriptions?view=graph-rest-1.0";
      }, {
        label: "Microsoft Graph webhook subscription lifecycle";
        url: "https://learn.microsoft.com/en-us/graph/change-notifications-delivery-webhooks";
     }];
     notes: ["Coverage includes SDK-backed Microsoft Graph Teams support workflows: channel and chat messages, channel replies, message updates, subscriptions, current-user readiness, and change notifications.", "The package uses @microsoft/microsoft-graph-client for Graph calls and keeps Cognidesk-normalized helper methods and operation handlers.", "This is not full Microsoft Graph coverage. Files/Drive, calendar, identity/admin, security, calls, meetings, app catalog breadth, and broader Graph resources remain outside this Teams adapter."];
     scope: "provider-api-subset";
  };
  credentialRequirements: [{
     description: "Server-side delegated Microsoft Graph OAuth access token for normal Teams chatMessage sends and /me readiness calls.";
     id: "microsoft-graph-oauth-access-token";
     label: "Microsoft Graph OAuth access token";
     metadata: {
        privilegeGuidance: "Normal Teams sends require delegated Microsoft Graph permissions; application permissions and resource-specific consent have narrower documented behavior and admin-consent requirements.";
        scopeKind: "mixed-auth-mode";
     };
     required: true;
     scopes: ["User.Read", "ChatMessage.Send", "ChannelMessage.Send", "Chat.Read", "Chat.ReadWrite", "ChannelMessage.Read.All", "ChannelMessage.Read.Group", "ChatMessage.Read.Chat", "ChannelMessage.ReadWrite"];
   }, {
     description: "SDK-user-owned tenant where the Teams resources, delegated users, app registration, and consent live.";
     id: "microsoft-graph-tenant";
     label: "Microsoft Entra tenant";
     required: true;
   }, {
     description: "SDK-user-owned Microsoft Entra app registration with delegated or application permissions and tenant/admin consent.";
     id: "microsoft-graph-app-registration";
     label: "Microsoft Graph app registration";
     required: true;
   }, {
     description: "SDK-user-owned secret used to validate Microsoft Graph change notification payloads.";
     id: "microsoft-graph-change-notification-client-state";
     label: "Graph change notification clientState";
     required: false;
  }];
  directions: ["receive-only", "send-only", "bidirectional"];
  id: "workplace.teams";
  limitations: ["Available operations depend on the SDK user's Microsoft Entra tenant, Teams licensing, Graph OAuth scopes, delegated versus application permission mode, resource-specific consent, tenant/admin consent, channel membership, and Teams policy.", "Normal channel/chat message sends reject application permission mode; Microsoft documents application send permissions for migration/import scenarios, which this package does not implement.", "Microsoft Graph channel and chat message APIs are intended for messages people will read; this package does not use Teams as an application log or choose automation volume policy.", "This package provides transport, parsing, and readiness helpers only; customer/internal visibility, agent assist, approval, retention, redaction, escalation, and human handoff are SDK-user policy.", "Subscription renewal, deletion, reauthorization timing, encrypted resource data decryption, and retry policy remain SDK-user integration responsibilities."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     channelCoverage: {
        applicationMigrationSend: "provider-supported-not-typed";
        changeNotifications: "typed-validate-parse";
        channelMessages: "sdk-owned-send-list-get-update";
        channelReplies: "sdk-owned-send-list";
        chatMessages: "sdk-owned-send-list-get-update";
        currentUser: "sdk-owned-read";
        graphSubscriptions: "sdk-owned-create";
     };
     implementation: {
        manifestOnlyExport: "@cognidesk/integration-workplace-teams/manifest";
        rawClientEscapeHatch: "rawClient";
        sdkPackage: "@microsoft/microsoft-graph-client";
        strategy: "official-sdk";
     };
  };
  name: "Microsoft Teams";
  operations: [{
     alias: "workplace.message.receive";
     capability: "receive";
     exposesSensitiveData: true;
     label: "Receive Teams change notifications";
     providerObject: "teamsChangeNotification";
   }, {
     alias: "workplace.thread.read";
     capability: "thread";
     exposesSensitiveData: true;
     label: "Read Teams thread messages";
     providerObject: "teamsChatMessage";
   }, {
     alias: "workplace.message.send";
     capability: "send";
     exposesSensitiveData: true;
     externallyVisible: true;
     label: "Send Teams message";
     providerObject: "teamsChatMessage";
     requiresApproval: true;
     sideEffect: true;
   }, {
     alias: "workplace.message.reply";
     capability: "send";
     exposesSensitiveData: true;
     externallyVisible: true;
     label: "Send Teams channel reply";
     providerObject: "teamsChatMessage";
     requiresApproval: true;
     sideEffect: true;
   }, {
     alias: "workplace.message.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     label: "Update Teams message";
     providerObject: "teamsChatMessage";
     sideEffect: true;
   }, {
     alias: "workplace.notification.send";
     capability: "notify";
     exposesSensitiveData: true;
     externallyVisible: true;
     label: "Send internal Teams notification";
     providerObject: "teamsAgentAssistMessage";
     requiresApproval: true;
     sideEffect: true;
   }, {
     alias: "workplace.user.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     label: "Read current Microsoft Graph user";
     providerObject: "teamsUser";
   }, {
     alias: "teams.channelMessages.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     label: "List Teams channel messages";
     providerObject: "teamsChatMessage";
   }, {
     alias: "teams.channelReplies.list";
     capability: "thread";
     exposesSensitiveData: true;
     extension: true;
     label: "List Teams channel replies";
     providerObject: "teamsChatMessage";
   }, {
     alias: "teams.channelMessage.get";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     label: "Get Teams channel message";
     providerObject: "teamsChatMessage";
   }, {
     alias: "teams.chatMessages.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     label: "List Teams chat messages";
     providerObject: "teamsChatMessage";
   }, {
     alias: "teams.chatMessage.get";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     label: "Get Teams chat message";
     providerObject: "teamsChatMessage";
   }, {
     alias: "teams.subscription.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     extension: true;
     label: "Create Microsoft Graph Teams subscription";
     providerObject: "teamsGraphSubscription";
     sideEffect: true;
   }, {
     alias: "teams.webhook.parse";
     capability: "receive";
     exposesSensitiveData: true;
     extension: true;
     label: "Parse Teams webhook";
     providerObject: "teamsChangeNotification";
   }, {
     alias: "teams.rawGraph.request";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     label: "Run raw Microsoft Graph request";
     metadata: {
        rawClientEscapeHatch: true;
     };
     providerObject: "teamsGraphResource";
  }];
  packageName: "@cognidesk/integration-workplace-teams";
  privacyNotes: ["Teams messages, channel identifiers, chat identifiers, user identifiers, mentions, attachments, reactions, hosted content references, and change notification payloads can contain internal support context and customer data.", "Microsoft Graph OAuth tokens, app credentials, tenant identifiers, and change notification clientState secrets stay server-side and are represented in Studio only as credential readiness.", "Internal visibility, agent-assist routing, transcript use, retention, legal hold, deletion, and escalation policy remain SDK-user-owned Microsoft Teams, Microsoft Purview, and Cognidesk configuration."];
  provider: "teams";
  trustLevel: "official";
}, TeamsWorkplaceClientOptions, {
  teams.channelMessage.get: (input, context) => Promise<TeamsChatMessageResource>;
  teams.channelMessages.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.channelReplies.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.chatMessage.get: (input, context) => Promise<TeamsChatMessageResource>;
  teams.chatMessages.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.rawGraph.request: (input, context) => Promise<TeamsGraphResource>;
  teams.subscription.create: (input, context) => Promise<TeamsSubscriptionResource>;
  teams.webhook.parse: (input, _context) => Promise<TeamsParsedChangeNotificationRequest>;
  workplace.message.receive: (input, _context) => Promise<TeamsParsedChangeNotificationRequest>;
  workplace.message.reply: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.message.send: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.message.update: (input, context) => Promise<Partial<TeamsChatMessageResource>>;
  workplace.notification.send: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.thread.read: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  workplace.user.read: (_input, context) => Promise<TeamsUserResource>;
}>;

teamsWorkplaceOperationHandlers

const teamsWorkplaceOperationHandlers: {
  teams.channelMessage.get: (input, context) => Promise<TeamsChatMessageResource>;
  teams.channelMessages.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.channelReplies.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.chatMessage.get: (input, context) => Promise<TeamsChatMessageResource>;
  teams.chatMessages.list: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  teams.rawGraph.request: (input, context) => Promise<TeamsGraphResource>;
  teams.subscription.create: (input, context) => Promise<TeamsSubscriptionResource>;
  teams.webhook.parse: (input, _context) => Promise<TeamsParsedChangeNotificationRequest>;
  workplace.message.receive: (input, _context) => Promise<TeamsParsedChangeNotificationRequest>;
  workplace.message.reply: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.message.send: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.message.update: (input, context) => Promise<Partial<TeamsChatMessageResource>>;
  workplace.notification.send: (input, context) => Promise<TeamsChatMessageResource>;
  workplace.thread.read: (input, context) => Promise<TeamsChatMessageCollectionResponse>;
  workplace.user.read: (_input, context) => Promise<TeamsUserResource>;
};

Type Declaration

Name Type
teams.channelMessage.get() (input, context) => Promise\<TeamsChatMessageResource>
teams.channelMessages.list() (input, context) => Promise\<TeamsChatMessageCollectionResponse>
teams.channelReplies.list() (input, context) => Promise\<TeamsChatMessageCollectionResponse>
teams.chatMessage.get() (input, context) => Promise\<TeamsChatMessageResource>
teams.chatMessages.list() (input, context) => Promise\<TeamsChatMessageCollectionResponse>
teams.rawGraph.request() (input, context) => Promise\<TeamsGraphResource>
teams.subscription.create() (input, context) => Promise\<TeamsSubscriptionResource>
teams.webhook.parse() (input, _context) => Promise\<TeamsParsedChangeNotificationRequest>
workplace.message.receive() (input, _context) => Promise\<TeamsParsedChangeNotificationRequest>
workplace.message.reply() (input, context) => Promise\<TeamsChatMessageResource>
workplace.message.send() (input, context) => Promise\<TeamsChatMessageResource>
workplace.message.update() (input, context) => Promise\<Partial\<TeamsChatMessageResource>>
workplace.notification.send() (input, context) => Promise\<TeamsChatMessageResource>
workplace.thread.read() (input, context) => Promise\<TeamsChatMessageCollectionResponse>
workplace.user.read() (_input, context) => Promise\<TeamsUserResource>

Functions

createTeamsWorkplaceClient()

function createTeamsWorkplaceClient(options): TeamsWorkplaceClient;

Parameters

Parameter Type
options TeamsWorkplaceClientOptions

Returns

TeamsWorkplaceClient


createTeamsWorkplaceLiveChecks()

function createTeamsWorkplaceLiveChecks(options): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        displayName: string;
        id: string;
        mail: string;
        userPrincipalName: string;
     };
  }>;
}[];

Parameters

Parameter Type
options TeamsLiveCheckOptions

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { displayName: string; id: string; mail: string; userPrincipalName: string; }; }>; }[]


normalizeTeamsGraphError()

function normalizeTeamsGraphError(error): IntegrationError;

Parameters

Parameter Type
error unknown

Returns

IntegrationError


parseTeamsChangeNotificationRequest()

function parseTeamsChangeNotificationRequest(request, options?): Promise<TeamsParsedChangeNotificationRequest>;

Parameters

Parameter Type
request Request
options? ParseTeamsChangeNotificationOptions

Returns

Promise\<TeamsParsedChangeNotificationRequest>


teamsChangeNotificationValidationResponse()

function teamsChangeNotificationValidationResponse(validationToken): Response;

Parameters

Parameter Type
validationToken string

Returns

Response


teamsWorkplaceCredentialStatuses()

function teamsWorkplaceCredentialStatuses(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 TeamsCredentialStatusInput

Returns

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


validateTeamsChangeNotificationClientState()

function validateTeamsChangeNotificationClientState(input): boolean;

Parameters

Parameter Type
input ValidateTeamsChangeNotificationClientStateInput

Returns

boolean