Deploying Teams Chat Exporter across your organization
For IT administrators
Teams Chat Exporter is a user-facing export tool that runs entirely in the browser as the signed-in user. It needs no app registration, no Microsoft Graph admin consent, and no tenant-level change. You can deploy it fleet-wide and control it with your existing browser management.
Extension IDs
- Chrome:
jmghclbfbbapimhbgnpffbimphlpolnm - Edge:
phlomfiieaggnbfpacmjmidcjdlaiplp - Firefox:
n.gedizaydindogmus@gmail.com
Force-install
Use your existing browser policy management.
- Chrome and Edge: add the extension ID to
ExtensionInstallForcelistvia Group Policy or Intune. - Firefox: use the
ExtensionSettingspolicy inpolicies.json(or your management equivalent), with the Firefox add-on ID above.
Permissions, and why each is needed
These are the permissions the extension requests, taken from the published manifests. Each runs on the user's own device, as the signed-in user.
- scripting: injects a small helper into the active Teams tab on export, to fetch inline images the content script cannot reach (cookies are partitioned to Teams' image hosts). No external code is loaded.
- activeTab: reads the active Teams tab on export to call Teams' own message API, with a DOM fallback only if the API is unavailable. No other tab, no background reading.
- downloads, downloads.open: save the export through the browser's Save As dialog when the user clicks Export, and reopen a saved file from the popup history. Limited to download IDs the extension created.
- storage: stores export preferences locally (formats, language, included sections, date filters). Read only by the popup, never sent off-device.
- offscreen (Chrome and Edge only): a hidden offscreen document rasterizes emoji for PDF output and mints the blob URL used to save large files, both entirely on-device. Firefox does not use it.
Host access
The extension contacts Microsoft hosts only, and only the ones an export needs. The manifest lists every Teams variant plus a few Microsoft media hosts so the tool works across tenant types. A single run talks to the one Teams origin of the tenant the user is signed into (the active tab), and reaches a media host only for the items a given conversation actually contains.
- Teams web origins:
teams.microsoft.com,teams.cloud.microsoft,teams.live.com,teams.microsoft.us(GCC High), plus the.mcas.msproxy and sovereign-cloud (.us,.cn) variants. Only the origin of the signed-in tenant is used per run. graph.microsoft.com(.usfor government): resolves participant display names, and their profile photos only when the user turns on "Include avatars" (off by default).*.asm.skype.com: inline images pasted into messages on personal Teams Free accounts, only when a message has them.*.sharepoint.com/.us: image files attached via the paperclip, downloaded only so the picture appears in the export. Other file types are kept as a link, not downloaded.- Optional
<all_urls>: off by default. Requested at runtime only if the user enables the Settings "Image fetch fallback" toggle, which recovers link-preview thumbnails when Teams' image proxy is unreachable.
Data handling
No data goes to a third-party or developer server. Messages and their media are read from Microsoft's own services using the user's existing session, formatted on the device, and saved through the browser's Save As dialog, where the user picks the folder and filename. There is no proxy, no cloud step, and no analytics or telemetry of any kind in the extension. It runs as the signed-in user, with the access that user already has.
Source and licence
Open source under the MIT licence. Read the code or build it yourself: github.com/gediz/teams-web-chat-exporter. Release history is in the changelog.