Technology · Platform

Microsoft Graph

Microsoft Graph is how the employee reads mail, posts in meeting chat and answers calls, with tokens minted per employee and validated before use.

HelixCalls and meeting actionsTokens minted per employee
One call · two principals · a token per action
Employee identity
Transport client
The meeting toolseach mints the employee's own Graph token
  • 24tools on the digital-employee server through which a model acts as the employee

Answering calls as the employee

Helix puts a governed digital employee into Teams calls and meetings, and Microsoft Graph is the surface it acts through. The first problem was calling: no single Microsoft principal can both answer a call as the employee and own the media session. I composed two Graph Communications clients. The employee's identity answers inbound calls under its own name, and a transport-only client owns the native media platform that carries the audio. That composition is the core of A self-hosted colleague in a Teams call.

Inbound

the employee answers

Outbound

a calling bot rings; it never impersonates the employee

Acting in meetings under one identity

The second problem was acting in meetings with attribution any model could rely on. I built a Rust MCP server for those meeting actions. The acting employee is an explicit argument of every tool, so the server decides attribution.

The meeting tool catalog is data, so a new action reaches every model client, the voice engine included, with no client change.

1Action and employee named
2Employee's token minted
3Token kind fits the action
✓Claims checked in process
Tokens are minted by certificate assertion; the model never holds or chooses a credential.

Reading the room, refusing what Graph cannot do

A room-state projector turns Graph's participant data into a current picture of who is present and whose hand is up. A join counts only once Graph shows the employee on the roster, because only the roster shows the employee is actually in the room. Graph lets a bot read a raised hand and gives it no supported way to raise its own, so that tool returns a typed refusal. See A meeting attendee that will not fake it.

The room, projected from Graph
P1P2P3P4

Hands are read from Graph; the employee cannot raise its own. Seats are illustrative.

  • Join and leaveroster
  • Post in the meeting chatas the employee
  • Present, share a terminal or browseras the employee
  • Call on a raised handroom state
  • Raise its own handtyped refusal

Provisioning the employee

Graph also carries provisioning: the tenant installer creates and configures the employee. The identity design is in Solving the digital-employee identity.

1Create the employee
2Configure it
✓Calling contract sealed
4Installer finishes
The installer refuses to reach the last step until the calling contract is sealed.

I use Graph's public APIs as Microsoft publishes them; the composition, token handling, roster checks and refusals are my engineering.

I can turn Microsoft Graph into a governed action surface for an AI colleague, where every call, message and screen share is attributed to one identity and grounded in what Graph reports.