The mechanism (index-time, not run-time)
A Graph connector crawls a source (Confluence, ServiceNow, file shares, databases…), transforms items into indexable objects with properties and — critically — ACL mappings, and feeds them into the same index Copilot grounds on (semantic-index concept). From that moment the content answers prompts like native M365 content. Three consequences:
- Freshness = crawl schedule. The connector's sync cadence is the staleness ceiling; a nightly crawl means yesterday's wiki edits answer today.
- Security = your ACL mapping fidelity. Sources with rich permissions need those permissions translated to Entra identities. The failure mode is mapping to 'everyone in the org' for convenience — you've just built an oversharing machine with extra steps.
- The copy is governable M365 data — it appears in search, is subject to your controls, and its lifecycle is the CONNECTOR'S (delete the connection, the index copy goes; the source never knew).
The review checklist per connector (thirty minutes that prevents incidents)
- Source sensitivity class → does it belong in the grounded corpus AT ALL?
- ACL mapping mode: per-item mapped identities vs everyone — justify anything broader than the source's own model.
- Property mapping: what becomes title/snippet (what users will SEE in citations).
- Crawl scope: whole source vs spaces/paths — start narrow.
- Owner + review date — connectors rot like flows do (Teams curriculum's owner-lifecycle lesson).
What to watch (proofs)
- Connection health: admin center's connector status — item counts, crawl errors, last sync; a silently failing crawl = confidently stale answers.
- The leak test (run per connector, then quarterly): a low-privilege test user prompts for content that should be restricted in the source — no results = mapping holds; the screenshot goes in the connector's file.
- Citation experience: ask something the connector answers — the citation should open the SOURCE item for authorised users; broken deep links kill trust in one demo.
- Index footprint: item counts vs expectation — a connector ingesting 40x the estimate is scoped wrong, and it's polluting retrieval quality for everyone (relevance is a shared resource).