Microsoft Teams

Put a Pepe agent in Microsoft Teams so your team can chat with it there.

Microsoft Teams

Connecting Teams lets your team chat with the agent where they already work. Teams talks to bots through Microsoft’s Bot Framework; configure the connection through the guided setup (or the dashboard):

pepe setup

A connection’s config holds:

Inbound activities arrive as POSTs. Replies go back to the activity’s service URL with an app access token minted from the client credentials. The bot mention is stripped from the incoming text before the agent sees it. Callback URL shape:

https://YOUR_HOST/webhooks/default/msteams/<slug>

Inbound authentication

Pepe checks that every incoming request really comes from Microsoft before the agent sees anything: each request carries an Authorization: Bearer Bot Framework token, and Pepe validates it (signature against Microsoft’s published keys, issuer, and an audience equal to the bot’s app_id). So the endpoint accepts POSTs straight from Microsoft, with no validating proxy required. If your proxy already performs that check, set trust_proxy: true on the connection to skip Pepe’s.

See Webhooks for the fields every connection shares (agent, mode, trainers, session_ttl_min, ephemeral, commands) and how the generic route works under the hood.

Switching models

The /model and /models commands let people check or change which AI model answers them. They work only on an admin-mode connection with commands enabled; on support, they are treated as plain text. /models lists the models available to this connection’s project; /model shows the current one, or changes it:

/model openrouter               # ask whether to switch just this chat or everyone
/model openrouter session       # switch for this conversation only
/model openrouter global        # switch for everyone this connection talks to

Anyone in an allowed conversation may switch the model for their own conversation. Switching it globally, for everyone this connection talks to, is reserved for trainers, the same trusted list that controls memory. Set model_switch_locked: true on the connection to turn model-switching off entirely for non-trainers.