← Blog

How to Integrate Claude Into Outlook (Step by Step)

2026-09-09 · 5 min read · SubToAPI Team

Integrating Claude into Outlook means giving your inbox the ability to summarize threads, draft replies, triage messages, or extract action items — all without leaving the app you already live in. There's no official Claude add-in for Outlook, so the integration has to happen through one of three paths: Power Automate flows, a custom Office Add-in (VBA or Office.js), or a lightweight middleware layer that calls an API and returns text to Outlook.

This guide walks through each method, what it takes to set up, and where the friction usually shows up — namely, authentication and API access, which is the part most tutorials skip.

Why Outlook Doesn't Have Native Claude Support

Outlook's extensibility model is built for Microsoft's own Copilot stack and for third-party add-ins registered through the Microsoft AppSource or sideloaded manifests. Anthropic doesn't publish an Outlook add-in, so any Claude integration is something you build or install from a third party. That's not a dealbreaker — it just means you need three pieces:

  1. A way to trigger the AI action (a button, a rule, a flow)
  2. A way to call Claude with the email content
  3. A way to get the response back into the email (insert, reply, or log)

The hard part is usually step 2: getting a stable, authenticated API endpoint that doesn't require you to manage raw Anthropic credentials inside a Power Automate connector or VBA script.

Method 1: Power Automate + HTTP Action

If your organization already uses Microsoft 365, Power Automate is the fastest path to a working integration with zero code inside Outlook itself.

Setup:

  1. Create a flow triggered by "When a new email arrives" (or a manual trigger for testing).
  2. Add a Compose action to grab the email body, subject, and sender.
  3. Add an HTTP action that POSTs to your Claude-backed API endpoint.
  4. Parse the JSON response and use Reply to email or Create draft to insert the output.

Example HTTP action body when calling an API like SubToAPI, which exposes Claude through a standard /v1/messages endpoint:

{
  "model": "claude-sonnet-4",
  "max_tokens": 400,
  "messages": [
    { "role": "user", "content": "Summarize this email in 3 bullet points and suggest one reply:\n\n@{triggerBody()?['body']}" }
  ]
}

Headers:

Authorization: Bearer <your API key>
Content-Type: application/json

Power Automate flows are ideal for rule-based automation — auto-summarizing long threads, flagging urgent emails, or drafting first-pass replies to common requests. They're less suited to interactive, in-the-moment drafting, which is where an add-in does better.

Method 2: A Custom Office Add-in (Office.js)

For an in-Outlook button that a user clicks while reading or composing an email, you need an Office Add-in. This gives you a task pane inside Outlook where the AI response appears directly next to the message.

Minimal flow inside the add-in's JavaScript:

Office.onReady(() => {
  document.getElementById("summarize").onclick = summarizeEmail;
});

async function summarizeEmail() {
  const item = Office.context.mailbox.item;
  item.body.getAsync("text", async (result) => {
    const emailText = result.value;

    const response = await fetch("https://api.subtoapi.app/v1/messages", {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${SUBTOAPI_KEY}`,
        "Content-Type": "application/json"
      },
      body: JSON.stringify({
        model: "claude-sonnet-4",
        max_tokens: 300,
        messages: [{ role: "user", content: `Summarize this email:\n\n${emailText}` }]
      })
    });

    const data = await response.json();
    document.getElementById("output").innerText = data.content[0].text;
  });
}

You'll need a manifest XML file to register the add-in and sideload it for testing (Insert > Add-ins > My Add-ins > Upload My Add-in). For team-wide deployment, it goes through the Microsoft 365 admin center.

This is the most flexible method — you control the UI, the prompt, and what happens with the output (insert into reply, copy to clipboard, log to a CRM) — but it's also the most engineering-heavy.

Method 3: VBA Macro (Desktop Outlook Only)

If you're on classic desktop Outlook and want something quick without publishing an add-in, a VBA macro can call an HTTP endpoint directly using WinHttpRequest.

Sub SummarizeWithClaude()
    Dim http As Object
    Dim mail As Outlook.MailItem
    Set mail = Application.ActiveExplorer.Selection.Item(1)
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    Dim body As String
    body = "{""model"":""claude-sonnet-4"",""max_tokens"":300,""messages"":[{""role"":""user"",""content"":""Summarize: " & Replace(mail.Body, """", "'") & """}]}"

    http.Open "POST", "https://api.subtoapi.app/v1/messages", False
    http.SetRequestHeader "Authorization", "Bearer " & Environ("SUBTOAPI_KEY")
    http.SetRequestHeader "Content-Type", "application/json"
    http.Send body

    MsgBox http.ResponseText
End Sub

This is the fastest way to prototype but it's fragile — string-escaping email bodies manually is error-prone, and VBA macros don't survive well across environments. Treat it as a proof of concept before moving to a proper add-in.

The Authentication Problem

Every one of these methods needs a stable way to call Claude over HTTPS with a normal API key — not a browser session, not an OAuth dance tied to a chat interface. If you already pay for Claude access, the practical option is to put a thin API layer in front of it rather than provisioning separate Anthropic API billing for a script that runs a few times a day.

This is exactly what SubToAPI is for: it turns your existing Claude subscription into a standard HTTPS API with sub_live_... keys, streaming, tool use, and usage metadata. You generate a key at /signup, point Power Automate, your Office.js add-in, or your VBA macro at https://api.subtoapi.app/v1/messages, and you're done — no separate Anthropic account plumbing, and it works the same way across all three integration methods above. Check /docs/quickstart for a first request and /docs/messages for the full request schema.

Choosing the Right Method

Start with Power Automate if you want something running today. Move to an Office.js add-in once you know exactly what prompts and outputs your team actually uses.

Questions

Does Claude have an official Outlook add-in? No. Anthropic doesn't publish one, so integration requires Power Automate, a custom Office Add-in, or a script that calls an API endpoint.

Can I use my Claude subscription instead of the Anthropic API for this? Yes — a service like SubToAPI exposes your existing Claude access as a standard HTTPS API, so you don't need separate API billing just to automate Outlook.

Is Power Automate or a custom add-in better for Outlook + Claude? Power Automate is faster to set up for background automation like summarizing incoming mail; a custom Office.js add-in is better if you want an in-app button users click while composing or reading.

Turn your Claude access into an HTTPS API

SubToAPI gives you application API keys, streaming, tool use and usage insights on top of your existing Claude access — set up in minutes.

Start free  Read the quickstart →