Wednesday, September 30, 2026

Pin a SharePoint Site to the Microsoft Teams Left Rail (No Code)

This is a no-code, step-by-step guide. You package a SharePoint page as a Teams app, upload it, and pin it for everyone in your organisation.

Why do this?

Most organisations already have an intranet on SharePoint, yet people spend their day in Microsoft Teams. Putting the intranet one click away on the Teams app bar (the icons down the left side) raises traffic to the intranet and saves people switching windows.

In this guide you build a small Teams app with one personal tab that loads a SharePoint page. You then upload the app in the Teams admin center and pin it with an app setup policy, so every user sees the icon without installing anything.

What you end up with: an "Intranet" icon in the Teams left rail. Clicking it opens the SharePoint site home page inside Teams, already signed in.

Prerequisites

RequirementDetails
Admin roleTeams Administrator (or Global Administrator) to upload custom apps and edit setup policies
SharePoint siteA modern SharePoint site the target users can already read
Custom apps allowedOrg-wide app settings must allow custom apps to be uploaded
ToolsAny text editor and a zip tool. No Visual Studio, SPFx, or Azure resources are needed

How it works

PieceRole
Teams app manifestDescribes the app: its name, its icons and one static (personal) tab
teamslogon.aspxA SharePoint page that signs the user in through Teams, then redirects to the page given in the dest parameter
webApplicationInfoPoints at the SharePoint Online resource (00000003-0000-0ff1-ce00-000000000000) so single sign-on works in the Teams desktop client
App setup policyPins the app to the app bar for everyone the policy applies to

Step 1 – Find the SharePoint site and its home page

  1. Open the SharePoint admin center and go to Sites > Active sites.
  2. Search for the site and note its URL (in this example, /sites/work).
Step 1a – Locate the site in SharePoint admin center > Active sites

Step 1a – Locate the site in SharePoint admin center > Active sites

  1. Open the site and confirm which page is the home page. For most modern sites it is SitePages/Home.aspx.
Step 1b – The SharePoint site home page that will appear in Teams

Step 1b – The SharePoint site home page that will appear in Teams

Tip: to confirm the home page, open the browser developer console on the site and run fetch('/sites/work/_api/web/WelcomePage',{headers:{accept:'application/json'}}).then(r=>r.json()).

Step 2 – Create the Teams app package

A Teams app package is a .zip file that holds three files, all at the root of the zip with no folders:

FileSpecification
manifest.jsonApp definition (shown below)
color.png192 × 192 px full-colour icon
outline.png32 × 32 px icon, white on a transparent background

Here is the manifest. Replace contoso with your tenant name, /sites/work with your site path, and <new-guid> with a new GUID (in PowerShell, run [guid]::NewGuid()).

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.17/MicrosoftTeams.schema.json",
  "manifestVersion": "1.17",
  "version": "1.0.0",
  "id": "<new-guid>",
  "developer": {
    "name": "IT",
    "websiteUrl": "https://contoso.sharepoint.com/sites/work",
    "privacyUrl": "https://contoso.sharepoint.com/sites/work",
    "termsOfUseUrl": "https://contoso.sharepoint.com/sites/work"
  },
  "name": { "short": "Intranet", "full": "Intranet (SharePoint)" },
  "description": {
    "short": "Company intranet SharePoint site in Teams",
    "full": "Opens the intranet SharePoint site home page inside Microsoft Teams."
  },
  "icons": { "color": "color.png", "outline": "outline.png" },
  "accentColor": "#0078D4",
  "staticTabs": [{
    "entityId": "intranethome",
    "name": "Intranet",
    "contentUrl": "https://contoso.sharepoint.com/_layouts/15/teamslogon.aspx?spfx=true&dest=https://contoso.sharepoint.com/sites/work/SitePages/Home.aspx",
    "websiteUrl": "https://contoso.sharepoint.com/sites/work/SitePages/Home.aspx",
    "scopes": ["personal"]
  }],
  "permissions": ["identity"],
  "validDomains": [
    "contoso.sharepoint.com",
    "*.login.microsoftonline.com",
    "*.sharepoint.com",
    "spoprod-a.akamaihd.net",
    "resourceseng.blob.core.windows.net"
  ],
  "webApplicationInfo": {
    "id": "00000003-0000-0ff1-ce00-000000000000",
    "resource": "https://contoso.sharepoint.com"
  }
}

The key line is contentUrl. It points at /_layouts/15/teamslogon.aspx?spfx=true&dest=<page URL>. Microsoft documents this pattern for SharePoint content hosted in Teams. It signs the user in to SharePoint through Teams single sign-on, so they don't get a blank frame or a second sign-in prompt.

Zip the three files (select the files themselves, not the folder that contains them). Name the zip something like IntranetTeamsApp.zip.

Step 3 – Upload the app in the Teams admin center

  1. Go to Teams admin center > Teams apps > Manage apps.
Step 3a – Teams admin center > Teams apps > Manage apps

Step 3a – Teams admin center > Teams apps > Manage apps

  1. Open the Actions menu and choose Upload new app.
Step 3b – Actions > Upload new app

Step 3b – Actions > Upload new app

  1. Select Upload and choose your .zip file.
Step 3c – The Upload a custom app dialog

Step 3c – The Upload a custom app dialog

  1. When New app added appears, select this link to open the app.
Step 3d – The app was uploaded

Step 3d – The app was uploaded

  1. Check the app details. Available to should read Everyone (org-wide default). If the app shows as Blocked, select Allow.
Step 3e – The app's details page, showing it available to everyone

Step 3e – The app's details page, showing it available to everyone

Step 4 – Pin the app with an app setup policy

  1. Go to Teams apps > Setup policies and open Global (Org-wide default). To reach only a pilot group, create a custom policy instead and assign it to that group.
Step 4a – The App setup policies page

Step 4a – The App setup policies page

  1. Scroll to Pinned apps.
Step 4b – Settings for the Global (Org-wide default) policy

Step 4b – Settings for the Global (Org-wide default) policy

  1. Select + Add apps.
Step 4c – Pinned apps > Add apps

Step 4c – Pinned apps > Add apps

  1. Search for the app name, hover over it, and choose Select.
Step 4d – Search for the custom app in the Add pinned apps pane

Step 4d – Search for the custom app in the Add pinned apps pane

  1. Check that it appears under Apps to add, then select Add.
Step 4e – The app is queued under Apps to add

Step 4e – The app is queued under Apps to add

  1. The app now appears in the App bar list. Use Move up or Move down, or drag the handle, to change its position.
Step 4f – The Intranet app in the pinned App bar list

Step 4f – The Intranet app in the pinned App bar list

  1. Select Save, then Confirm in the warning that changes to the Global policy affect the whole organisation.
Step 4g – Confirm the change to the Global policy

Step 4g – Confirm the change to the Global policy

Step 5 – Test it in Teams

Open Teams on the web or on the desktop. The new icon appears in the left app bar. Click it and the SharePoint home page loads inside Teams, signed in and fully usable. Users can read news and open links, and page authors can even use Edit.

Step 5 – The SharePoint site running inside Teams from the pinned icon

Step 5 – The SharePoint site running inside Teams from the pinned icon

Rollout timing: Microsoft states that setup policy changes can take a few hours to take effect. Teams on the web usually picks them up first. On desktop, signing out and back in speeds things up.

Troubleshooting

SymptomCause / fix
"This app cannot be found" right after uploadingThe app catalog hasn't finished propagating. Wait a few minutes and reload Teams
Blank white frame in the tabcontentUrl doesn't use teamslogon.aspx, or the domain is missing from validDomains
Repeated sign-in prompts on desktopwebApplicationInfo is missing or has the wrong resource. It must be your own tenant's https://<tenant>.sharepoint.com
App is missing from the Add pinned apps searchThe app is blocked or not yet available. Allow it under Manage apps, and check that the tab scope is personal
Icon doesn't appear on mobileMobile clients need at least two pinned apps in the policy
You need to change the target pageEdit contentUrl and websiteUrl, raise version (for example to 1.0.1), re-zip, then use Manage apps > app > Upload file

Alternatives worth knowing

  • Viva Connections: Microsoft's supported way to bring the SharePoint home site into Teams, with a dashboard, feed and resources. Choose it when the page is your organisation's home site.
  • Website tab in a channel: quick for one team, but it appears only inside that channel and can't be pinned to the app bar.
  • SPFx personal app: choose this when you need custom code rather than an existing SharePoint page.

Summary

A three-file Teams app package, one upload and one setup-policy edit put any SharePoint site in the Teams left rail for the whole organisation. You don't write code or host anything, and single sign-on works on web and desktop. Repeat the steps with a new GUID and name to add more sites.

References

No comments:

Post a Comment

Featured Post

Pin a SharePoint Site to the Microsoft Teams Left Rail (No Code)

This is a no-code, step-by-step guide. You package a SharePoint page as a Teams app, upload it, and pin it for everyone in your organisation...

Popular posts