Both modes connect your own agent: StandIn is the bridge, never the brain. And both need the same
one-time admin consent before calling works - chat works without it.
StandIn Managed Bot
StandIn publishes and operates one Microsoft Teams bot; your Microsoft organization is routed to your agent by a connection you create in the StandIn portal.- In Microsoft Teams, add StandIn from the Store.
- Type
signinto the bot and sign in with your StandIn account. That link is how StandIn learns which Microsoft organization to connect - you do not type a tenant id anywhere. - In the StandIn portal, deploy an identity and choose Use the StandIn bot. Paste your agent’s address; the portal gives you back the secrets.
- A Microsoft 365 administrator approves calling once for the organization. Chat works before this; calling switches on when the approval lands.
STANDIN_CHAT_SECRET and the chat lane signs with that
instead. ChatChannel reads STANDIN_CHAT_SECRET first and falls back to STANDIN_SECRET, so
when a single key covers both lanes there is nothing extra to set.
The managed bot is also what unlocks the SDK’s chat lane. ChatChannel dials out to StandIn
with whichever of those two keys it found, so chat needs no URL registered, no open port and no
tunnel rule, and your agent never holds a Bot Framework credential. It needs no flag either: if the
socket opens, you are managed.
One agent instance serves one connection. The secrets belong to a single Microsoft organization -
run a second instance for a second organization, and never share a secret across tenants.
Bring your own Azure bot
You register a Microsoft Entra app, create an Azure Bot resource, and upload your own Microsoft Teams app package. The bot carries your name and lives entirely in your tenant. Follow Azure bot setup and App package. This is the right choice when identity custody matters more than setup time, or when you need the bot to be visibly yours.Endpoints
StandIn dials your worker, so the URL you save in the portal has to match the path the worker listens on. Give the portal a bare host and it fills in the default below; paste a full URL if the worker uses a different path. Calling is the same in both modes. Only chat differs:
A bring-your-own-bot identity answers Microsoft Teams chat on that Azure Bot messaging URL, not
through
ChatChannel. Calls still use the calling row. Take the URL the portal offers when you
deploy the identity.
Expose your agent
The mount commands that publish the call path, what a healthy probe looks like, and the
--http1.1 gotcha that makes a working mount look broken.