Microsoft Teams
AI for Work integrates with Microsoft Teams using Azure Bot Service, enabling users to access AI assistance, receive proactive notifications, and use Copilot features without leaving Teams.When to Use
| Scenario | Details |
|---|---|
| Heavy Teams usage | Organizations using Teams as the primary hub for communication, meetings, and file sharing |
| Workflow integration | Teams needing AI assistance during active chats, meetings, or collaborative document sessions |
| Proactive notifications | Businesses requiring AI-driven alerts, reminders, or time-sensitive updates delivered in Teams |
| Copilot enhancement | Companies extending standard Copilot with custom AI agents and specialized workflows |
Architecture
The integration uses Azure Bot Service as the communication bridge:| Component | Role |
|---|---|
| AI for Work Platform | Processes user requests |
| Azure Bot Service | Routes messages between the platform and Teams |
| Microsoft Teams | User-facing interface |
| Azure App Registration | Manages authentication and permissions |
Prerequisites
| Requirement | Details |
|---|---|
| Azure Subscription | Active subscription with administrative privileges |
| Teams Admin Access | Permission to upload and manage custom apps in the Teams Admin Center |
| AI for Work Account | Active subscription with access to the Admin Console |
Configuration
Follow these phases sequentially to ensure proper deployment and functionality. Phase 1: Initial Setup and Webhook Configuration Objective: Establish communication between AI for Work and Azure Bot Service.- Log in to the Admin Console.
- Navigate to Channels > Microsoft Teams and Copilot.
- Copy and save the Webhook URL, to use in Azure Bot configuration later.
- Sign in to the Azure Portal.
- Click + Create a resource → Search for Azure Bot.
-
Select Azure Bot and configure the following:
- Bot Handle: Choose a unique name.
- Subscription: Select your active subscription.
- Resource Group: Create or reuse an existing group.
- Pricing Tier: Select based on expected usage.
- App Type: Select Multi-Tenant or Single-Tenant based on organizational needs.
- After deployment completes, click Go to resource and navigate to Configuration in the left sidebar.
- Paste the webhook URL copied from the AI for Work platform into the Messaging endpoint field and click Apply to save the configuration.
-
In Configuration, click Manage Password next to the Microsoft App ID.

-
Go to Certificates & secrets → + New client secret.

- Enter description and expiry → Add.
- Copy the Value of the client secret (App Password).
- Record the Microsoft App ID and App Password for the Platform configuration.
- Navigate to Channels in the bot resource menu and locate the Available Channels section.
-
Select the Microsoft Teams channel and M365 Extensions channel (required for Copilot integration), review channel information, and select Save.

The Web Chat channel isn’t supported for this integration, so keep it disabled.
- In the Azure Portal, navigate to App registrations and select + New registration.
-
Register New Application:
- Name: Provide a descriptive name (for example, Platform-Microsoft Teams-Notifications).
- Supported account types: Choose based on organizational requirements.
- Redirect URI: Leave blank for this use case.
-
Select Register.

-
In the app registration, navigate to API permissions and select Add a permission.

-
Select Microsoft Graph → Application permissions.
Required Permissions: Add the following permissions for full functionality:
TeamsAppInstallation.ReadForUser.AllTeamsAppInstallation.ReadWriteSelfForUser.AllTeamsAppInstallation.ReadWriteForUser.AllUser.Read.AllAppCatalog.Read.All
- Grant Admin Consent.
- Generate a Client Secret and note down App ID, Directory (Tenant) ID.
- Configure these values in AI for Work under Microsoft Teams & Copilot Channel Settings.
- Generate a JWT token for secure communication.
- Navigate to the Admin Console.
- Locate Channels on the left pane.
- Select Microsoft Teams and Copilot.
-
Enter the following credentials under Configuration:
- Microsoft App Tenant ID: (SingleTenant only) The tenant ID from the bot’s app registration.
- Microsoft App ID: The App ID from your Azure Bot resource.
- App Password: The client secret from the bot’s app registration.

- App ID of the Microsoft Teams App: The additional app credentials for sending Proactive Notifications.
- Application (Client) ID: From the notifications app registration.
- Client Secret: From the notifications app registration.
- Delivery (Tenant) ID: From the notifications app registration.

- App Name – Choose a custom display name for Microsoft Teams.
- Logo – Upload an organization-specific logo.
- Description – Provide a tailored description that reflects organizational context.

- Sign in to Microsoft Teams Admin Center.
- Navigate to Teams apps → Manage apps.
-
Click Upload new app and select the downloaded application package. Wait for upload and verify to complete.

- Add App for All Users (Recommended) — Automatically installs the custom app for all employees in the organization. All users receive a notification in Microsoft Teams and a welcome message when the app is added.
Users must also be provisioned in the Account Hub of the Platform to access the app.
- Let Users Add the App Themselves — The custom app is available in the organization’s app catalog within Teams. Users need to search for the app in the Apps section in Teams and add it manually. No automatic notifications or installations occur.
Users must be present in the Account Hub to use the app.
- Add App for Selected Users or User Groups — Uses app setup policies to assign the app only to specific users or security groups. Selected users are automatically notified in Microsoft Teams and receive the welcome message. Other users can find and install the app from the organization’s app catalog if permitted by policy.
Selected users must also exist in the Account Hub for access.
Troubleshooting
Bot Not Responding in Microsoft Teams- Verify the webhook URL is correctly configured in Azure Bot.
- Check that the Microsoft Teams channel is enabled and saved.
- Validate client secrets haven’t expired.
- Confirm admin consent is granted for all required API permissions.
- Verify client secrets are copied correctly (Value, not Secret ID).
- Check tenant ID matches between configurations.
- Ensure you have proper admin permissions in the Teams Admin Center.
- Verify the application package is not corrupted during download.
- Check organizational policies allow custom app uploads.
- Verify that admin consent is granted for all required Microsoft Graph permissions.
- Verify that the notification app registration client secret is valid.
- Ensure JWT token generation is working correctly.
Slack
AI for Work integrates with Slack as a custom app, enabling users to perform work tasks, query enterprise knowledge, and interact with AI agents without leaving Slack.
When to Use
| Scenario | Details |
|---|---|
| Seamless workflow integration | Teams needing AI assistance during active conversations, with persistent chat history and context retention |
| Enterprise knowledge access | Organizations connecting users to knowledge repositories — documents, LLMs, and data-driven answers — within Slack channels |
| Heavy Slack usage | Remote or hybrid teams that treat Slack as their central hub for communication and project coordination |
Architecture
The integration uses Slack’s Developer Portal and OAuth authentication:Prerequisites
| Requirement | Details |
|---|---|
| Slack Workspace | Active workspace with administrative privileges |
| Slack Developer Portal Access | Permission to create and manage apps in your workspace |
| AI for Work Account | Active subscription with access to the Admin Console |
Integration Lifecycle
| Phase | Steps |
|---|---|
| Configuration and creation | Customize app details in the Admin Console to generate an App Manifest, then use the manifest to create the app in the Slack Developer Portal |
| Connection and security | Perform a credential exchange to link the platforms, then authorize the required permissions |
| Rollout | Define the welcome experience, then grant user access to onboarded employees |
Configuration
Step 1: Configure App Display Settings- Log in to the Admin Console.
-
Navigate to Channels → Slack.

-
Open the Configuration page and set the following:
Setting Description App Name Name users see when interacting with the app in Slack App Description Explains the app’s capabilities; appears in the About section in Slack 
If you change the app name or description after deployment, generate a new manifest and update the Slack app in the Developer Portal.
- On the Configuration page, click Get Manifest.
-
Copy the entire manifest code.

- Go to the Slack Developer Portal.
- Sign in with your workspace credentials.
-
Click Your Apps.

- Click Create New App (or Create an App for first-time users).
- Select From a manifest.
-
Select the target workspace from the Slack Workspace dropdown.

- Paste the manifest code copied from the Platform.
- Click Next, review the configuration and permissions, then click Create.
- In the Slack Developer Portal, navigate to Basic Information in the left sidebar.
-
Scroll to App Credentials and copy:
- Client ID
- Client Secret
- Signing Secret

- Return to the Admin Console > App Credentials page.
- Paste the copied values into the corresponding fields.
-
Click Authorize.

- Review the permission request that Slack displays.
- Click Allow.
-
In the Admin Console, navigate to the Welcome Experience page.

-
Configure the following:
Setting Description Welcome Message Introductory message users see when they first open the app Sample Prompts Up to four clickable prompts to help users start a conversation -
For each sample prompt, set:
- Display Message — Text shown to users as the prompt button.
- Actual Query — The complete query sent to the Platform when the user clicks the prompt.
- Click Save and Update. Changes take effect immediately for all users.
You can update the welcome experience at any time. Changes apply to all users immediately.
- In the Slack Developer Portal, go to Basic Information → Display Information.
- Click Upload next to App Icon and select an image file.
- Optionally, set a Background Color.
-
Click Save Changes.

User Access Management
Only users who have onboarded to AI for Work can interact with the Slack app. Before deploying, ensure you:- Invite all intended users to the Platform.
- Onboard users with the appropriate access permissions.
- Confirm users exist in both the Platform and the target Slack workspace.
Current Limitations
| Limitation | Details |
|---|---|
| Single workspace | The app deploys to one Slack workspace. Multi-workspace deployments require a separate app instance per workspace. |
| Direct messaging only | The app functions as a direct messaging interface. Adding the app to channels is not supported, and mentions in public or private channels do not trigger responses. |
Web/Mobile SDK
AI for Work integrates with your web or mobile application through the Web/Mobile SDK, enabling AI chat, agent interactions, and enterprise knowledge access directly inside your product. Each SDK app you create has its own credentials, allowed domains, and authentication settings, so you can deploy independent integrations for different applications or environments.When to Use
| Scenario | Details |
|---|---|
| Embedded assistant | Organizations that want to surface AI for Work inside their own web or mobile applications, instead of a separate channel |
| Customer-facing experiences | Products needing AI chat, agent interactions, and knowledge lookup available to end users within the host app |
| Multi-app deployments | Teams running several applications or environments (such as staging and production) that each require isolated credentials and domain rules |
| Custom UI requirements | Use cases where the assistant interface must match the host application’s branding and user experience |
Architecture
The integration uses signed credentials and JWT-based authentication between the host application and the Platform:| Component | Role |
|---|---|
| Host Application | The web or mobile app where the SDK is embedded |
| Web/Mobile SDK | Prebuilt library that renders the assistant interface and handles communication |
| App Credentials | Client ID, Client Secret, and JWT used to authenticate SDK requests |
| Allowed Domains | Allowlist that restricts which domains can load the SDK |
Prerequisites
| Requirement | Details |
|---|---|
| AI for Work Account | Active subscription with access to the Admin Console |
| Host Application | A web or mobile application where you can embed the SDK code and prebuilt libraries |
| Domain Access | The domains where the SDK will run, ready to be added to the allowlist |
Configuration
Each SDK app is created and managed independently from the SDK Apps page. You can create as many SDK apps as you need, each with its own credentials, allowed domains, and SDK setup. Step 1: Create an SDK App- Log in to the Admin Console.
- Navigate to Channels → Web/Mobile SDK.
- On the SDK Apps page, click + Create New.
You can return to the SDK Apps page at any time to view, edit, or delete existing apps.
- Open the App Credentials section.
-
Configure or copy the following values:
Field Description App Name Display name for the SDK app. Used to identify the app in the SDK Apps list. Client ID System-generated identifier for the SDK app. Use the copy icon to copy the value. Client Secret System-generated secret used to sign JWTs. Use the copy icon to copy the value, or the refresh icon to regenerate it. JWT Generation Sample JWT payload structure showing the mandatory and optional claims required by the SDK. - Click Continue.
Treat the Client Secret like a password. Regenerating the secret invalidates the previous value, and any host application using the old secret stops working until it is updated.
- Open the Allowed Domains section.
- Enter a domain in the Enter domain field (for example,
https://example.com). - Click + Add Domain.
- Repeat to add additional domains.
- To modify the list, edit any existing domain inline, or delete a domain to remove it.
- Click Continue.
Only configured domains are permitted to load the SDK. Add every domain where the SDK will be embedded, including staging and development environments.
- Open the SDK Details section.
- Use the following resources to set up the SDK in your host application:
- Web SDK — Click Download SDK to access the prebuilt Web SDK library and embed it in your web application.
- Mobile SDK — Click Download SDK to access the prebuilt Mobile SDK library and embed it in your mobile application.
- Click Save.
Managing SDK Apps
From the SDK Apps page, you can:- View all SDK apps, including the creation date and the user who created them.
- Edit an existing app to update credentials, allowed domains, or SDK setup.
- Delete an app that’s no longer needed using the actions menu.
Deleting an SDK app immediately revokes its credentials. Any host application using those credentials will stop functioning.
Web SDK Integration through CDN
After creating an SDK app in the Admin Console, integrate the Web SDK chatbot widget into your web application using the CDN approach. This method embeds the widget directly into your website without installing any npm packages. Integration Flow The end-to-end integration follows five stages:- Load the Web SDK through CDN.
- Authenticate the user (through SSO).
- Generate a JWT token.
- Exchange the JWT for an access token.
- Initialize the chatbot widget.
| Requirement | Source |
|---|---|
| Client ID | App Credentials section of the SDK app |
| Client Secret | App Credentials section of the SDK app |
| Base URL | Platform environment (for example, https://work.kore.ai) |
| SSO Login Endpoint | Platform URL constructed using the Client ID |
| API URL | Platform URL constructed using the Client ID |
| Presence URL | Platform base URL |
| User Profile API | Host application endpoint that returns the logged-in user’s details (for example, /api/users/me) |
Never expose the Client Secret in production frontend code. In production, JWT generation must happen on the backend so that the secret stays server-side.
<head> section of your HTML page:
YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with the values from your SDK app.
<script> tag in the page footer, immediately before the closing </body> tag. Do not split these steps across multiple script blocks.
In production, move JWT generation to your backend so that the Client Secret never reaches the browser.
Testing Checklist
Before going live, verify the following:- The user profile API returns the expected data.
- The JWT is generated correctly.
- The SSO endpoint returns an access token.
- The chatbot loads without console errors.
- Conversation history is preserved across sessions.
- The presence connection is successful.