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.
A recorded walkthrough of the full installation is available from your
TechWolf contact.
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).
The Permissions tab for an administrator who cannot grant consent.
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.
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.
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 for the identity
and access model.
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.
1
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
if you need to locate it.
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.
2
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.
Add a user in User Management.
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.
Assign the user's data roles.
Under TechWolf Agent, set Roles to Viewer to grant access to
the agent, then select Add.
Grant the TechWolf Agent role, then add the user.
3
Upload the app package
In the Teams admin center, 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.
Select the app package you received from TechWolf.
The upload takes a moment and shows no progress indicator; give it ten
seconds or so.
Uploading the custom app package.
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.
4
Confirm the upload
After refreshing, search for TechWolf Analyst Agent by name in
Manage apps to confirm the upload went through.
Search for the app by name to confirm the upload.
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.
The About tab shows the publisher and the uploaded version.
5
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 above.
The Permissions tab once consent has been granted.
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.
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:
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.
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.
6
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.
Open Install app to choose who gets access.
Set Install to Specific users or groups, then add the people or
groups that should have the agent by name.
Add the specific users or groups that should have the agent.
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.
The agent is now installed for the selected users.
Once assigned, users find the agent in Microsoft 365 Copilot under
Agents. See How It Looks for the end-user
experience.
If anything in this documentation does not match your experience or needs
clarification, contact us at support@techwolf.ai.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TechWolf Developer Portal","colors":{"primary":"#000000","light":"#F5F5F5","dark":"#8997F9"},"logo":{"light":"https://mintcdn.com/techwolf/0_twKXAYhPjxNw-G/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=0_twKXAYhPjxNw-G\u0026q=85\u0026s=cf37edb6f69a1663ed15c7112643daf9","dark":"https://mintcdn.com/techwolf/0_twKXAYhPjxNw-G/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=0_twKXAYhPjxNw-G\u0026q=85\u0026s=3e2f5e60e21a12eabd092fde29a29434"},"favicon":"https://mintcdn.com/techwolf/O6Ad9BPC00x-v0KV/favicon.svg?fit=max\u0026auto=format\u0026n=O6Ad9BPC00x-v0KV\u0026q=85\u0026s=dc5fac3e8ad4b016d838af70c4f21dc5","api":{"playground":{"display":"none"}},"navbar":{"links":[{"href":"mailto:support@techwolf.ai","label":"Support"}],"primary":{"type":"button","label":"Request a demo","href":"https://techwolf.com/callform"}},"footer":{"socials":{"facebook":"https://www.facebook.com/techwolf.eu","x":"https://x.com/techwolfbe","instagram":"https://www.instagram.com/techwolf.ai?hl=en","linkedin":"https://linkedin.com/company/techwolf"}},"banner":{"content":"TechWolf is building a new documentation platform at [docs.techwolf.ai](https://docs.techwolf.ai).","dismissible":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"techwolf","hasAudioNarration":false,"actualSubdomain":"techwolf","customDomains":["developers.techwolf.ai"],"gitSource":{"type":"gitlab","owner":"techwolfbe/skillengine-api","repo":"skillengine-api-openapi-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"projectId":19681689,"mountPath":"","label":"","_id":"6ae8a1fc0047c384a1924257"},"chroma":{"liveDeploymentHistoryId":"6ae35bf053dfbd884fd30bc5","collectionId":"e56611cc-460d-4561-9949-335e375ae843","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae35bf053dfbd884fd30bc5"},"feedback":{"edits":true,"thumbs":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8a1fc0047c384a192425c","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":253},{"language":"default","tag":"Integrations","count":106},{"language":"default","tag":"Tutorials","count":54},{"language":"default","tag":"CRUD","count":47},{"language":"default","tag":"Employees","count":39},{"language":"default","tag":"Jobs","count":39},{"language":"default","tag":"Entity Sync","count":36},{"language":"default","tag":"Taxonomy","count":35},{"language":"default","tag":"Matchmaking","count":33},{"language":"default","tag":"Export","count":27}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".max-w-8xl{max-width:100vw}th{text-align:left}"}],"page":{"pagePath":"integrations/analyst-agent/copilot/installation","slug":"/integrations/analyst-agent/copilot/installation","pageMetadata":{"title":"Installation","description":null,"href":"/integrations/analyst-agent/copilot/installation"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`installing-the-techwolf-analyst-agent-in-microsoft-365-copilot`,children:`Installing the TechWolf Analyst Agent in Microsoft 365 Copilot`}),`\n`,_jsxs(_components.p,{children:[`Installing the Analyst Agent is a `,_jsx(_components.strong,{children:`one-time, administrator-gated`}),` action.\nNothing is enabled until an administrator acts: there is no per-user\ninstallation and no end-user self-service. TechWolf provides the agent as an\nadmin-approved application package; it is not published to the Microsoft\ncommercial marketplace for individual users to install.`]}),`\n`,_jsx(_components.p,{children:`This guide is written for the Microsoft 365 / Teams administrator who performs\nthe install. It corresponds to the recorded administrator walkthrough below.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`A recorded walkthrough of the full installation is available from your\nTechWolf contact.`})}),`\n`,_jsx(Heading,{level:`1`,id:`required-roles`,children:`Required roles`}),`\n`,_jsx(_components.p,{children:`The installation needs two distinct administrator permissions. They are often,\nbut not always, held by the same person:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Teams Administrator`}),` (or an equivalent role with `,_jsx(_components.strong,{children:`Manage apps`}),`\npermission): uploads the app package and controls which users or groups the\nagent is available to.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Global Administrator`}),`: grants tenant-wide admin consent from the Teams\nadmin center. Only this role can; a Teams Administrator sees the required\npermissions there but gets `,_jsx(_components.em,{children:`“Contact a Global Administrator to request\nconsent”`}),` instead of a way to grant them. A `,_jsx(_components.strong,{children:`Privileged Role Administrator`}),`\nor `,_jsx(_components.strong,{children:`Cloud Application Administrator`}),` can grant the same consent, but has to\ndo it from Microsoft Entra rather than the Teams admin center (see the `,_jsx(_components.strong,{children:`Grant\nadmin consent`}),` step).`]}),`\n`,_jsx(Frame,{caption:`The Permissions tab for an administrator who cannot grant consent.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=b943d18ee05610894be64517f7d4d62f`,alt:`The Permissions tab showing 'Contact a Global Administrator to request consent' and no grant control`,\"data-og-width\":`993`,width:`993`,\"data-og-height\":`607`,height:`607`,\"data-path\":`integrations/analyst-agent/copilot/images/install-consent-required.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=280\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=eabe1b9393680950d1bdefa21bf53908 280w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=560\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=e8c60ec3c6eb34deb22eef1c55d424e5 560w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=840\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=6e95fe296fe2229f0a1f68060ce677e6 840w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=1100\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=49693c2b818c17f5f21fba7b20e12dc7 1100w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=1650\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=12d5893a1d95b093e9cb2d92e157f983 1650w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-consent-required.png?w=2500\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=2dffa5908b035e19b004cb04ac520c0e 2500w`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Customer contact with TechWolf`}),`: a designated representative who shares the\ntenant identifier with TechWolf and coordinates the onboarding.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`No service principal, standing credential, or per-user secret is provisioned for\nthis integration.`}),`\n`,_jsx(Heading,{level:`1`,id:`what-the-administrator-consents-to`,children:`What the administrator consents to`}),`\n`,_jsxs(_components.p,{children:[`The integration requests consent for a `,_jsx(_components.strong,{children:`single capability`}),`: verifying the\nsigned-in user’s Microsoft Entra identity, so each message can be tied to a\nknown user. It needs no access to Microsoft Graph user data, and reads no\ndirectory, mailbox, or file content.`]}),`\n`,_jsxs(_components.p,{children:[`The only identity data that crosses the boundary to TechWolf is the user’s\n`,_jsx(_components.strong,{children:`email address`}),` and `,_jsx(_components.strong,{children:`Entra tenant identifier`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The install grants a `,_jsx(_components.strong,{children:`delivery surface, not new data access`}),`. A user who\nreaches the agent through Copilot still sees only the data their existing\nTechWolf scope permits. See `,_jsx(_components.a,{href:`/integrations/analyst-agent/copilot/how-it-works`,children:`How It Works`}),` for the identity\nand access model.`]})}),`\n`,_jsx(Heading,{level:`1`,id:`installation-steps`,children:`Installation steps`}),`\n`,_jsx(_components.p,{children:`The installation consists of the following steps. TechWolf first binds your\ntenant to the correct region, you grant your users access to the agent in the\nTechWolf Console, your administrator uploads the app package in the Teams admin\ncenter, an administrator grants consent once for the whole tenant, and only\nthen do you decide who gets the agent.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Share your Entra tenant ID with TechWolf`,children:[_jsxs(_components.p,{children:[`Provide your `,_jsx(_components.strong,{children:`Microsoft Entra tenant identifier`}),` to TechWolf. TechWolf\nregisters it against the correct regional backend, which pins every\nCopilot turn from your tenant to that region. This is configured once,\nat onboarding. Follow `,_jsx(_components.a,{href:`https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant`,children:`Find your Microsoft Entra tenant\nID`}),`\nif you need to locate it.`]}),_jsx(Warning,{children:_jsx(_components.p,{children:`A tenant that has not been onboarded is rejected, never defaulted to\nanother tenant. Until this step is complete, users in your tenant\ncannot reach the agent.`})})]}),_jsxs(Step,{title:`Give users access to the agent in the TechWolf Console`,children:[_jsx(_components.p,{children:`A user can only reach the agent if they have been granted access to it in\nthe TechWolf Console. Do this for every intended user before they use the\nagent from Copilot; a user without the agent role sees a no-access\nmessage.`}),_jsxs(_components.p,{children:[`In the TechWolf Console, go to `,_jsx(_components.strong,{children:`User Management`}),`. Use `,_jsx(_components.strong,{children:`Add users`}),` to\nadd a new user, or `,_jsx(_components.strong,{children:`Edit users`}),` to update an existing one.`]}),_jsx(Frame,{caption:`Add a user in User Management.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f14ea3af1562a76b11f7a2dc043bf953`,alt:`Adding a user in the TechWolf Console`,\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1096`,height:`1096`,\"data-path\":`integrations/analyst-agent/copilot/images/console-add-user.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=75766ee5cf9bb07bff9f2eefcf3d7fa4 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=2e5ae600020fdda0ef2752cdf4aae3c8 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=c50217af18127b2c58982daf9e058d36 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=edf03e5f6acf069516451447bb2b9b13 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=a3969d686a9923413e114cb424a6bebc 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-add-user.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f2775f0b25a5be772981d0ca272e6ece 2500w`})}),_jsxs(_components.p,{children:[`Assign the user their roles. The `,_jsx(_components.strong,{children:`Data Foundation`}),` roles determine\nwhich data the user, and so the agent on their behalf, is allowed to see.`]}),_jsx(Frame,{caption:`Assign the user's data roles.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=c9a9bb9c65b23f25e11d225e0f4033c6`,alt:`Data Foundation roles`,\"data-og-width\":`834`,width:`834`,\"data-og-height\":`878`,height:`878`,\"data-path\":`integrations/analyst-agent/copilot/images/console-roles-data-foundation.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f915a653f463396d11394a0664b7f890 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=b00b9d598bc26429b2ea47cdc6105f31 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=3cf673dc0a30590f69bb718ce8fcc23a 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=c7ba076e4f2730313f75404dc2fd51d9 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=475d5bf4fbc2ea2aa4880999cdcfbac7 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-roles-data-foundation.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=d9669a7320940de4b10639bd21efbf2c 2500w`})}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`TechWolf Agent`}),`, set `,_jsx(_components.strong,{children:`Roles`}),` to `,_jsx(_components.strong,{children:`Viewer`}),` to grant access to\nthe agent, then select `,_jsx(_components.strong,{children:`Add`}),`.`]}),_jsx(Frame,{caption:`Grant the TechWolf Agent role, then add the user.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=b832bfa650b637990f4efdc8a8937b5a`,alt:`TechWolf Agent role set to Viewer`,\"data-og-width\":`1344`,width:`1344`,\"data-og-height\":`272`,height:`272`,\"data-path\":`integrations/analyst-agent/copilot/images/console-agent-role.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f5a3696c193174a3725e37eb605b1ede 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=92421cce332d93ef8dda3f6399ec9bf6 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=343930967bb09595b73e4eafd0e21c49 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=a42ab5aa177076e861066c3d9fdfd09d 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=653b5599a99f54126abbd6c51e7d5365 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/console-agent-role.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f6db0a045dd4e3c4bf0e1a7bc70f1a24 2500w`})})]}),_jsxs(Step,{title:`Upload the app package`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://admin.teams.microsoft.com/`,children:`Teams admin center`}),`, go to\n`,_jsx(_components.strong,{children:`Teams apps`}),` -> `,_jsx(_components.strong,{children:`Manage apps`}),`. Open the `,_jsx(_components.strong,{children:`Actions`}),` menu in the top\nright and choose `,_jsx(_components.strong,{children:`Upload new app`}),`, then `,_jsx(_components.strong,{children:`Upload a custom app`}),`.`]}),_jsxs(_components.p,{children:[`Select the app package (`,_jsx(_components.code,{children:`.zip`}),`) you received from TechWolf.`]}),_jsx(Frame,{caption:`Select the app package you received from TechWolf.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=e85064a75fde6c96a984031fc1bbe5a8`,alt:`Selecting the app package`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-select-package.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=fbe06f73b66592f4af934cb1ec524332 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=328c9797aea5491547da6051af172fd8 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=1313278a4e1adbee7b5caab1816aabd5 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=0e50e050e7d067d115880787b0f48ca0 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=458942bd52ee34c43e5bf20d151f5391 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-select-package.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=b119d1e760146119a1c7f7f1fce5c131 2500w`})}),_jsx(_components.p,{children:`The upload takes a moment and shows no progress indicator; give it ten\nseconds or so.`}),_jsx(Frame,{caption:`Uploading the custom app package.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=0a92915a9deeefd705a445a6a56e1fec`,alt:`Uploading the custom app`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=ea56fd2fb909a039d8d7519369e2c016 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=e82c63a9d434b0313cbfe21c484e56ed 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=39d8eba3d46148ba9df0266bb9ecccdd 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=1f225d4f7f4aa7a7629f2ea13ab62921 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=20f6b3dec2396d3d54267a23daec2025 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-upload-custom-app.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=71481cd233adb231fa68da33c4b9a10a 2500w`})}),_jsx(Note,{children:_jsx(_components.p,{children:`You may see an error even though the upload succeeded. Refresh the\npage to check before retrying: the app usually appears in the list\nafter a refresh.`})})]}),_jsxs(Step,{title:`Confirm the upload`,children:[_jsxs(_components.p,{children:[`After refreshing, search for `,_jsx(_components.strong,{children:`TechWolf Analyst Agent`}),` by name in\n`,_jsx(_components.strong,{children:`Manage apps`}),` to confirm the upload went through.`]}),_jsx(Frame,{caption:`Search for the app by name to confirm the upload.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=b0d2b06d1f5bcb7999010ed9053294fb`,alt:`Confirming the app is in the list`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=83cfdd17b267fb6b798bffbee6e82648 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=a0a3b6ffeee98c685060d23119a6949a 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=93ba42e8375c6a05c6a216bb7f9477f6 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=1e475abbb68559ee95a5b5681e3a2e1b 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=775cd117b7543f1a9428e8cdbc3cc6a0 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirm-in-list.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=49c980decfb01486d0a65c10e82de9bc 2500w`})}),_jsxs(_components.p,{children:[`Open the app and check the `,_jsx(_components.strong,{children:`About`}),` tab. It shows the publisher\n(TechWolf) and the uploaded version, so you can confirm you have the\npackage TechWolf provided.`]}),_jsx(Frame,{caption:`The About tab shows the publisher and the uploaded version.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=5fa87410260a193a022125b2ff8052a8`,alt:`The app's About tab`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-about-tab.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=585e5001c7f62ce498d3a354c5eaa7a6 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=8bf25f10e744646b3705bda2fb1310b6 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=bdf7cedca114f36ea17f5fa2ac5cb8dd 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=cfc320db04d783e575cae53c53ea743a 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=dbd351a1c1395cfbc746756b6aa4673a 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-about-tab.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=11b2fe387a0e6d3cbcff7933f397f206 2500w`})})]}),_jsxs(Step,{title:`Grant admin consent`,children:[_jsx(_components.p,{children:`The agent verifies each user’s Entra identity, and that verification\nneeds tenant-wide admin consent. It is a separate action from the upload\nabove and needs one of the Entra roles listed at the top of this page,\nso it may well be a different person.`}),_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`Global Administrator`}),` does this on the app you just uploaded, in\nthe same Teams admin center. Open `,_jsx(_components.strong,{children:`Teams apps`}),` → `,_jsx(_components.strong,{children:`Manage apps`}),`,\nsearch for the agent by name, open it, and go to its `,_jsx(_components.strong,{children:`Permissions`}),`\ntab. Review the permissions in the dialog that opens, then select\n`,_jsx(_components.strong,{children:`Accept`}),`.`]}),_jsxs(_components.p,{children:[`The tab lists exactly what is being granted: three delegated Entra ID\npermissions, `,_jsx(_components.code,{children:`openid`}),` (sign users in), `,_jsx(_components.code,{children:`email`}),` (view users’ email\naddress) and `,_jsx(_components.code,{children:`profile`}),` (view users’ basic profile). That is enough to\nconfirm who the signed-in user is, and nothing more. See `,_jsx(_components.a,{href:`#what-the-administrator-consents-to`,children:`What the\nadministrator consents to`}),` above.`]}),_jsx(Frame,{caption:`The Permissions tab once consent has been granted.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=0df1eec3f56c78a887e91a7246114bab`,alt:`The app's Permissions tab showing admin consent granted for openid, email and profile`,\"data-og-width\":`1200`,width:`1200`,\"data-og-height\":`1189`,height:`1189`,\"data-path\":`integrations/analyst-agent/copilot/images/install-grant-consent.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=280\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=0c49ecd538cd3b42cb9584a5c7e93b77 280w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=560\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=7996d4734b62dcc902b5790f68d20d18 560w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=840\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=ce4c510abe378c93a33c42319d96f1bc 840w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=1100\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=f6f5674f6a2ddf6f8e8d4956ab4f0162 1100w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=1650\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=62cb38dc452eed66a925df14ed7c8117 1650w, https://mintcdn.com/techwolf/NMn6OtzVhaa3G6Nl/integrations/analyst-agent/copilot/images/install-grant-consent.png?w=2500\u0026fit=max\u0026auto=format\u0026n=NMn6OtzVhaa3G6Nl\u0026q=85\u0026s=8042df7e9afa435f9d77cbae5dcdf51f 2500w`})}),_jsxs(_components.p,{children:[`When it is done, the tab shows `,_jsx(_components.strong,{children:`Admin consent granted for all required\npermissions`}),`, which is also how you check it later. Consent covers the\nwhole tenant, so it is granted once and applies to every user, never per\nperson, and revoking it stops the agent for everyone.`]}),_jsxs(Note,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`If the person granting consent is not a Global Administrator`}),`, a\nPrivileged Role Administrator or Cloud Application Administrator can\ngrant the same consent from Microsoft Entra instead. Open the\nconsent URL below, signed in as that administrator, and accept:`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://login.microsoftonline.com/\u003cyour-tenant-id>/adminconsent?client_id=67e0fd02-01f0-4752-8776-7a3feb0428ec`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`Substitute the tenant ID you shared in step 1. Putting it in the URL\nrather than using `,_jsx(_components.code,{children:`organizations`}),` is deliberate: it pins the grant to\nthe tenant you are setting up, instead of whichever tenant the\nsigned-in account happens to belong to.`]}),_jsxs(_components.p,{children:[`Two things to expect. The browser lands on a\n`,_jsx(_components.code,{children:`token.botframework.com`}),` page reporting a missing `,_jsx(_components.code,{children:`code`}),` parameter;\nthat is the redirect target being an API rather than a web page, and\nthe grant has already been recorded by then. Check for\n`,_jsx(_components.code,{children:`admin_consent=True`}),` and your own tenant ID in the address bar to\nconfirm. Afterwards the application appears under `,_jsx(_components.strong,{children:`Enterprise\napplications`}),`, where the grant can be reviewed or revoked.`]}),_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Enterprise applications`}),` pane cannot be used to grant it the\nfirst time: an application only appears there once it is provisioned\nin your tenant, which this consent is what does.`]})]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Grant this `,_jsx(_components.strong,{children:`before`}),` assigning users in the next step. Your users\ncannot grant it themselves, so anyone who reaches the agent first\ngets `,_jsx(_components.em,{children:`“you need to agree to additional permissions”`}),` followed by\n`,_jsx(_components.em,{children:`“Something went wrong. Please try again.”`}),`, and that prompt never\ncompletes no matter how often it is retried.`]})})]}),_jsxs(Step,{title:`Choose who gets access`,children:[_jsx(_components.p,{children:`Decide which users or groups get the agent, using the tenant’s standard\napp-assignment controls, the same mechanism as any other Teams\napplication. The integration grants no access on its own.`}),_jsxs(_components.p,{children:[`The same `,_jsx(_components.strong,{children:`Users and groups`}),` controls govern two things: the agent’s\n`,_jsx(_components.strong,{children:`availability`}),` (which users or groups can find and add it themselves)\nand its `,_jsx(_components.strong,{children:`installation`}),` (installing it for them directly). You can make\nthe agent available for users to add on their own, install it for\nspecific users or groups, or both.`]}),_jsxs(_components.p,{children:[`The steps below install it directly. On the app page, open `,_jsx(_components.strong,{children:`Users and\ngroups`}),` and choose `,_jsx(_components.strong,{children:`Install app`}),`.`]}),_jsx(Frame,{caption:`Open Install app to choose who gets access.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=f9ab62dc13195c0c8fab3d4d592d5a73`,alt:`Choosing who gets access`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-choose-access.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=a74c0ada9806d843fb620f5dd3f639f6 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=dea02be76bc478c7072f5dabf8d79e5f 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=9903943a2146b49f83dae91c6b471bb1 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=3a8aca9b465af96b37c9048166f153d2 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=8ed095784c612ef654c8645ddfb42dac 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-choose-access.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=49476c26c8e2015029956174efe860e8 2500w`})}),_jsxs(_components.p,{children:[`Set `,_jsx(_components.strong,{children:`Install`}),` to `,_jsx(_components.strong,{children:`Specific users or groups`}),`, then add the people or\ngroups that should have the agent by name.`]}),_jsx(Frame,{caption:`Add the specific users or groups that should have the agent.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=104847bf3be6822272301a7dd55bf0f6`,alt:`Adding users and groups`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-add-users-groups.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=7a272d322076ba8d0977c408738a835f 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=798d27adcb139f0fa2670db9571b5ebd 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=cce66d7e4e534ea279b0131fd89b4f7b 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=c7a7885e0de94d2100182e921bab6d37 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=fddfe1712a5c20322906c3ea92232dc4 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-add-users-groups.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=29b99eee202b77a21eed368d628e7e24 2500w`})}),_jsx(_components.p,{children:`Apply the change. The agent is now installed for the selected users, and\nonly the users you add here get it: access stays under your control.`}),_jsx(Frame,{caption:`The agent is now installed for the selected users.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=658be6b5c56d30fd47a70d456ac3965b`,alt:`Installation confirmed`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`integrations/analyst-agent/copilot/images/install-confirmation.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=545f130549e495044db2e12b26e5fbca 280w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=c6c6814390a502b6e089cf68fb732921 560w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=43e0efedacc016a9133a262c0315d00e 840w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=2b2b6dcd9463602ecbf9c8d98b6477f1 1100w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=3062a365f261117de2e050464905add6 1650w, https://mintcdn.com/techwolf/tsN6h2ZCZ5XiSEJ7/integrations/analyst-agent/copilot/images/install-confirmation.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=tsN6h2ZCZ5XiSEJ7\u0026q=85\u0026s=0474bbcf7236aac57da591af60d71d66 2500w`})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Once assigned, users find the agent in Microsoft 365 Copilot under\n`,_jsx(_components.strong,{children:`Agents`}),`. See `,_jsx(_components.a,{href:`/integrations/analyst-agent/copilot/how-it-looks`,children:`How It Looks`}),` for the end-user\nexperience.`]})})]})]}),`\n`,_jsxs(_components.p,{children:[`If anything in this documentation does not match your experience or needs\nclarification, contact us at `,_jsx(_components.a,{href:`mailto:support@techwolf.ai`,children:`support@techwolf.ai`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Installation","description":null,"href":"/integrations/analyst-agent/copilot/installation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Installing the TechWolf Analyst Agent in Microsoft 365 Copilot","slug":"installing-the-techwolf-analyst-agent-in-microsoft-365-copilot","depth":1,"children":[]},{"title":"Required roles","slug":"required-roles","depth":1,"children":[]},{"title":"What the administrator consents to","slug":"what-the-administrator-consents-to","depth":1,"children":[]},{"title":"Installation steps","slug":"installation-steps","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/techwolf/17802b7b2cc53972/snippets/open-source-fetch.js"],"subdomain":"techwolf","siteName":"TechWolf Developer Portal","title":"Installation - TechWolf Developer Portal","navMaps":{"firstHrefInVersion":{"latest":{"href":"/integrations/analyst-agent/copilot/installation","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T14:46:47.377Z","originalFileLocation":"integrations/analyst-agent/copilot/installation.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"TechWolf Developer Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Installation - TechWolf Developer Portal\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TechWolf Developer Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://techwolf.mintlify.app/_mintlify/api/og/v2?division=M365+Copilot\u0026amp;title=Installation\u0026amp;theme=85ae84f5920bc5282ea03928\u0026amp;signature=98d84aec3c0d187b2f41f98a943cefbae5acfe74c0c3bf51f483bc25e5941aba\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Installation - TechWolf Developer Portal\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://techwolf.mintlify.app/_mintlify/api/og/v2?division=M365+Copilot\u0026amp;title=Installation\u0026amp;theme=85ae84f5920bc5282ea03928\u0026amp;signature=98d84aec3c0d187b2f41f98a943cefbae5acfe74c0c3bf51f483bc25e5941aba\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/techwolf/Lf66MexGoHiNX4jC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TechWolf Developer Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/analyst-agent/copilot/installation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.techwolf.ai/#organization\",\"name\":\"TechWolf Developer Portal\",\"url\":\"https://developers.techwolf.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/techwolf/0_twKXAYhPjxNw-G/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=0_twKXAYhPjxNw-G\u0026q=85\u0026s=cf37edb6f69a1663ed15c7112643daf9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.techwolf.ai#website\",\"name\":\"TechWolf Developer Portal\",\"url\":\"https://developers.techwolf.ai\",\"publisher\":{\"@id\":\"https://developers.techwolf.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation#webpage\",\"url\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation\",\"name\":\"Installation\",\"dateModified\":\"2026-11-02T14:46:47.377Z\",\"isPartOf\":{\"@id\":\"https://developers.techwolf.ai#website\"},\"breadcrumb\":{\"@id\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"TechWolf Analyst Agent\",\"item\":\"https://developers.techwolf.ai/integrations/analyst-agent/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installation\",\"item\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation#article\",\"headline\":\"Installation\",\"name\":\"Installation\",\"url\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation\",\"mainEntityOfPage\":{\"@id\":\"https://developers.techwolf.ai/integrations/analyst-agent/copilot/installation#webpage\"},\"dateModified\":\"2026-11-02T14:46:47.377Z\",\"publisher\":{\"@id\":\"https://developers.techwolf.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.techwolf.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TechWolf Developer Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TechWolf Developer Portal","nav":{"global":null,"versions":[{"version":"latest","default":true,"tabs":[{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/latest/API Documentation/Introduction/Introduction"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/tutorials"}]},{"tab":"Technology","pages":[{"title":"Technology","href":"/technology"}]},{"tab":"Integrations","groups":[{"group":"Integrations","pages":[{"title":"Integrations Overview","href":"/integrations/overview"}]},{"group":"Datasource Integrations","pages":[{"title":"Key concepts","href":"/integrations/datasource-integrations/datasources-key-concepts"},{"group":"File-based input integrations","pages":[{"group":"SAP SuccessFactors","pages":[{"title":"Overview","href":"/integrations/datasource-integrations/sap-standard-input-integration/overview"},{"title":"Installation - Employees","href":"/integrations/datasource-integrations/sap-standard-input-integration/installation-employees"},{"title":"Installation - Jobs","href":"/integrations/datasource-integrations/sap-standard-input-integration/installation-jobs"},{"title":"How To: Set Up a Report Schedule","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-set-up-report-schedule"},{"title":"How To: Load Export Integration Definitions","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-load-export-integration-definitions"},{"title":"How To: Whitelist SFTP server in SAP","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-whitelist-sap-sftp-server"},{"title":"How To: Add an SSH Key to the Integration Center","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-add-ssh-key-integration-center"}]},{"group":"Workday","pages":[{"title":"Overview","href":"/integrations/datasource-integrations/workday-datasource/overview"},{"title":"Installation","href":"/integrations/datasource-integrations/workday-datasource/installation"},{"title":"EIB Specification","href":"/integrations/datasource-integrations/workday-datasource/eib-specification"},{"title":"Jobs","href":"/integrations/datasource-integrations/workday-datasource/jobs"},{"title":"Employees","href":"/integrations/datasource-integrations/workday-datasource/employees"},{"title":"Courses","href":"/integrations/datasource-integrations/workday-datasource/courses"}]},{"group":"Other systems","pages":[{"title":"Technical data flow","href":"/integrations/datasource-integrations/non-standard-datasource-integrations/technical-data-flow"},{"title":"Data checklist","href":"/integrations/datasource-integrations/non-standard-datasource-integrations/data-checklist"},{"title":"Jobs","href":"/integrations/datasource-integrations/non-standard-datasource-integrations/jobs"},{"title":"Employees","href":"/integrations/datasource-integrations/non-standard-datasource-integrations/employees"},{"title":"Courses","href":"/integrations/datasource-integrations/non-standard-datasource-integrations/courses"}]}]},{"group":"Data Source Connectors","pages":[{"group":"Workday","pages":[{"title":"Overview","href":"/integrations/datasource-integrations/connectors/workday/overview"},{"title":"Installation","href":"/integrations/datasource-integrations/connectors/workday/installation"}]},{"group":"SAP SuccessFactors via BTP","pages":[{"title":"SAP BTP Connector","href":"/integrations/datasource-integrations/connectors/sap-btp/overview"},{"title":"How It Works","href":"/integrations/datasource-integrations/connectors/sap-btp/how-it-works"},{"title":"Installation","href":"/integrations/datasource-integrations/connectors/sap-btp/installation"}]},{"group":"Cornerstone","pages":[{"title":"Overview","href":"/integrations/datasource-integrations/connectors/cornerstone/overview"},{"title":"Installation","href":"/integrations/datasource-integrations/connectors/cornerstone/installation"}]}]},{"title":"How To: build custom datasource integrations","href":"/integrations/datasource-integrations/how-to-datasource-integration"}]},{"group":"Employee Skill Assistant","pages":[{"title":"What is the Skill Assistant?","href":"/integrations/skill-assistant/overview"},{"group":"Microsoft Teams","pages":[{"title":"Installation","href":"/integrations/skill-assistant/teams/installation"},{"title":"How It Works","href":"/integrations/skill-assistant/teams/how-it-works"},{"title":"Customizations","href":"/integrations/skill-assistant/teams/customizations"},{"title":"How It Looks","href":"/integrations/skill-assistant/teams/how-it-looks"}]},{"group":"Slack","pages":[{"title":"Installation","href":"/integrations/skill-assistant/slack/installation"},{"title":"How It Works","href":"/integrations/skill-assistant/slack/how-it-works"},{"title":"Customizations","href":"/integrations/skill-assistant/slack/customizations"},{"title":"How It Looks","href":"/integrations/skill-assistant/slack/how-it-looks"}]},{"group":"Workday","pages":[{"title":"Installation","href":"/integrations/skill-assistant/workday/installation"},{"title":"How It Works","href":"/integrations/skill-assistant/workday/how-it-works"},{"title":"Customizations","href":"/integrations/skill-assistant/workday/customizations"},{"title":"How It Looks","href":"/integrations/skill-assistant/workday/how-it-looks"}]},{"group":"Degreed","pages":[{"title":"Installation","href":"/integrations/skill-assistant/degreed/installation"},{"title":"How It Works","href":"/integrations/skill-assistant/degreed/how-it-works"},{"title":"Customizations","href":"/integrations/skill-assistant/degreed/customizations"},{"title":"How It Looks","href":"/integrations/skill-assistant/degreed/how-it-looks"}]}]},{"group":"TechWolf Analyst Agent","pages":[{"title":"What is the TechWolf Analyst Agent?","href":"/integrations/analyst-agent/overview"},{"title":"User Management","href":"/integrations/analyst-agent/user-management"},{"title":"Credits","href":"/integrations/analyst-agent/credits"},{"title":"Usage Reports","description":null,"href":"/integrations/analyst-agent/reports"},{"group":"M365 Copilot","pages":[{"title":"Installation","href":"/integrations/analyst-agent/copilot/installation"},{"title":"How It Works","description":null,"href":"/integrations/analyst-agent/copilot/how-it-works"},{"title":"How It Looks","href":"/integrations/analyst-agent/copilot/how-it-looks"}]},{"title":"FAQ","href":"/integrations/analyst-agent/faq"}]},{"group":"TechWolf MCP Connector","pages":[{"title":"What is the TechWolf MCP Connector?","href":"/integrations/mcp-connector/overview"},{"title":"Security","href":"/integrations/mcp-connector/security"},{"title":"FAQ","href":"/integrations/mcp-connector/faq"}]},{"group":"Entity Sync","pages":[{"group":"Workday","pages":[{"group":"Skill Sync","pages":[{"group":"Employees","pages":[{"title":"Overview","href":"/integrations/workday-skill-sync-integration/overview-employees"},{"title":"Installation","href":"/integrations/workday-skill-sync-integration/installation-employees"}]},{"group":"Jobs","pages":[{"title":"Overview","href":"/integrations/workday-skill-sync-integration/overview-jobs"},{"title":"Installation","href":"/integrations/workday-skill-sync-integration/installation-jobs"}]},{"title":"How It Works","href":"/integrations/workday-skill-sync-integration/how-it-works"},{"title":"Explanation: Skill Harmonization","href":"/integrations/workday-skill-sync-integration/skill-harmonization"}]},{"group":"Job Description Sync","pages":[{"title":"Overview","href":"/integrations/workday-job-description-sync/overview"},{"title":"Installation","href":"/integrations/workday-job-description-sync/installation"},{"title":"How It Works","href":"/integrations/workday-job-description-sync/how-it-works"}]}]},{"group":"SAP SuccessFactors","pages":[{"group":"Skill Sync","pages":[{"group":"Employees","pages":[{"title":"Overview","href":"/integrations/sap-skill-sync-integration/overview-employees"},{"title":"Installation","href":"/integrations/sap-skill-sync-integration/installation-employees"}]},{"group":"Jobs","pages":[{"title":"Overview","href":"/integrations/sap-skill-sync-integration/overview-jobs"},{"title":"Installation","href":"/integrations/sap-skill-sync-integration/installation-jobs"}]},{"title":"How It Works","href":"/integrations/sap-skill-sync-integration/how-it-works"}]},{"group":"Skills Taxonomy","pages":[{"title":"Overview","href":"/integrations/sap-skill-sync-integration/overview-skills-taxonomy"},{"title":"Installation","href":"/integrations/sap-skill-sync-integration/installation-skills-taxonomy"}]},{"group":"How-to's","pages":[{"title":"How To: Find the SAP SuccessFactors Company ID and API URL","href":"/integrations/sap-skill-sync-integration/how-to-find-company-id-and-api-url"},{"title":"How To: Find the SAP identifier for a skill","href":"/integrations/sap-skill-sync-integration/how-to-find-a-skill-id"},{"title":"How To: Manage the Skill Proficiency Rating Scale in SAP SuccessFactors","href":"/integrations/sap-skill-sync-integration/how-to-manage-proficiency-rating-scale"},{"title":"How To: Register TechWolf as a Trusted Data Source in SAP SuccessFactors","href":"/integrations/sap-skill-sync-integration/how-to-register-data-source"},{"title":"How To: Load Import Integration Definitions","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-load-import-integration-definitions"},{"title":"How To: Load Export Integration Definitions","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-load-export-integration-definitions"},{"title":"How To: Whitelist SFTP server in SAP","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-whitelist-sap-sftp-server"},{"title":"How To: Add an SSH Key to the Integration Center","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-add-ssh-key-integration-center"}]}]},{"group":"SAP BTP","pages":[{"group":"Skill Sync","pages":[{"group":"Employees","pages":[{"title":"Overview","href":"/integrations/sap-btp-skill-sync/overview-employees"},{"title":"Installation","href":"/integrations/sap-btp-skill-sync/installation-employees"}]},{"group":"Jobs","pages":[{"title":"Overview","href":"/integrations/sap-btp-skill-sync/overview-jobs"},{"title":"Installation","href":"/integrations/sap-btp-skill-sync/installation-jobs"}]},{"title":"How It Works","href":"/integrations/sap-btp-skill-sync/how-it-works"}]},{"group":"How-to's","pages":[{"title":"How To: Find the SAP SuccessFactors Company ID and API URL","href":"/integrations/sap-btp-skill-sync/how-to-find-company-id-and-api-url"},{"title":"How To: Find the SAP identifier for a skill","href":"/integrations/sap-btp-skill-sync/how-to-find-a-skill-id"},{"title":"How To: Manage the Skill Proficiency Rating Scale in SAP SuccessFactors","href":"/integrations/sap-btp-skill-sync/how-to-manage-proficiency-rating-scale"},{"title":"How To: Register TechWolf as a Trusted Data Source in SAP SuccessFactors","href":"/integrations/sap-btp-skill-sync/how-to-register-data-source"},{"title":"How To: Load Import Integration Definitions","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-load-import-integration-definitions"},{"title":"How To: Load Export Integration Definitions","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-load-export-integration-definitions"},{"title":"How To: Whitelist SFTP server in SAP","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-whitelist-sap-sftp-server"},{"title":"How To: Add an SSH Key to the Integration Center","href":"/integrations/datasource-integrations/sap-standard-input-integration/how-to-add-ssh-key-integration-center"}]}]},{"group":"Degreed","pages":[{"group":"Skill Sync","pages":[{"group":"Employees","pages":[{"title":"Overview","href":"/integrations/degreed-skill-sync-integration/overview-employees"},{"title":"Installation","href":"/integrations/degreed-skill-sync-integration/installation-employees"}]},{"title":"How It Works","href":"/integrations/degreed-skill-sync-integration/how-it-works"}]}]}]},{"group":"Reporting","pages":[{"title":"File-based output integrations","href":"/integrations/file-based-output/overview"},{"group":"Supported export types","pages":[{"title":"Standard exports","href":"/integrations/file-based-output/standard-exports"},{"title":"Visier exports","href":"/integrations/file-based-output/visier-exports"}]}]},{"group":"Webhooks","pages":[{"title":"Overview","href":"/integrations/webhooks/overview"},{"title":"Event Types","href":"/integrations/webhooks/event_types"},{"title":"Protocol and Delivery","href":"/integrations/webhooks/protocol-delivery"},{"title":"Security","href":"/integrations/webhooks/security"}]},{"group":"References","pages":[{"title":"File guidelines","href":"/integrations/reference/file-guidelines"},{"group":"SFTP","pages":[{"title":"SFTP","href":"/integrations/reference/sftp/sftp"},{"title":"How SFTP works","href":"/integrations/reference/sftp/how-sftp-works"},{"title":"Security","href":"/integrations/reference/sftp/security"},{"title":"Self-service SFTP setup","href":"/integrations/reference/sftp/self-service-setup"}]},{"title":"File Organization","href":"/integrations/reference/file-structure"},{"title":"Single Sign-On for the TechWolf Console","href":"/integrations/reference/sso"},{"title":"IP Addresses","href":"/integrations/reference/ip-addresses"},{"title":"Skills in Workday","href":"/integrations/reference/workday-skills"}]}]},{"tab":"Open Source","pages":[{"title":"Open Source","href":"/open-source"}]}]}]},"basePath":"","title":"Installation - TechWolf Developer Portal","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-CX_qQQOL.js","dist-BTZUMDnx.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-xpJZXxdP.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-DXXFP6nH.js","DynamicMarkdown-B54_zNBF.js","zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}