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

# Custom internal bot for your technicians

> Put a chat agent you build — your prompt, your tools, your branding — in your own technicians' Microsoft Teams, as a bot separate from the Neo AI Agent app

You can put a chat agent **you build** — your instructions, your tools, your branding — in front of **your own technicians** in Microsoft Teams. It installs into your own Microsoft 365 tenant as its own bot, separate from the Neo AI Agent app, and runs with the full MSP toolbox you give it.

This is the technician-facing counterpart to the [branded end-user bot](/teams-bot): same channel machinery, but pointed at your own tenant and your own team instead of a client's.

## Neo Support Agent vs. your own internal agent

Two different things can answer your technicians in Teams — and it's easy to conflate them. Pick by what you need:

|                                    | Neo Support Agent                                                       | Your own internal agent                                             |
| ---------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **Built by**                       | Neo — managed, you can't edit it                                        | You — your instructions, your toolbox                               |
| **Brand**                          | Neo                                                                     | Yours, per channel                                                  |
| **In Teams via**                   | the **Neo AI Agent** app (from AppSource)                               | a **channel** → **Install in your tenant** — a separate branded bot |
| **How many**                       | one per tenant                                                          | as many as you build                                                |
| **What it does**                   | answers Neo setup questions, searches your docs and tickets (read-only) | whatever you configure — your full MSP toolbox                      |
| **Notifications & approval cards** | **yes**, through the app                                                | **no** — those still arrive through the Neo AI Agent app            |
| **Cost**                           | support tooling is free                                                 | billed like any chat agent                                          |

Reach for the [Neo Support Agent](/chat-agents/neo-support-agent) for "how does my Neo setup work?" or "find me a similar past ticket." Build your **own** internal agent when you want a purpose-built assistant with your prompt and your tools — see the [five common internal patterns](/chat-agents/building-a-chat-agent#what-technicians-use-internal-chat-agents-for), from a research copilot and on-demand reporting to a [self-serve ticket dispatcher](/recipes/technician-self-serve-dispatch). You don't have to start from scratch: [copy the Neo Support Agent](/chat-agents/neo-support-agent#copy-it-for-a-head-start) into your own editable agent and build from there.

<Note>
  The two **coexist**: a technician can have both the **Neo AI Agent** app and your custom bot in their Teams, side by side. Workflow notifications and [Technician-in-the-Loop](/core/technician-in-the-loop) approval cards always arrive through the **Neo AI Agent** app — never through a custom internal bot.
</Note>

## Deploy your internal bot

<Info>
  **Before you start:** an [Internal chat agent](/chat-agents/building-a-chat-agent) you've tested, an admin sign-in to the dashboard, and the ability to install custom Teams apps in your own Microsoft 365 tenant.
</Info>

<Steps>
  <Step title="Build an Internal chat agent">
    Create a [chat agent](/chat-agents/building-a-chat-agent) and set its **Audience** to **Internal**. An Internal agent carries the MSP toolbox you give it — PSA, RMM, Microsoft 365, documentation, cross-company lookups — unlike an [End-user agent](/chat-agents/how-end-user-bots-work), which is locked to one company. For a head start, [copy the Neo Support Agent](/chat-agents/neo-support-agent#copy-it-for-a-head-start) and customize the copy instead of starting blank. Test it from [**Chat** → **Agents**](https://dashboard.neoagent.io/chat?tab=agents) → **Chat**.
  </Step>

  <Step title="Create an Internal channel">
    Open [**Chat** → **Channels**](https://dashboard.neoagent.io/chat?tab=channels) → **New Channel**. Set **Audience** to **Internal**, pick the **Teams** transport, and assign your internal agent (the agent picker only shows agents whose audience matches). Under **Branding**, set the name, icon, and welcome message your technicians will see — blanks use a Neo default. Leave the status on **Active**.
  </Step>

  <Step title="Install it in your tenant">
    In the saved channel's edit dialog, under **Install in your tenant**, click **Generate install link** and open it yourself as a **Teams or Global administrator** of your tenant. One sign-in publishes the bot into your own Microsoft 365 and switches routing on.

    <Warning>
      That sign-in adds a **Neo Installer** app to your tenant's **Enterprise applications** — this is expected and safe: it only publishes your bot to the catalog and gets no standing access to your data. If a sign-in ever errors, **open the link again — don't delete the Neo Installer app to "start fresh."** Deleting it soft-deletes the underlying service principal and keeps its app ID reserved, so the next sign-in fails with `AADSTS650051: …service principal name is already present`, and the deleted object **isn't shown** on the portal's *Deleted applications* page. If you've already hit this, see [recovering from a failed install](/integrations/teams/end-user-bot#troubleshooting).
    </Warning>

    Prefer a manual upload? **Teams app package** gives you the `.zip` to sideload in your Teams admin center; then use **Already installed it manually? Register directly** to bind routing.
  </Step>

  <Step title="Make it reach your team">
    Publishing puts the app in your org catalog — to give it to everyone, open your [Teams admin center](https://admin.teams.microsoft.com/policies/manage-apps) → **Manage apps**, find your app, then **Users and groups** → **Installs** → **Install app** → **Install to: Everyone** → **Apply**. New technicians then get it automatically.
  </Step>

  <Step title="Verify">
    Open the bot in your own Teams and ask it something. It answers as your MSP with the toolbox you configured — it can work across all your companies, exactly as the same agent does in the dashboard. `/reset` (or `/new`) starts a fresh conversation.
  </Step>
</Steps>

## Who can message it

Who may message an internal bot is set under [**Roles & Access** → **Chat Agent Access**](/product/rbac) (Everyone, Admins only, or Specific people), exactly as for any [internal chat agent](/chat-agents/building-a-chat-agent#who-can-chat-with-the-agent). A technician who isn't permitted gets *"You don't have access to this assistant"* in Teams.

## Why it installs only in your own tenant

An Internal channel can be installed **only** in your own Microsoft 365 tenant. Because it runs with your full, cross-company MSP toolbox, Neo refuses to install it into a client tenant — that would hand a client's employees an agent that can see your whole client base. The dashboard offers an end-client-company picker only for **End-user** channels, and the server enforces the same rule regardless of how the request is made.

To serve a **client's** employees instead, build an [End-user bot](/integrations/teams/end-user-bot): those are scoped to one company by construction and safe to install in a client's tenant.

## Branding updates

Editing the welcome message or the assigned agent takes effect immediately. Changing the display name or icons changes the installed Teams app, so click **Push update** under **Install in your tenant** to re-publish to your tenant (or, for a manual-zip install, re-upload the package in the admin center). This mirrors the [end-user bot's update flow](/integrations/teams/end-user-bot#updating-the-bot-after-rollout).
