> ## Documentation Index
> Fetch the complete documentation index at: https://docs.merchantops.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Use MerchantOps in Microsoft Teams (Hosted Agent)

> Add the MerchantOps Teams app to a channel and connect it in a few clicks — no Claude, ChatGPT, or Copilot Studio seat required.

MerchantOps can run a read-only chat agent directly inside a Microsoft Teams
channel. There's nothing to configure on the Microsoft 365 side beyond
installing the app — MerchantOps hosts the bot, so you don't need a Claude,
ChatGPT, or Copilot Studio seat to use it.

> [!NOTE]
>
> Already set up [Microsoft Teams via Copilot Studio](https://docs.merchantops.ai/tools/microsoft-teams.md)?
> That's a different, earlier integration where you bring your own Copilot
> Studio agent. This page covers the newer hosted bot, which needs no Copilot
> Studio setup at all. You don't need both — pick whichever fits your tenant.

> [!WARNING]
>
> **Everyone in a connected channel shares one credential.** Connecting binds a
> read-only key to the *channel*, not to each person in it. Anyone who can post
> in that channel can ask the bot anything that key can read. See
> [What the agent can see](#what-the-agent-can-see) before connecting a channel
> with sensitive membership.

## Prerequisites

* Permission to install apps and add bots to a team/channel in your
  Microsoft 365 tenant.
* A MerchantOps account with the **Owner** role to confirm the connection —
  only Owners can complete the connect flow. See
  [Team & roles](https://docs.merchantops.ai/settings/team-and-roles.md).

## Set it up

**1. Install the MerchantOps app**

Install the **MerchantOps** app for Microsoft Teams and add it to the
team you want it in.

**2. Add the bot to a channel**

Add the MerchantOps bot to the specific channel where you want catalog
access. Only **channels** are supported — the bot doesn't answer in
personal (1:1) chats or ad-hoc group chats.

> [!NOTE]
>
> Private and shared channels can include guests and people from other
> organizations. By default the assistant only answers members of your
> own Microsoft organization — see
> [Who gets answered](#who-gets-answered) below to allow outsiders.

**3. Start the connect flow**

In the channel, mention the bot:

```
@MerchantOps connect
```

The bot replies with a single-use connect link. The link expires in
**15 minutes** — if it expires before anyone opens it, just run
`@MerchantOps connect` again.

**4. Confirm as an Owner**

An Owner opens the link and confirms the connection in the MerchantOps
admin UI. Confirming mints a read-only API key scoped to that one
channel and binds it there — no key to copy or paste yourself.

On the connect page, the Owner can also check **"Also answer guests and
people from other organizations in this channel"**. Leave it unchecked
to keep the assistant answering only members of your own Microsoft
organization — see [Who gets answered](#who-gets-answered).

> [!WARNING]
>
> **One Microsoft tenant can only be linked to one MerchantOps
> organization.** The admin UI shows a strong warning the first time a
> tenant connects. If a tenant you expect to be yours already appears
> linked to a different organization, don't proceed — contact
> [support](https://merchantops.ai/contact) instead of retrying the
> connect flow.

Once confirmed, anyone in the channel can @mention the bot and ask about the
organization's catalog, pricing, MAP policies, batches, jobs, or publish
status.

## Who gets answered

Before answering, the assistant checks every asker against Microsoft's own
Teams membership record for them. By default it only answers **members** of
the organization the channel is connected to — someone whose tenant matches
the channel's host organization and who isn't a guest or anonymous user.
Guests and people from other organizations get a polite refusal instead,
unless an Owner checked **"Also answer guests and people from other
organizations in this channel"** when connecting (see
[Set it up](#set-it-up)).

This check exists because the app is installable in private and shared
Teams channels, which can include guests and people from other companies —
not just standard channels.

Non-members can never request or complete a connect link themselves; only
an Owner within the organization's own tenant can connect a channel.

## What the agent can see

The hosted bot uses the same **`channel_agent_reader`** role as the
[Copilot Studio](https://docs.merchantops.ai/tools/microsoft-teams.md) and [Slack](https://docs.merchantops.ai/tools/slack.md)
integrations — read-only, scoped to your organization, covering products,
product types, property definitions, pricing, MAP pricing, catalog batches,
jobs, lakehouse data, and documents. **Everyone in the connected channel sees
what that key can see** — there's no per-person filtering within the
channel.

If someone asks the bot to change a price, update a product, or run any
other write, the request is declined: this role carries no write permissions
on the MerchantOps side.

## Disconnect

Manage and disconnect channel bindings from
**Settings › Chat Integrations** — see the
[Chat Integrations reference](https://docs.merchantops.ai/settings/chat-integrations.md). Disconnecting
revokes the underlying key **immediately**; there's no grace period.

> [card] [Chat Integrations](https://docs.merchantops.ai/settings/chat-integrations.md)
>
> See and disconnect every channel bound to a MerchantOps key.

> [card] [MerchantOps in Microsoft Teams (Copilot Studio)](https://docs.merchantops.ai/tools/microsoft-teams.md)
>
> The earlier, bring-your-own-agent integration through Copilot Studio.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.