Skip to content

Teams and Outlook install ​

TL;DR: Teams and Outlook share one Teams manifest. RSPFx scaffolds it, bundles it in the .sppkg, and you sync it from the app catalog to Teams.

RSPFx scaffolds teams/manifest.json plus two icons. rspfx package puts them under ClientSideAssets/teams/ in the zip. SharePoint syncs the app to Teams and, with personal scope, to new Outlook.

What scaffold creates ​

teams/manifest.json uses Teams schema 1.13:

  • id equals the SharePoint component id.
  • packageName like com.contoso.<name>.
  • staticTabs with personal scope, entityId equals component id, and contentUrl with TeamsLogon.aspx?SPFX=true&dest=teamshostedapp.aspx%3F...%26componentId=<id>.
  • configurableTabs with team scope and canUpdateConfiguration: true.
  • validDomains includes *.sharepoint.com, *.office.com, *.secure.aadcdn.microsoftonline-p.com, *.login.microsoftonline.com, spoprod-a.akamaihd.net.

Icons: teams/<id>_color.png at 192 by 192 and teams/<id>_outline.png at 32 by 32. Schema is at https://developer.microsoft.com/json-schemas/teams/v1.13/MicrosoftTeams.schema.json.

Keep id and staticTabs[0].entityId equal to your web part id. If you regenerate the web part id, update teams/manifest.json.

For reliable Outlook, add *.outlook.office.com to validDomains by hand. Scaffold omits it.

Comparison ​

AreaOfficial SPFx plus TeamsRSPFx
Teams manifestmanual or yoscaffolded - id and entityId synced
Packaginggulp package-solutionrspfx package - same
Synccatalog Sync to Teamssame
Outlookpersonal scopesame

Troubleshoot ​

SymptomFix
App not in TeamsSync to Teams not clicked or teams/ missing at package time
Invalid Teams manifestcheck id equals component id and validDomains has *.sharepoint.com
App in Teams but not Outlookwait for sync, check personal scope, add *.outlook.office.com
White screen in Teams or OutlookcontentUrl must use %26 not &

For pipeline details, see ../../reference/architecture.md.

Released under the MIT License.