Skip to content

Getting Started

This walks you from nothing to a working Teams voice call with your OpenClaw agent.

Pick one before you start - they differ in who owns the Teams bot, and that decides how much Azure work you do.

StandIn Managed BotBring your own Azure bot
Who owns the botStandInYou
Azure app registrationnoneyou create it
Teams channel in OpenClawnot neededrequired
What you paste hereone secretthe same secret + your bot’s app id, password and tenant id
Chat relayincluded, same secretyour own Teams channel

Managed Bot is the short path. Install StandIn from the Teams Store, connect this agent in the portal, and paste the one secret it gives you:

{
"plugins": {
"entries": {
"msteams-bridge": {
"config": {
"enabled": true,
// Covers BOTH lanes: calling and messages.
"secret": "paste-the-value-from-the-StandIn-portal"
}
}
}
}
}

Then register the two endpoints on your StandIn connection - Agent calling URL (wss://<host>/msteams/calling) and Agent messages URL (https://<host>/msteams/messages) - and skip the Teams-channel prerequisite below. The rest of this page is the BYO path.

  • An OpenClaw install, host >= 2026.6.10. Follow docs.openclaw.ai.
  • Microsoft Teams set up as an OpenClaw channel (the chat channel). This plugin adds voice/video on top of it. See the OpenClaw Teams channel docs.
  • A StandIn connection. The sandbox is free and needs no Teams bot of your own - perfect for a first call. See Connecting to StandIn.
  • For realtime mode, a realtime voice provider key (OpenAI or Azure OpenAI). For streaming mode, your OpenClaw-configured STT/TTS/agent is enough.

The one-line installer detects your OpenClaw install and walks you through the config (mode, shared secret, provider key), then prints next steps:

Terminal window
curl -fsSL https://standin.komaa.com/install.sh | bash

Prefer to do it by hand?

Terminal window
openclaw plugins install npm:@komaa/openclaw-msteams-bridge
openclaw gateway restart

It is also on ClawHub: openclaw plugins install clawhub:@komaa/msteams-bridge (OpenClaw falls back to npm automatically). The package ships prebuilt (v0.1.10+) - no build step either way.

The sandbox is the fastest path to a first call and needs no Azure/Teams bot of your own:

  1. Open standin.komaa.com/sandbox and follow it to generate a Teams meeting link. It gives you a shared secret for the session.
  2. Put that secret in your plugin config as secret (below).
  3. Join the meeting yourself; the shared StandIn bot joins and connects to your plugin.

Config lives under plugins.entries."msteams-bridge".config. A minimal realtime setup:

{
"plugins": {
"entries": {
"msteams-bridge": {
"config": {
"enabled": true,
"mode": "realtime",
"bindAddress": "0.0.0.0", // so the hosted bridge can reach the plugin
"port": 9442,
"secret": "<the secret from StandIn>",
"inboundPolicy": "open", // first-call testing; lock down after (see below)
"realtime": {
"provider": "openai",
"providers": { "openai": { "apiKey": "<key>", "model": "gpt-realtime" } }
}
}
}
}
}
}
  • bindAddress: "0.0.0.0" lets the hosted bridge connect (the default 127.0.0.1 only accepts local connections).
  • secret must match the value StandIn uses, or the handshake is rejected.
  • inboundPolicy must be set to receive calls at all: when it is unset, every inbound call is denied. open is fine for the first sandbox call.
  • Leave mode out to auto-select: realtime if a provider resolves, otherwise streaming.

See the full Configuration Reference for every option, and Realtime & Streaming Modes for provider setup.

Restart the gateway so the config takes effect:

Terminal window
openclaw gateway restart

Then place (or join) the Teams call. You should hear the agent, see its avatar, and - if you turn on your camera or share your screen - it can see you too.