Skip to content

Microsoft Teams

Built, not certified Built and tested against recorded and synthetic responses (version 1.0.0, 10 November 2026). Not yet run against the vendor's sandbox or a client environment.

Reads the channel messages of the Microsoft Teams teams you name, a thread at a time, so agents can answer from what the team has already said. A thread is the first message and its replies, in order, as one document.

CollectorMicrosoft Teams, version 1.0.0
ReadsMicrosoft: Microsoft Teams (Microsoft Graph) (the vendor's documentation)
FamilyCommunication
KindChat
Ways to connectOAuth approval, Key pair
Scopes
  • Read: ChannelMessage.Read.All, Channel.ReadBasic.All, Team.ReadBasic.All
Read onlyYes, except: [object Object]; [object Object]
Vendor's API can move moneyNo
Personal dataContent, Identity
Hosts it may contactgraph.microsoft.com, login.microsoftonline.com, teams.microsoft.com, *.atlanticagenticlabs.com
Vendor API versionsMicrosoft Graph v1.0 (teams, channels, messages delta)
Lowest engine version0.45.0
  • The channels (by name; every channel otherwise) of the teams you name (by team id). A whole tenant is never the default.
  • A thread is one record: the first message and its replies, with the team, channel, sender and reply count. A reply is never indexed without its question.
  • The cursor is each channel’s delta link, kept with the threads written. A new or edited message, or a reply that moves the first message’s modified time, brings the thread back; a message deleted in Teams is withdrawn. A channel taken out of the configuration has its threads withdrawn; a team that cannot be seen at the moment keeps them. A delta link Graph no longer honours (410) re-reads the channel.
  • Never read: chats, meeting chats, files shared in channels (connect SharePoint for those) and system messages.
  1. Choose how to sign in, as for SharePoint: Approve in Microsoft (a Microsoft Entra administrator consents to Atlantic’s Microsoft app; an hour’s token is minted for your tenant each time) or your own app, by certificate (an app registration in your tenant with a certificate credential, never a client secret).
  2. Channel messages are a Microsoft protected API: an app reads them only once Microsoft has approved it for that use. Atlantic’s app goes through that approval; for your own app, request it from Microsoft before you connect.
  3. In LightHouse, open Connectors, choose Microsoft Teams, name the team ids, optionally the channels, a label and how often to read, and approve or paste the tenant ID, client ID and PEM.
  4. In code, set the credential’s JSON fields in SHAREPOINT_CREDENTIAL (or the variable credential_env names) and add a kind: teams source card with teams, channels, label and requires.

Both ways produce a one-hour app-only token, and a client secret is never accepted: a certificate cannot be copied from a log or a screenshot the way a password can.

Microsoft Graph application permissions: ChannelMessage.Read.All, Channel.ReadBasic.All and Team.ReadBasic.All. LightHouse offers no write access for Teams. The collector sends GET requests to graph.microsoft.com; the only other requests are the sign-in POSTs the manifest lists under read_operations (the certificate sign-in to login.microsoftonline.com, or a signed request to LightHouse for a one-hour token with Atlantic’s app). Its read-only test proves it on every change.

  • You must name teams, by their id (a GUID); a team name is refused.
  • Chats and meeting chats are not read.
  • A thread is read again whole when it changes.
  • Channel messages need Microsoft’s protected-API approval for the app.
  • The token lasts an hour and is refreshed five minutes early.
  • Message text is copied into the deployment’s corpus under the source’s label, with the sender’s display name. Messages name people and hold personal data of any kind.
  • The certificate stays in your secret store (or is never held, with Atlantic’s app); only a one-hour token exists, and it is never written to logs or run notes.
  • Nothing leaves the deployment: only counts reach LightHouse.
What you see What it means What to do
name the teams to sync; a whole tenant is never the default teams is empty Name the team ids
not team ids A team was named by name, not by id Use the team’s id (a GUID)
credential variable 'SHAREPOINT_CREDENTIAL' is not set The credential variable is empty Set it to the credential’s JSON fields
Microsoft refused the app's credential The app, certificate or consent is wrong or revoked Check the app registration and admin consent
HTTP 403 on channel messages The app has not been approved for Microsoft’s protected API, or lacks ChannelMessage.Read.All Request the approval; grant the permission and consent
Read succeeded, 0 written No message changed since the delta link Nothing to do

Each entry is a run by Atlantic Agentic Labs, newest first. Only a run against the vendor’s sandbox or a client environment certifies a collector; a certification lasts six months, or less if the vendor publishes an API version the collector does not list. See How collectors are certified.

DateCollectorEngineVendor APIMethodExpires
10 November 20261.0.00.45.0Microsoft Graph v1.0Fixtures only: built, not certifiedNot applicable

From the collector’s last scan on the default branch. What each line means, and what blocks a release: Security posture.

Last scanned10 November 2026
Critical findings0
High findings0
Medium findings0
Low findings0
Info findings0
Release blockedNo
Network allow-list checkPass
Read-only behavioural testPass
SBOM (CycloneDX)Produced
Dependency licencesPass
Scannersbandit 1.9.4, semgrep 1.181.1, pip-audit 2.10.1, osv-scanner 2.7.0, cyclonedx-py 7.5.0, pip-licenses 5.5.5, gitleaks repository job aal-secrets, hosts_check tools/hosts_check.py, read-only test pytest -m read_only