Skip to main content

Overview

Microsoft Teams integration lets your agent respond inside Teams chats and channels - a natural fit for internal tooling and organizations already standardized on Microsoft 365.

Enterprise Ready

Built for Microsoft 365 organizations

Chats & Channels

DMs, group chats, and @mentions in team channels

Quick Start Available

Use Lua’s shared bot with no Azure setup

Bring Your Own Bot

Full control with your own Azure Bot registration

Two ways to connect

Fastest option
  • No Azure account or app registration needed
  • Install Lua’s shared Teams app into your tenant
  • Best for getting started quickly or trying Teams out
Available in the dashboard.

Connection Method 1: Use Lua’s Teams bot (Quick Start)

This is the fastest way to get your agent into Teams — Lua provides a ready-made Teams app, so there’s no Azure Bot resource or app registration to create.
1

Open the dashboard

lua admin
Or visit https://admin.heylua.ai.
2

Open your agent and add a channel

Click Agents in the main side navigation, select your agent’s card, click the + (plus) icon to add a channel, then choose Microsoft Teams.
Add a channel
Screenshot: The agent’s add-channel (+) control and the channel options
3

Choose Use Lua's Teams bot

Pick Use Lua’s Teams bot. No Azure credentials are required for this path.
4

Install the Lua Teams app

The dashboard gives you a Teams app package to install (or a direct install link). In Microsoft Teams, an admin uploads the app: Apps → Manage your apps → Upload a custom app, then selects the package Lua provided. If your tenant restricts custom app uploads, a Teams admin may need to approve it first in the Teams admin center.
5

Connect your agent

Installing the app doesn’t yet link it to your agent — one quick step does. The dashboard gives you a Connect link. Open it: it starts a chat with the Lua bot and pre-fills a one-time connect message. Just send it, and the bot replies “Connected to agent…” — your tenant is now linked to this agent.
The connect link is single-use and expires after 24 hours. If it expires before you use it, regenerate it from the dashboard.
6

Start chatting

@mention the bot in a team channel, or send it a direct message, and your agent will reply.

Connection Method 2: Bring Your Own Bot (Advanced)

Use this path if your organization requires its own Azure app registration, or you want the bot to appear under your own branding.
1

Create an Azure Bot resource

In portal.azure.com, create a new Azure Bot resource. When prompted for the app type, choose Single-Tenant — you’re connecting your own tenant, and multi-tenant app creation is deprecated for new bots.
2

Note your App ID and Tenant ID

On the Azure Bot resource, copy the Microsoft App ID and your Tenant ID. You’ll paste both into the Lua dashboard later.
3

Create a client secret

Under the bot’s app registration, go to Certificates & secrets and create a new client secret (also called the App password). Copy the secret value immediately — Azure only shows it once.Treat the client secret like a password — anyone with it can act as your bot.
4

Enable the Microsoft Teams channel

On the Azure Bot resource, open Channels and add Microsoft Teams.
5

Set the messaging endpoint

On the Azure Bot resource’s Configuration page, set the Messaging endpoint to:
https://wa.heylua.ai/teams/webhook
6

Build and upload a Teams app manifest

Your Teams app needs a manifest with botId set to your Microsoft App ID and the scopes your agent needs (team, groupChat, personal). The Lua dashboard generates a ready-to-use manifest for you once you’ve entered your App ID — download it and, in Microsoft Teams, upload it via Apps → Manage your apps → Upload a custom app.See Microsoft’s Teams app manifest schema if you want to customize it further.
7

Enter your credentials in the dashboard

Back in the Lua dashboard, choose Bring your own bot and paste your App ID, App password (client secret), and Tenant ID, then click Connect.
8

Start chatting

@mention the bot in a team channel, or send it a direct message, and your agent will reply.

Notes & limitations

  • Reactive replies and warm follow-ups only. Your agent replies wherever it’s been messaged or @mentioned. There is no cold-start path — you can’t message a Teams user who has never contacted your agent. See Channel Capabilities for the full outbound matrix.
  • Where the bot replies. The bot responds in the same chat or channel it was messaged or @mentioned in — a DM gets a DM reply, a channel @mention gets a channel reply.
  • Tenant admin approval. Depending on your Microsoft 365 tenant’s app policies, uploading a custom Teams app (Lua’s shared bot or your own manifest) may require a Teams admin to allow custom app uploads or approve the app in the Teams admin center.
  • Further reading: Microsoft’s Azure Bot Service documentation and Teams app manifest schema.

Sending Proactive Messages

To message a Teams user your agent is already in conversation with, load the User and call user.send(...), or use Channels.send with channel: 'teams' and to: { userId }:
import { Channels } from 'lua-cli';

await Channels.send({
  channel: 'teams',
  to: { userId },
  text: 'Heads up — your report is ready.',
});
Teams is warm-only — you can only reach a user who already has a conversation with your agent. See Proactive Messaging for the model and per-channel rules.

Next Steps

Slack

Add Slack support

Management

Manage all channels