One read of Claude Documentationclaude-docs-20261105T230705Z
4 pages moved out of 281 read.
Pages moved
4
significant first
Pages read
281
in this capture
Captured
23:07 UTC
Corpus hash
1ba489a885dc
corpus-hash
What this read moved
1-4 of 4office-agents/data-storage Changed · +27 / -5 lines
from line 83
8383between them, so the guidance is the same as for any browser-based tool: give
8484each person their own operating system account.
8585
86Claude for M365 also writes one value into the Office document itself: an opaque
87identifier that lets the add-in recognize the same file after a rename or a Save
88As. It holds no user information and no conversation content, and it travels
89with the file if the document is shared.
86Apart from the edits a user asks Claude to make, Claude for M365 writes two
87values into the Office document itself, as add-in settings, when its task pane
88opens in Excel, PowerPoint, or Word. The first, `claude.fileId`, is a random
89identifier that lets the add-in recognize the file after a rename or a Save As.
90A copy made with Save As keeps the same identifier. The second,
91`Office.AutoShowTaskpaneWithDocument`, asks Office to open the Claude task pane
92when the document opens. [Microsoft supports automatic opening](https://learn.microsoft.com/office/dev/add-ins/develop/automatically-open-a-task-pane-with-a-document)
93only for add-ins that are centrally deployed or sideloaded, and only for people
94who already have that add-in.
9095
96Neither value holds user information or conversation content. Office stores
97both in the file together with a reference to the add-in, so they travel with
98the document if it is shared, and the file shows that the add-in was used with
99it.
100
101Session logging is a setting in Claude for Excel that writes conversation
102summaries into the workbook. It is off by default. A user turns it on in the
103add-in's settings or by asking Claude. The setting is saved in local storage,
104not in the workbook, so it applies to every workbook opened with that browser
105profile. While it is on, Claude keeps a sheet named `Claude Log` as the first
106tab of the workbook and adds a row for each exchange, with the date, a summary
107of what the user asked, what Claude did, and the result.
108
109The `Claude Log` sheet is ordinary workbook content. It travels with the file
110when the file is shared, and it stays in the workbook after session logging is
111turned off, until someone deletes it.
112
91113## Sign-in and credentials
92114
93115Every store above holds only content, with two exceptions. Local storage holds
from line 277
255277| Conversation text, attachments, and the document content Claude is asked to work with | The model endpoint your deployment is configured for. In third-party platform deployments that is your own Vertex AI, Bedrock, Azure, or gateway endpoint |
256278| Files that a user attaches, with a Claude account sign-in | Uploaded to Anthropic with the user's Claude sign-in when the user attaches them, before the message is sent. Each file expires 28 days after the add-in uploads it. If Anthropic does not accept an expiry for the user's organization, the add-in uploads the file with no expiry. The add-in does not delete files itself. Earlier versions of the add-in set no expiry on the files they uploaded. The add-in started setting an expiry on September 15, 2026 |
257279| Chat history, uploaded skills, and connector registrations | Not synced between devices and not backed up on any server. The add-in still sends their contents to the model endpoint when Claude uses them, as the rows above describe. Every chat request includes the name and description of each skill that is turned on. With a Claude account sign-in, it also includes the name and description of each plugin the user has turned on, with the names of its skills and connectors, and the organization's Claude settings can turn skills off, which stops both. When Claude uses a skill, the add-in also sends the skill's instructions and Markdown files. With a Claude account sign-in, files attached in a chat are also uploaded to Anthropic |
258| Claude for Outlook writing style guide, draft preferences, and scratchpad | Not synced between devices and not backed up on any server. To build the style guide, the add-in sends recent sent mail, with the first recipient's address of each message, to the model endpoint. Learning draft preferences from the user's edits to drafts is off unless Anthropic turns it on. While it is on, the add-in saves the user's edits to drafts on the device, sends them to the model endpoint to build the draft preferences, and adds a summary of the draft preferences to the Instructions field in Settings. Turning it off does not delete edits to drafts or draft preferences already saved on the device, and does not remove a summary already added to the Instructions field. The user can delete that summary in Settings. Every Outlook chat request includes the style guide and the Instructions field, and every message the user sends in Outlook includes the scratchpad |
280| Claude for Outlook writing style guide, draft preferences, and scratchpad | Not synced between devices and not backed up on any server. To build the style guide, the add-in sends recent sent mail, with the first recipient's address of each message, to the model endpoint. Learning draft preferences from the user's edits to drafts is off unless Anthropic turns it on. While it is on, the add-in saves the user's edits to drafts on the device, sends them to the model endpoint to build the draft preferences, and adds a summary of the draft preferences to the Instructions field in Settings. Turning it off does not delete edits to drafts or draft preferences already saved on the device, and does not remove a summary already added to the Instructions field. The user can delete that summary in Settings. Every Outlook chat request includes the style guide and the Instructions field. The add-in puts that summary on one line between two marker lines. While learning draft preferences is off, chat requests leave out a summary that is still in that form. If those lines have been edited, the add-in may not recognize the summary, and then sends it with the rest of the Instructions field. Every message the user sends in Outlook includes the scratchpad |
259281| Sign-in credentials | To the services the sign-in is for, with two exceptions described last. A Bedrock sign-in sends the Entra ID token to AWS, which exchanges it for short-lived credentials. A Claude account token also goes to `claude.ai` with feature-flag requests. The exceptions: a credential that you put in the query string of the manifest URL also reaches Anthropic's server at `pivot.claude.ai` each time the add-in loads, and the server's request logs record it. A Vertex AI sign-in also returns Google's one-time authorization code to `pivot.claude.ai` in the query string, where request logs can record it. The code cannot be exchanged for a token without your OAuth client secret, so keep the client secret out of the manifest URL query string too. See [Keep credentials out of the manifest URL query string](https://claude.com/docs/office-agents/third-party-platforms.md#keep-credentials-out-of-the-manifest-url-query-string) |
260282| Identifiers on model requests | Each request for a model response carries the name of the add-in, a random identifier for the device, and a session ID. For a chat message, the session ID is the conversation's ID. The add-in also sends helper requests to the same endpoint. In every Office app, they summarize a long conversation, write the status line shown while Claude thinks, and, when memory is on, check an entry before Claude saves it. In Word and PowerPoint, they check how the document or a slide looks after Claude edits it, and in Word they also check Claude's reasoning before it edits legal language. In Outlook, they rewrite a passage the user selects in a draft, and learn the user's writing style from recent sent mail and, while learning draft preferences is on, from the user's edits to drafts. Each helper request carries a session ID made from the kind of helper request, the device identifier, and the date in UTC, so helper requests of one kind from one device on one day share a session ID. With a Claude account sign-in, requests also carry the user's account ID. In third-party platform deployments, requests carry no account ID and no email address. That includes deployments whose settings Anthropic serves, where members sign in with a Claude account. The short test requests that the add-in sends to check which models and features your endpoint supports, such as web search and code execution, carry none of these values |
261283| Feature-flag requests | In every deployment, the add-in asks `claude.ai` which features to show. Each request includes the device identifier, the Office app, and, when the user is signed in to Office, the Entra ID tenant ID. With a Claude account sign-in, it also includes the user's email address, account ID, and organization ID. In every deployment, the add-in sends a usage event for each feature variant it showed. With a Claude account sign-in, the add-in also sends each variant it showed directly to Anthropic, with the organization ID |
office-agents/opentelemetry Changed · +6 / -9 lines
from line 124
124124| `otlp_headers` | `key1=value1,key2=value2` | Optional authentication headers |
125125
126126The `claude-for-msft-365-install` setup plugin writes these for you. To
127set them by hand, use any of the three channels below. Later channels override
128earlier ones: manifest parameters are read first, then Entra claims,
129then the bootstrap response.
127set them by hand, use either channel below. A value in the bootstrap
128response overrides the manifest parameter. If `entra_sso=1` is set and
129the add-in signs in through your own Entra app registration, you can also
130deliver these keys as ID token claims, as
131[Per-user configuration](https://claude.com/docs/office-agents/third-party-platforms.md#per-user-configuration)
132describes.
130133
131134**Manifest URL parameter.** Append the keys to the taskpane URL in your
132135custom manifest, with `otlp_headers` after `#` so the credential stays out of [server request logs](https://claude.com/docs/office-agents/third-party-platforms.md#keep-credentials-out-of-the-manifest-url-query-string).
from line 137
134137```text theme={null}
135138https://pivot.claude.ai/taskpane.html?otlp_endpoint=https://otel-collector.example.com#otlp_headers=Authorization=Bearer%20<token>
136139```
137
138**Entra ID directory extension.** Register the keys as directory
139extension attributes and assign them per user through Microsoft Graph.
140The add-in reads them from the user's ID token via Nested App
141Authentication. `extn.otlp_endpoint` maps to `otlp_endpoint` and
142`extn.otlp_headers` maps to `otlp_headers`.
143140
144141**Bootstrap endpoint response.** Include the keys in the JSON body your
145142bootstrap endpoint returns.
office-agents/outlook Changed · +11 / -2 lines
from line 359
359359is drafted into Outlook's native appointment form with attendees, subject,
360360and agenda for you to review and send.
361361
362To make a meeting repeat, open it for editing as the organizer and ask
363Claude. This works on a new invite, a saved meeting, or a whole series.
364Claude lists the pattern, dates, time, and time zone it will set and waits
365for you to allow the change. Nothing is saved or sent until you click Save
366or Send in Outlook. All-day events are not supported.
367
362368Prompts to try:
363369
364370* "Find 30 minutes with Dana and the Fernwood team next week"
365371* "Block Thursday afternoon for deep work"
372* "Make this weekly through the end of June"
366373
367374## Prep for meetings
368375
from line 397
390397
391398When you sign in with a Claude account, you can choose between Claude
392399Opus 4.7, Opus 4.6, and Sonnet 4.6. When you connect through a
393third-party platform such as Vertex AI, Azure AI Foundry, or an LLM
394gateway, Opus 4.7 is the only officially supported model.
400third-party platform such as Amazon Bedrock, Vertex AI, Azure AI Foundry,
401or an LLM gateway, Claude for Outlook supports Claude Opus 4.7 and later
402and Claude Sonnet 5 and later. Earlier model generations are not available
403in Outlook on those platforms.
395404
396405## How Claude accesses your mailbox
397406
office-agents/third-party-platforms Changed · +85 / -41 lines
### Claude account sign-in uses no redirect
from line 207
207207| `/claude-for-msft-365-install:setup` | Interactive wizard: provisions cloud resources, handles admin consent, writes manifest. |
208208| `/claude-for-msft-365-install:manifest` | Generates a customized add-in manifest XML. |
209209| `/claude-for-msft-365-install:consent` | Generates the Azure admin-consent URL for the add-in's app registration. |
210| `/claude-for-msft-365-install:update-user-attrs` | Writes per-user configuration via Microsoft Graph extension attributes. |
210| `/claude-for-msft-365-install:update-user-attrs` | Writes per-user connection values via Microsoft Graph extension attributes. |
211211| `/claude-for-msft-365-install:bootstrap` | Builds a bootstrap endpoint for per-user MCP servers, skills, and dynamic config. |
212212| `/claude-for-msft-365-install:debug` | Diagnoses deployment issues: stale config after a manifest update, connection failures, an add-in that does not appear, sign-in or admin-consent loops, and reading the add-in's error paste. |
213213| `/claude-for-msft-365-install:export-data` | Makes a read-only copy of a user's chat history, skills, connector registrations, and settings before a device is rebuilt. See [Data storage and retention](https://claude.com/docs/office-agents/data-storage.md). |
from line 232
232232
233233### Per-user configuration
234234
235If values vary per user, such as different gateway tokens or AWS roles
236for different teams, run `/claude-for-msft-365-install:update-user-attrs`
237with per-user keys after initial setup to write configuration via
238Microsoft Graph extension attributes.
235If gateway, Bedrock, or Vertex AI connection values vary per user, such
236as different gateway tokens or AWS roles for different teams, run
237`/claude-for-msft-365-install:update-user-attrs` after initial setup to
238write them as Microsoft Graph extension attributes. Set `entra_sso=1` in
239the manifest so that the add-in reads them at sign-in, where they arrive
240as claims in the user's ID token.
239241
240At load, the add-in resolves each configuration key from three sources in
241order of precedence: a bootstrap endpoint, Microsoft Entra ID extension
242attributes, then manifest parameters. Per-user attributes override the
242By default, the add-in signs in through
243[Anthropic's Microsoft Entra application](#identify-anthropic%E2%80%99s-microsoft-entra-application),
244which passes only these eight keys to the add-in:
245
246* **LLM gateway**: `gateway_url` and `gateway_token`
247* **Bedrock direct**: `aws_role_arn` and `aws_region`
248* **Vertex AI direct**: `gcp_project_id`, `gcp_region`,
249 `google_client_id`, and `google_client_secret`
250
251Deliver every other key, such as the Foundry direct keys or
252`disabled_features`, through the manifest. To vary one per user, return
253it from a bootstrap endpoint instead.
254
255If the add-in uses
256[your own Entra app registration](https://claude.com/docs/office-agents/outlook.md#use-your-own-entra-app-instead)
257through `graph_client_id`, you choose which keys it receives, and
258`entra_sso=1` is still required. Configure each one on that application
259as a directory extension attribute with an optional ID token claim, which
260reaches the add-in as `extn.<key>`, such as `extn.otlp_endpoint`. An
261attribute value holds at most 256 characters, so deliver a longer value,
262such as most `access_policies` values, through the manifest or a
263bootstrap endpoint.
264
265With either application, neither a claim nor a bootstrap response can set
266`entra_sso`, `graph_client_id`, `graph_cloud`, `entra_scope`, or
267`gateway_auth_source`, so keep them in the manifest. With Anthropic's
268application, `bootstrap_url` stays in the manifest too.
269
270At load, the add-in resolves configuration from three sources in order of
271precedence: a bootstrap endpoint, Microsoft Entra ID extension
272attributes, then manifest parameters. Per-user values override the
243273manifest defaults, so one deployed manifest can serve teams with
244274different settings.
245275
246
276
247277
248Configuration resolution at add-in load: bootstrap, Entra ID attributes, then manifest parameters.
278Configuration resolution at add-in load: bootstrap, Entra ID attributes, then manifest parameters. With Anthropic's Microsoft Entra application, Entra ID attributes carry only eight connection keys, not every configuration key.
249279
250280### Keep credentials out of the manifest URL query string
251281
from line 301
271301### Admin feature controls
272302
273303The `disabled_features` configuration key turns off individual add-in
274features for your users. It travels over the same three channels as every
275other key: manifest parameters (comma-separated), Entra ID extension
276attributes (comma-separated), or a bootstrap endpoint (JSON array), so it
277can apply org-wide from one manifest or vary per user.
304features for your users. Set it as a comma-separated manifest parameter to
305apply one list org-wide, or return it from a bootstrap endpoint as a JSON
306array to vary it per user.
278307
279308| Slug | Effect |
280309| - | - |
from line 727
698727connection until they log out and sign in again, as described in
699728[Change or update your gateway connection](#change-or-update-your-gateway-connection).
700729Until the setup wizard accepts this key, add `azure_base_url` to the
701generated manifest URL by hand, or deliver it per user through Microsoft
702Entra ID extension attributes or a bootstrap endpoint.
730generated manifest URL by hand, or deliver it per user through a bootstrap
731endpoint.
703732
704733The following manifest parameters configure this path.
705734
from line 768
739768connection until they log out and sign in again, as described in
740769[Change or update your gateway connection](#change-or-update-your-gateway-connection).
741770Until the setup wizard accepts this key, add `gcp_base_url` to the
742generated manifest URL by hand, or deliver it per user through Microsoft
743Entra ID extension attributes or a bootstrap endpoint.
771generated manifest URL by hand, or deliver it per user through a bootstrap
772endpoint.
744773
745774| Parameter | Value |
746775| - | - |
from line 1017
9881017
9891018## Why sign-in redirects through pivot.claude.ai
9901019
991During Google sign-in for Vertex AI, Anthropic sign-in, or Microsoft admin
992consent, your identity provider redirects the browser to
993`https://pivot.claude.ai/auth/callback`. Security reviewers sometimes ask
994whether this means access tokens for your cloud provider or mailbox pass
1020During Google sign-in for Vertex AI, MCP connector authorization, or
1021Microsoft admin consent, your identity provider redirects the browser to a
1022page on `pivot.claude.ai`. Security reviewers sometimes ask whether this
1023means access tokens for your cloud provider, connector, or mailbox pass
9951024through Anthropic's servers. They do not. This section explains what the
9961025redirect carries in each flow and why the page cannot obtain a token.
1026[Claude account sign-in](#claude-account-sign-in-uses-no-redirect) involves
1027no redirect.
9971028
9981029### OAuth authorization-code redirects
9991030
1000Google sign-in for Vertex AI and Anthropic sign-in use the OAuth 2.0
1001authorization-code grant and redirect to `pivot.claude.ai/auth/callback`.
1002MCP connector authorization uses the same grant with a dedicated
1031Google sign-in for Vertex AI uses the OAuth 2.0 authorization-code grant
1032and redirects to `pivot.claude.ai/auth/callback`. MCP connector
1033authorization uses the same grant with a dedicated
10031034`pivot.claude.ai/auth/gateway-callback` redirect. In each case the URL
10041035contains two query parameters:
10051036
from line 1046
10151046The token endpoint requires an additional secret that only the add-in
10161047running on your machine holds:
10171048
1018* **Anthropic sign-in and MCP connector authorization**: a Proof Key for
1019 Code Exchange (PKCE) verifier. The add-in generates a random verifier
1020 locally, sends only its SHA-256 hash to the identity provider when
1021 sign-in starts, and keeps the verifier in browser session storage. The
1022 token endpoint rejects any exchange that does not present the original
1023 verifier.
1049* **MCP connector authorization**: a Proof Key for Code Exchange (PKCE)
1050 verifier. The add-in generates a random verifier locally, sends only its
1051 SHA-256 hash to the identity provider when sign-in starts, and keeps the
1052 verifier in browser session storage. The token endpoint rejects any
1053 exchange that does not present the original verifier.
10241054* **Google sign-in for Vertex AI**: the `client_secret` belonging to the
10251055 Google OAuth client your organization created during setup. This value
10261056 is provisioned into the add-in's configuration on each user's machine
from line 1063
10331063a sign-in the attacker initiated.
10341064
10351065After the add-in exchanges the code, the resulting access and refresh
1036tokens are held in the browser's local storage inside the Office add-in
1037sandbox. The add-in presents the access token only to the inference or
1038MCP-proxy endpoint for your sign-in path, and presents the refresh token
1039only to the OAuth token endpoint. Each of these endpoints appears in the
1066tokens are held in browser storage inside the Office add-in sandbox. The
1067add-in presents the access token only to the inference endpoint or MCP
1068server it was issued for, and presents the refresh token only to the OAuth
1069token endpoint. Each of these endpoints appears in the
10401070[Network allowlist](#network-allowlist). These tokens never reach
10411071`pivot.claude.ai`.
10421072
from line 1079
10491079the callback page at `pivot.claude.ai` bridges the two contexts by
10501080displaying the code for you to paste back into the add-in.
10511081
1082### Claude account sign-in uses no redirect
1083
1084Signing in with a Claude account uses the OAuth 2.0 device authorization
1085grant, RFC 8628, instead of a redirect. The add-in requests a one-time
1086sign-in code from `claude.ai`, shows it in the task pane, and sends you to
1087`claude.ai` in your browser. It waits while you approve the sign-in there,
1088then obtains the access and refresh tokens directly from the `claude.ai`
1089token endpoint. During sign-in, no authorization code or token passes
1090through `pivot.claude.ai`, and there is nothing to paste back into the
1091add-in.
1092
10521093### Microsoft admin-consent redirects
10531094
10541095The Microsoft Graph consent link in
from line 1145
11041145 MCP connector the redirect to `pivot.claude.ai/auth/gateway-callback`
11051146 carries `code` and `state`. No `access_token` parameter appears.
11061147* The `POST` that exchanges the code goes to `oauth2.googleapis.com` for
1107 Vertex AI, to `claude.ai` for Anthropic sign-in, or to the connector
1108 gateway's own origin for an MCP connector, originates from the add-in
1109 frame, and includes the `code_verifier` or `client_secret` that never
1110 appeared in any request to `pivot.claude.ai`.
1148 Vertex AI or to the connector's authorization server for an MCP
1149 connector, originates from the add-in frame, and includes the
1150 `client_secret` or `code_verifier` that never appeared in any request to
1151 `pivot.claude.ai`.
1152* A Claude account sign-in produces requests from the add-in frame to
1153 `claude.ai/v1/oauth/device_authorization` and `claude.ai/v1/oauth/token`,
1154 and no request to `pivot.claude.ai/auth/callback`.
11111155* Microsoft Graph calls go directly to `graph.microsoft.com` with a
11121156 bearer token that was issued by `login.microsoftonline.com` and never
11131157 transited an Anthropic domain.