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

# Installation

# Installing the TechWolf Analyst Agent in Microsoft 365 Copilot

Installing the Analyst Agent is a **one-time, administrator-gated** action.
Nothing is enabled until an administrator acts: there is no per-user
installation and no end-user self-service. TechWolf provides the agent as an
admin-approved application package; it is not published to the Microsoft
commercial marketplace for individual users to install.

This guide is written for the Microsoft 365 / Teams administrator who performs
the install. It corresponds to the recorded administrator walkthrough below.

<Note>
  A recorded walkthrough of the full installation is available from your
  TechWolf contact.
</Note>

# Required roles

The installation needs two distinct administrator permissions. They are often,
but not always, held by the same person:

* **Teams Administrator** (or an equivalent role with **Manage apps**
  permission): uploads the app package and controls which users or groups the
  agent is available to.
* **Global Administrator**: grants tenant-wide admin consent from the Teams
  admin center. Only this role can; a Teams Administrator sees the required
  permissions there but gets *"Contact a Global Administrator to request
  consent"* instead of a way to grant them. A **Privileged Role Administrator**
  or **Cloud Application Administrator** can grant the same consent, but has to
  do it from Microsoft Entra rather than the Teams admin center (see the **Grant
  admin consent** step).

  <Frame caption="The Permissions tab for an administrator who cannot grant consent.">
    <img src="https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?fit=max&auto=format&n=NMn6OtzVhaa3G6Nl&q=85&s=b943d18ee05610894be64517f7d4d62f" alt="The Permissions tab showing 'Contact a Global Administrator to request consent' and no grant control" width="993" height="607" data-path="integrations/analyst-agent/copilot/images/install-consent-required.png" />
  </Frame>
* **Customer contact with TechWolf**: a designated representative who shares the
  tenant identifier with TechWolf and coordinates the onboarding.

No service principal, standing credential, or per-user secret is provisioned for
this integration.

# What the administrator consents to

The integration requests consent for a **single capability**: verifying the
signed-in user's Microsoft Entra identity, so each message can be tied to a
known user. It needs no access to Microsoft Graph user data, and reads no
directory, mailbox, or file content.

The only identity data that crosses the boundary to TechWolf is the user's
**email address** and **Entra tenant identifier**.

<Note>
  The install grants a **delivery surface, not new data access**. A user who
  reaches the agent through Copilot still sees only the data their existing
  TechWolf scope permits. See [How It Works](./how-it-works) for the identity
  and access model.
</Note>

# Installation steps

The installation consists of the following steps. TechWolf first binds your
tenant to the correct region, you grant your users access to the agent in the
TechWolf Console, your administrator uploads the app package in the Teams admin
center, an administrator grants consent once for the whole tenant, and only
then do you decide who gets the agent.

<Steps>
  <Step title="Share your Entra tenant ID with TechWolf">
    Provide your **Microsoft Entra tenant identifier** to TechWolf. TechWolf
    registers it against the correct regional backend, which pins every
    Copilot turn from your tenant to that region. This is configured once,
    at onboarding. Follow [Find your Microsoft Entra tenant
    ID](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant)
    if you need to locate it.

    <Warning>
      A tenant that has not been onboarded is rejected, never defaulted to
      another tenant. Until this step is complete, users in your tenant
      cannot reach the agent.
    </Warning>
  </Step>

  <Step title="Give users access to the agent in the TechWolf Console">
    A user can only reach the agent if they have been granted access to it in
    the TechWolf Console. Do this for every intended user before they use the
    agent from Copilot; a user without the agent role sees a no-access
    message.

    In the TechWolf Console, go to **User Management**. Use **Add users** to
    add a new user, or **Edit users** to update an existing one.

    <Frame caption="Add a user in User Management.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=f14ea3af1562a76b11f7a2dc043bf953" alt="Adding a user in the TechWolf Console" width="2000" height="1096" data-path="integrations/analyst-agent/copilot/images/console-add-user.png" />
    </Frame>

    Assign the user their roles. The **Data Foundation** roles determine
    which data the user, and so the agent on their behalf, is allowed to see.

    <Frame caption="Assign the user's data roles.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=c9a9bb9c65b23f25e11d225e0f4033c6" alt="Data Foundation roles" width="834" height="878" data-path="integrations/analyst-agent/copilot/images/console-roles-data-foundation.png" />
    </Frame>

    Under **TechWolf Agent**, set **Roles** to **Viewer** to grant access to
    the agent, then select **Add**.

    <Frame caption="Grant the TechWolf Agent role, then add the user.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=b832bfa650b637990f4efdc8a8937b5a" alt="TechWolf Agent role set to Viewer" width="1344" height="272" data-path="integrations/analyst-agent/copilot/images/console-agent-role.png" />
    </Frame>
  </Step>

  <Step title="Upload the app package">
    In the [Teams admin center](https://admin.teams.microsoft.com/), go to
    **Teams apps** -> **Manage apps**. Open the **Actions** menu in the top
    right and choose **Upload new app**, then **Upload a custom app**.

    Select the app package (`.zip`) you received from TechWolf.

    <Frame caption="Select the app package you received from TechWolf.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=e85064a75fde6c96a984031fc1bbe5a8" alt="Selecting the app package" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-select-package.jpg" />
    </Frame>

    The upload takes a moment and shows no progress indicator; give it ten
    seconds or so.

    <Frame caption="Uploading the custom app package.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=0a92915a9deeefd705a445a6a56e1fec" alt="Uploading the custom app" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg" />
    </Frame>

    <Note>
      You may see an error even though the upload succeeded. Refresh the
      page to check before retrying: the app usually appears in the list
      after a refresh.
    </Note>
  </Step>

  <Step title="Confirm the upload">
    After refreshing, search for **TechWolf Analyst Agent** by name in
    **Manage apps** to confirm the upload went through.

    <Frame caption="Search for the app by name to confirm the upload.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=b0d2b06d1f5bcb7999010ed9053294fb" alt="Confirming the app is in the list" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg" />
    </Frame>

    Open the app and check the **About** tab. It shows the publisher
    (TechWolf) and the uploaded version, so you can confirm you have the
    package TechWolf provided.

    <Frame caption="The About tab shows the publisher and the uploaded version.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=5fa87410260a193a022125b2ff8052a8" alt="The app's About tab" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-about-tab.jpg" />
    </Frame>
  </Step>

  <Step title="Grant admin consent">
    The agent verifies each user's Entra identity, and that verification
    needs tenant-wide admin consent. It is a separate action from the upload
    above and needs one of the Entra roles listed at the top of this page,
    so it may well be a different person.

    A **Global Administrator** does this on the app you just uploaded, in
    the same Teams admin center. Open **Teams apps** → **Manage apps**,
    search for the agent by name, open it, and go to its **Permissions**
    tab. Review the permissions in the dialog that opens, then select
    **Accept**.

    The tab lists exactly what is being granted: three delegated Entra ID
    permissions, `openid` (sign users in), `email` (view users' email
    address) and `profile` (view users' basic profile). That is enough to
    confirm who the signed-in user is, and nothing more. See [What the
    administrator consents to](#what-the-administrator-consents-to) above.

    <Frame caption="The Permissions tab once consent has been granted.">
      <img src="https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?fit=max&auto=format&n=NMn6OtzVhaa3G6Nl&q=85&s=0df1eec3f56c78a887e91a7246114bab" alt="The app's Permissions tab showing admin consent granted for openid, email and profile" width="1200" height="1189" data-path="integrations/analyst-agent/copilot/images/install-grant-consent.png" />
    </Frame>

    When it is done, the tab shows **Admin consent granted for all required
    permissions**, which is also how you check it later. Consent covers the
    whole tenant, so it is granted once and applies to every user, never per
    person, and revoking it stops the agent for everyone.

    <Note>
      **If the person granting consent is not a Global Administrator**, a
      Privileged Role Administrator or Cloud Application Administrator can
      grant the same consent from Microsoft Entra instead. Open the
      consent URL below, signed in as that administrator, and accept:

      ```
      https://login.microsoftonline.com/<your-tenant-id>/adminconsent?client_id=67e0fd02-01f0-4752-8776-7a3feb0428ec
      ```

      Substitute the tenant ID you shared in step 1. Putting it in the URL
      rather than using `organizations` is deliberate: it pins the grant to
      the tenant you are setting up, instead of whichever tenant the
      signed-in account happens to belong to.

      Two things to expect. The browser lands on a
      `token.botframework.com` page reporting a missing `code` parameter;
      that is the redirect target being an API rather than a web page, and
      the grant has already been recorded by then. Check for
      `admin_consent=True` and your own tenant ID in the address bar to
      confirm. Afterwards the application appears under **Enterprise
      applications**, where the grant can be reviewed or revoked.

      The **Enterprise applications** pane cannot be used to grant it the
      first time: an application only appears there once it is provisioned
      in your tenant, which this consent is what does.
    </Note>

    <Warning>
      Grant this **before** assigning users in the next step. Your users
      cannot grant it themselves, so anyone who reaches the agent first
      gets *"you need to agree to additional permissions"* followed by
      *"Something went wrong. Please try again."*, and that prompt never
      completes no matter how often it is retried.
    </Warning>
  </Step>

  <Step title="Choose who gets access">
    Decide which users or groups get the agent, using the tenant's standard
    app-assignment controls, the same mechanism as any other Teams
    application. The integration grants no access on its own.

    The same **Users and groups** controls govern two things: the agent's
    **availability** (which users or groups can find and add it themselves)
    and its **installation** (installing it for them directly). You can make
    the agent available for users to add on their own, install it for
    specific users or groups, or both.

    The steps below install it directly. On the app page, open **Users and
    groups** and choose **Install app**.

    <Frame caption="Open Install app to choose who gets access.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=f9ab62dc13195c0c8fab3d4d592d5a73" alt="Choosing who gets access" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-choose-access.jpg" />
    </Frame>

    Set **Install** to **Specific users or groups**, then add the people or
    groups that should have the agent by name.

    <Frame caption="Add the specific users or groups that should have the agent.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=104847bf3be6822272301a7dd55bf0f6" alt="Adding users and groups" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-add-users-groups.jpg" />
    </Frame>

    Apply the change. The agent is now installed for the selected users, and
    only the users you add here get it: access stays under your control.

    <Frame caption="The agent is now installed for the selected users.">
      <img src="https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?fit=max&auto=format&n=tsN6h2ZCZ5XiSEJ7&q=85&s=658be6b5c56d30fd47a70d456ac3965b" alt="Installation confirmed" width="1920" height="1080" data-path="integrations/analyst-agent/copilot/images/install-confirmation.jpg" />
    </Frame>

    <Note>
      Once assigned, users find the agent in Microsoft 365 Copilot under
      **Agents**. See [How It Looks](./how-it-looks) for the end-user
      experience.
    </Note>
  </Step>
</Steps>

If anything in this documentation does not match your experience or needs
clarification, contact us at [support@techwolf.ai](mailto:support@techwolf.ai).


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