Teams connector
OAuth 2.0 communicationConnect to Microsoft Teams. Manage messages, channels, meetings, and team collaboration
Teams connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your Teams credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Scalekit environment with the Microsoft Teams connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Register an Azure app
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Teams and click Create. Copy the redirect URI. It will look like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.
-
Sign into portal.azure.com and go to Microsoft Entra ID → App registrations → New registration.
-
Enter a name for your app.
-
Under Supported account types, select Accounts in any organizational directory (Any Azure AD directory - Multitenant).
-
Under Redirect URI, select Web and paste the redirect URI from step 1. Click Register.

-
Go to Certificates & secrets → New client secret, set an expiry, and click Add. Copy the Value immediately.
-
From the Overview page, copy the Application (client) ID.
-
-
Create an Azure bot
-
In the Azure portal, search for Azure Bot and click Create.
-
Enter a bot handle name, select your subscription and resource group, and set the Microsoft App ID to the Application (client) ID from above. Click Review + create.

-
Once created, go to Channels and add the Microsoft Teams channel to enable Teams integration.
-
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your credentials:
- Client ID (Application (client) ID from Azure App Registration)
- Client Secret (from Certificates & secrets)
- Permissions (scopes — see Microsoft Graph permissions reference)

-
Click Save.
-
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'microsoftteams'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Teams:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first API call through the proxyconst result = await actions.request({connectionName: connector,identifier,path: '/v1.0/me',method: 'GET',})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "microsoftteams"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Teams:", link_response.link)input("Press Enter after authorizing...")# Make your first API call through the proxyresult = actions.request(connection_name=connection_name,identifier=identifier,path="/v1.0/me",method="GET",)print(result)
Common workflows
Section titled “Common workflows”Proxy API call
// Make a request via Scalekit proxyconst result = await actions.request({ connectionName: 'microsoftteams', identifier: 'user_123', path: '/v1.0/me', method: 'GET',});console.log(result);# Make a request via Scalekit proxyresult = actions.request( connection_name='microsoftteams', identifier='user_123', path="/v1.0/me", method="GET")print(result)Execute a tool
const result = await actions.executeTool({ connector: 'microsoftteams', identifier: 'user_123', toolName: 'microsoftteams_list', toolInput: {},});console.log(result);result = actions.execute_tool( connection_name='microsoftteams', identifier='user_123', tool_name='microsoftteams_list', tool_input={},)print(result)