Integration

Outlook AI for meetings, calendar, and email

Speak AI plugs into Outlook for one-click meeting transcription, action-item extraction, and email-thread analysis. Add the bot to a calendar invite. Connect Microsoft 365 once. Or wire up Microsoft Graph directly. Action items push to your CRM, not your inbox.

Free 7-day trial. No credit card required. Works with Microsoft 365 Personal, Business, and Enterprise.
BotEmail Invite
GraphAPI + OAuth
100+Languages
Freeto Try

Trusted by 250,000+ people and teams

What you can do

Once Speak is wired into your Microsoft 365 stack, every meeting on your Outlook calendar gets transcribed and analyzed automatically. Sales teams log every Outlook-scheduled call into HubSpot or Salesforce. Researchers turn customer interviews into structured writeups. Operations teams push extracted action items into Outlook Tasks and Microsoft Teams channels.

Auto-join every Outlook meeting

Two paths. Add [email protected] as a guest on a single Outlook calendar event for the bot to join that one meeting. Or connect Microsoft 365 to Speak once for ongoing auto-coverage of every event on your calendar. Same bot, same output, no per-meeting setup either way.

Analyze Outlook email threads with Magic Prompt

Pull a full conversation from Outlook Mail through the Microsoft Graph API. Pipe the thread into Speak’s Magic Prompt to extract decisions, sentiment, blockers, owners, deadlines, or any custom rubric. Same prompt library that runs on call transcripts works on email text.

Push action items to Outlook Tasks or your CRM

After every meeting, Speak extracts action items, decisions, and owners. Send them where work happens: Outlook Tasks for personal follow-up, your CRM for deal records, Microsoft Teams channels for team awareness. Your inbox stays clean.

Search every Outlook meeting from Claude or ChatGPT

Speak’s official MCP server exposes 83 tools to AI assistants. Ask Claude to surface every Outlook meeting last quarter where Acme Corp asked about pricing, or pull verbatim quotes from research interviews tagged onboarding.

Set up in 3 steps

The fastest path takes 30 seconds: invite the bot by email. The auto-coverage path takes 2 minutes: connect Microsoft 365 in Speak. Both flow through the same Speak workspace.

Sign up for Speak AI

Create a free account at app.speakai.co. You get a 7-day trial with full access. No credit card needed. Once you are in, go to Settings > API and copy your API key.

Pick your integration path

Invite [email protected] to a meeting (no setup)

Open any Outlook calendar event with a meeting URL (Teams, Zoom, Webex, or Meet) and add [email protected] as an attendee. The bot accepts the invite and joins the meeting automatically. Zero in-app configuration. Works for one-off meetings without committing to calendar OAuth.

Capture or schedule a live meeting in-app

In Speak’s AI Meeting Assistant, click Capture Live Meeting to send the bot to a meeting that is already running, or Schedule Live Meeting to send it to one starting later. Paste the meeting URL and the bot handles the rest.

Connect Microsoft 365 calendar (auto-coverage)

For ongoing coverage of every meeting on your calendar without per-event invites, connect Microsoft 365 to Speak under Meeting Assistant > Calendar. Speak detects every event automatically and sends the bot. Approve scopes Calendars.Read and OnlineMeetings.Read.All.

Microsoft Graph email-thread analysis

For email pipelines, fetch a conversation through Microsoft Graph (/v1.0/me/messages?$filter=conversationId eq '...'), concatenate the message bodies, and POST to Speak as text media. Run any Magic Prompt against the result.

MCP for Claude and ChatGPT

Already have meetings in Speak? Connect Claude Desktop with npx @speakai/mcp-server init, or add the remote MCP server URL to Claude.ai or ChatGPT. Search the entire Outlook meeting library through conversation.

Subscribe to media.analyzed

Speak fires a signed webhook when transcription and AI analysis complete (usually within 60 seconds for a 10-minute call). Register your endpoint via POST /v1/webhook and act on transcripts as they land in your CRM, BI, or alerting system. Push action items to Outlook Tasks via Microsoft Graph in the same handler.

Real workflows, real results

Four production patterns Speak customers ship with Microsoft Outlook. Pick the one that fits your team and copy the recipe.







For sales, research, and ops teams · Outlook Calendar OAuth or email invite

Auto-join every Outlook calendar meeting

Two paths, same outcome. Easiest: add [email protected] as an attendee on the Outlook event. The bot accepts and joins. Auto-coverage: connect your Microsoft 365 calendar to Speak once and every event with a meeting URL gets the bot without any per-event invite.

Option A: Invite the bot by email (no setup)
# Manual: open the Outlook event with the meeting link.
# Click "Add attendees" and enter:
#     [email protected]
# Save the event. The bot accepts the invite and joins the meeting automatically.

# Same email works for Microsoft Teams, Zoom, Webex, and Google Meet events.

# Programmatic (Microsoft Graph) - add the bot as an attendee:
curl -X PATCH "https://graph.microsoft.com/v1.0/me/events/$EVENT_ID" 
  -H "Authorization: Bearer $GRAPH_TOKEN" 
  -H "Content-Type: application/json" 
  -d '{
    "attendees": [
      {
        "emailAddress": { "address": "[email protected]", "name": "Speak AI Notetaker" },
        "type": "required"
      }
    ]
  }'
Option B: Connect Microsoft 365 in Speak (auto-coverage)
# In Speak AI dashboard:
# 1. Go to Meeting Assistant -> Calendar
# 2. Click "Connect Microsoft 365"
# 3. Approve OAuth scopes:
#      Calendars.Read
#      OnlineMeetings.Read.All
# 4. Speak finds existing future Outlook events immediately
# 5. Bot joins your next scheduled meeting automatically

# Or use Capture Live Meeting / Schedule Live Meeting in the
# Meeting Assistant UI to send the bot to one specific meeting URL.
Option C: Schedule the bot for a single meeting via API






curl -X POST https://api.speakai.co/v1/meeting-assistant/events/schedule 
  -H "x-speakai-key: $SPEAK_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "title": "Acme Corp - Discovery Call",
    "meetingURL": "https://teams.microsoft.com/l/meetup-join/...",
    "meetingDate": "2026-05-15T16:00:00.000Z",
    "meetingLanguage": "en-US",
    "folderId": "507f1f77bcf86cd799439011"
  }'
// Call this when your CRM creates a meeting in Outlook + Teams.
async function scheduleSpeakBot({ title, meetingURL, scheduledAt, folderId }) {
  const r = await fetch(
    "https://api.speakai.co/v1/meeting-assistant/events/schedule",
    {
      method: "POST",
      headers: {
        "x-speakai-key": process.env.SPEAK_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        title,
        meetingURL,
        meetingDate: scheduledAt,
        meetingLanguage: "en-US",
        folderId,
      }),
    }
  );
  if (!r.ok) throw new Error(`Speak schedule failed: ${r.status}`);
  const { data } = await r.json();
  // Persist data.meetingAssistantEventId on the CRM activity record
  // so you can pause / resume / remove the assistant later.
  return data.meetingAssistantEventId;
}
import os, requests

def schedule_speak_bot(title: str, meeting_url: str, scheduled_at: str, folder_id: str | None = None):
    r = requests.post(
        "https://api.speakai.co/v1/meeting-assistant/events/schedule",
        headers={
            "x-speakai-key": os.environ["SPEAK_API_KEY"],
            "Content-Type": "application/json",
        },
        json={
            "title": title,
            "meetingURL": meeting_url,
            "meetingDate": scheduled_at,
            "meetingLanguage": "en-US",
            "folderId": folder_id,
        },
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["data"]["meetingAssistantEventId"]

Pause/resume/remove via POST /v1/meeting-assistant/events/{pause|resume|remove} with {meetingAssistantEventId}. Use this when CRM stage transitions revoke or extend bot coverage.

For RevOps and CX teams · Microsoft Graph Mail + Speak Magic Prompt

Analyze Outlook email threads with Magic Prompt

Pull the full conversation from Outlook Mail through Microsoft Graph (/v1.0/me/messages with conversationId filter). Concatenate the message bodies, POST to Speak as text media, then run any Magic Prompt to extract decisions, owners, deadlines, sentiment, or your custom rubric.

Fetch the thread + run a Magic Prompt




// 1. Get every message in the conversation from Microsoft Graph.
const graphRes = await fetch(
  "https://graph.microsoft.com/v1.0/me/messages?" + new URLSearchParams({
    $filter: `conversationId eq '${conversationId}'`,
    $select: "subject,from,receivedDateTime,body",
    $orderby: "receivedDateTime asc",
  }),
  { headers: { Authorization: `Bearer ${process.env.GRAPH_TOKEN}` } }
).then(r => r.json());

// 2. Strip HTML and concatenate
const threadText = graphRes.value.map(m => {
  const sender = m.from?.emailAddress?.address || "unknown";
  const when = m.receivedDateTime;
  const html = m.body?.content || "";
  // Strip HTML tags (use a real parser like JSDOM or Cheerio in production)
  const plain = html.replace(/<[^>]+>/g, "").replace(/s+/g, " ").trim();
  return `From: ${sender}nWhen: ${when}nn${plain}`;
}).join("nn---nn");

// 3. Upload thread as a Speak text media
const upload = await fetch("https://api.speakai.co/v1/media/upload", {
  method: "POST",
  headers: {
    "x-speakai-key": process.env.SPEAK_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: graphRes.value[0]?.subject || `Thread ${conversationId}`,
    text: threadText,
    mediaType: "text",
    tags: "outlook,email-thread",
  }),
}).then(r => r.json());

const mediaId = upload.data.mediaId;

// 4. Fire a Magic Prompt against the thread
await fetch("https://api.speakai.co/v1/prompt/", {
  method: "POST",
  headers: {
    "x-speakai-key": process.env.SPEAK_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    mediaIds: [mediaId],
    prompt: "Extract decisions, owners, and deadlines from this email thread. Return JSON.",
    isStream: false,
    isIndividualPrompt: true,
  }),
});

// Poll /v1/prompt/messages?mediaIds=$mediaId&pageSize=1 until state === "completed"
import os, re, requests

def analyze_outlook_thread(conversation_id: str) -> str:
    # 1. Fetch every message in the conversation
    graph = requests.get(
        "https://graph.microsoft.com/v1.0/me/messages",
        params={
            "$filter": f"conversationId eq '{conversation_id}'",
            "$select": "subject,from,receivedDateTime,body",
            "$orderby": "receivedDateTime asc",
        },
        headers={"Authorization": f"Bearer {os.environ['GRAPH_TOKEN']}"},
        timeout=30,
    ).json()

    def strip_html(s: str) -> str:
        return re.sub(r"<[^>]+>", "", s or "").strip()

    thread_text = "nn---nn".join(
        f"From: {m.get('from', {}).get('emailAddress', {}).get('address', 'unknown')}n"
        f"When: {m.get('receivedDateTime')}nn"
        f"{strip_html(m.get('body', {}).get('content', ''))}"
        for m in graph.get("value", [])
    )

    # 2. Upload to Speak as text media
    upload = requests.post(
        "https://api.speakai.co/v1/media/upload",
        headers={"x-speakai-key": os.environ["SPEAK_API_KEY"]},
        json={
            "name": graph["value"][0].get("subject") if graph.get("value") else f"Thread {conversation_id}",
            "text": thread_text,
            "mediaType": "text",
            "tags": "outlook,email-thread",
        },
        timeout=30,
    ).json()
    media_id = upload["data"]["mediaId"]

    # 3. Run Magic Prompt
    requests.post(
        "https://api.speakai.co/v1/prompt/",
        headers={"x-speakai-key": os.environ["SPEAK_API_KEY"]},
        json={
            "mediaIds": [media_id],
            "prompt": "Extract decisions, owners, and deadlines from this email thread. Return JSON.",
            "isStream": False,
            "isIndividualPrompt": True,
        },
        timeout=15,
    )
    return media_id

Required Microsoft Graph scopes: Mail.Read (delegated) for personal mailboxes, Mail.Read.Shared for shared mailboxes. Strip HTML server-side with a real parser (JSDOM, Cheerio, BeautifulSoup) before sending to Speak.

For ops and EAs · Microsoft Graph To Do API

Push extracted action items into Outlook Tasks

After every meeting, Speak’s Magic Prompt extracts action items, owners, and deadlines. Forward them into Outlook Tasks (Microsoft To Do) so the right person gets a personal task with due date, not a buried item in a meeting summary email.

Webhook handler: Speak insight to Outlook Tasks




import express from "express";
const app = express();
app.use(express.json());

app.post("/speak/outlook-tasks", async (req, res) => {
  // Speak posts {eventType, state, mediaId} -- flat (verified 2026-05-07).
  const { eventType, state, mediaId } = req.body;
  if (eventType !== "media.analyzed" || state !== "processed") return res.sendStatus(204);
  res.sendStatus(202);

  // 1. Fire a Magic Prompt to extract action items as JSON
  const headers = { "x-speakai-key": process.env.SPEAK_API_KEY };
  await fetch("https://api.speakai.co/v1/prompt/", {
    method: "POST",
    headers: { ...headers, "Content-Type": "application/json" },
    body: JSON.stringify({
      mediaIds: [mediaId],
      prompt: 'Extract action items as JSON. Each item: {"text": "...", "owner_email": "...", "due_date": "YYYY-MM-DD"}',
      isStream: false,
      isIndividualPrompt: true,
    }),
  });

  // 2. Poll for the completed answer (typical 2-3s)
  let actionItems = [];
  for (let i = 0; i < 20; i++) {
    await new Promise(r => setTimeout(r, 1000));
    const r = await fetch(
      `https://api.speakai.co/v1/prompt/messages?mediaIds=${mediaId}&pageSize=1`,
      { headers }
    );
    const j = await r.json();
    const msg = j?.data?.history?.[0]?.messages?.[0];
    if (msg?.state === "completed") {
      try { actionItems = JSON.parse(msg.answer); } catch { actionItems = []; }
      break;
    }
  }

  // 3. Create one Outlook Task per action item via Microsoft Graph To Do
  for (const item of actionItems) {
    await fetch(
      "https://graph.microsoft.com/v1.0/me/todo/lists/tasks/tasks",
      {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.GRAPH_TOKEN}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          title: item.text,
          body: {
            content: `From Speak meeting: https://app.speakai.co/media/${mediaId}`,
            contentType: "text",
          },
          dueDateTime: item.due_date ? {
            dateTime: `${item.due_date}T17:00:00.000`,
            timeZone: "UTC",
          } : undefined,
        }),
      }
    );
  }
});

app.listen(3000);
import asyncio, json, os, time, requests
from fastapi import FastAPI, Request

app = FastAPI()

@app.post("/speak/outlook-tasks")
async def hook(req: Request):
    body = await req.json()
    if body.get("eventType") != "media.analyzed" or body.get("state") != "processed":
        return {"ok": True}
    media_id = body["mediaId"]

    headers = {"x-speakai-key": os.environ["SPEAK_API_KEY"]}

    # 1. Fire a Magic Prompt
    requests.post(
        "https://api.speakai.co/v1/prompt/",
        headers={**headers, "Content-Type": "application/json"},
        json={
            "mediaIds": [media_id],
            "prompt": 'Extract action items as JSON. Each item: {"text": "...", "owner_email": "...", "due_date": "YYYY-MM-DD"}',
            "isStream": False,
            "isIndividualPrompt": True,
        },
        timeout=15,
    )

    # 2. Poll for completion
    action_items = []
    for _ in range(20):
        time.sleep(1)
        r = requests.get(
            "https://api.speakai.co/v1/prompt/messages",
            params={"mediaIds": media_id, "pageSize": 1},
            headers=headers, timeout=15,
        )
        history = r.json().get("data", {}).get("history", [])
        msg = history[0]["messages"][0] if history and history[0].get("messages") else None
        if msg and msg.get("state") == "completed":
            try:
                action_items = json.loads(msg.get("answer", "[]"))
            except Exception:
                action_items = []
            break

    # 3. Create one Outlook Task per action item
    for item in action_items:
        requests.post(
            "https://graph.microsoft.com/v1.0/me/todo/lists/tasks/tasks",
            headers={
                "Authorization": f"Bearer {os.environ['GRAPH_TOKEN']}",
                "Content-Type": "application/json",
            },
            json={
                "title": item.get("text", ""),
                "body": {
                    "content": f"From Speak meeting: https://app.speakai.co/media/{media_id}",
                    "contentType": "text",
                },
                "dueDateTime": ({
                    "dateTime": f"{item['due_date']}T17:00:00.000",
                    "timeZone": "UTC",
                } if item.get("due_date") else None),
            },
            timeout=15,
        )
    return {"ok": True}

Required Microsoft Graph scope: Tasks.ReadWrite (delegated) for personal task lists, or Tasks.ReadWrite.Shared for shared lists. Use /me/todo/lists/{listId}/tasks to target a specific list other than the default.

For analysts and team leads · Natural language

Query every Outlook meeting from Claude or ChatGPT

Connect Speak’s official MCP server to Claude or ChatGPT and your team queries the entire Outlook meeting library through conversation. Pull verbatim quotes, score discovery completeness, surface objection patterns, all without leaving Claude or ChatGPT.

1. Install the MCP server




# Claude Desktop / Claude Code (auto-detects your installation)
npx @speakai/mcp-server init

# Paste your Speak API key when prompted. Setup takes about 2 minutes.
# Claude.ai (web) and ChatGPT MCP connector
# Settings > Integrations > Add MCP Server
# Remote URL:    https://api.speakai.co/v1/mcp
# Auth header:   x-speakai-key: YOUR_SPEAK_API_KEY

# Verify the connection responds:
curl -s https://api.speakai.co/v1/mcp 
  -H "x-speakai-key: $SPEAK_API_KEY" 
  -H "Accept: application/json"

2. Example prompts your team can use today:

  • “Show every Outlook meeting last week with a senior decision-maker. Group by deal stage.”
  • “Summarize the 3 longest Outlook meetings with Acme Corp from the last 60 days. Pull all action items.”
  • “Pull verbatim quotes from Outlook meetings tagged discovery where customers asked about onboarding.”
  • “Compare discovery completeness across our top 3 SDRs. Use this week’s Outlook calls. Score each on a 0-10 rubric.”
  • “Find the Outlook meeting from August 14 where the CTO joined and pull the action items into a Notion-ready writeup.”

Works with Claude.ai, Claude Desktop, Claude Code, and ChatGPT MCP connectors. View MCP server →

Why Speak AI + Microsoft Outlook

Outlook handles your calendar, email, and tasks. Microsoft Copilot covers in-app suggestions for paid Microsoft 365 tiers. Speak handles the deeper analysis layer that lives outside Microsoft: cross-meeting search, custom Magic Prompts, CRM push, multi-source ingest, and shareable embeds.

Multi-source ingest, not just Outlook

Outlook is one of dozens of inputs. The same Speak workspace ingests Zoom, Microsoft Teams, Google Meet, Webex, Twilio, Loom, OneDrive, Dropbox, podcast audio, and direct file uploads. One library, every conversation across every Microsoft and non-Microsoft tool.

Custom Magic Prompts, not fixed templates

Microsoft Copilot ships fixed summary templates and only on Microsoft 365 Business Standard and above. Speak’s Magic Prompt runs your prompts on every meeting and email thread: discovery checklist scoring, competitor mention extraction, MEDDIC-stage detection, whatever your team needs. Save prompts once, run them on every recording forever.

MCP-native for Claude and ChatGPT

The official @speakai/mcp-server exposes 83 tools to AI assistants. Your team queries the Outlook meeting library in plain English from Claude Desktop or ChatGPT, without exporting transcripts to other tools.

Shareable embeds, not just internal dashboards

Every Speak transcript and analysis can be shared as a public or private embed. Send a meeting summary to a customer’s stakeholder without granting them dashboard access or exporting a PDF.

Teams trust Speak AI for their most important calls

★★★★★
4.9 on G2

“Speak AI has been instrumental in transforming how we handle qualitative data. The transcription accuracy is impressive, and the NLP insights save us hours of manual analysis.”

Research Director | Consulting Firm

“We switched from Otter.ai and the depth of analysis is on another level. Sentiment scoring, keyword extraction, and theme detection all happen automatically.”

Product Manager | SaaS Company

“The ability to search across all our customer calls and pull specific moments is a game-changer for our support team.”

Head of CX | Enterprise Tech

How to use Speak AI with Microsoft Outlook for meeting and email AI

Outlook is the connective tissue of every Microsoft 365 organization. Sales reps live in their Outlook calendar. Account managers live in their Outlook inbox. Operations teams live in Outlook Tasks. Every customer conversation passes through Outlook in some form, and every one of those conversations is a potential source of business intelligence. Speak AI is what turns those conversations into structured, searchable, shareable data without forcing a tool change.

Where Speak fits in the Outlook workflow

Speak runs after the meeting or email lands. Outlook handles the calendar invite, the meeting URL, the inbox, and the task list. Microsoft Copilot covers in-app suggestions for paid Microsoft 365 tiers. Speak handles transcription in 100+ languages, AI analysis with custom prompts, search across the full library, and downstream automation into your CRM and BI tools. The handoff happens via the calendar bot (email invite or OAuth), Microsoft Graph for email-thread retrieval, or Microsoft Graph To Do for action-item push.

Speak vs Microsoft Copilot in Outlook

Microsoft Copilot in Outlook covers in-app summaries, draft suggestions, and meeting recaps. It is bundled with Microsoft 365 Business Standard, Business Premium, and Enterprise tiers. It is well-suited if you only need a Microsoft-internal summary delivered to your inbox.

Speak is a different product. Speak ingests Outlook calendar meetings alongside Zoom, Teams, Meet, Webex, file uploads, podcasts, and embed recorder submissions, then runs custom analysis (your Magic Prompts, your tags, your team’s vocabulary), exposes everything via MCP for Claude and ChatGPT, and ships shareable embeds. Most teams using both let Copilot handle in-Outlook summaries and use Speak for the deeper post-meeting analysis layer plus cross-platform search.

Authentication and Microsoft Graph scopes

The calendar bot path requires read-only Microsoft Graph Calendar scopes (Calendars.Read, OnlineMeetings.Read.All). Speak does not request meeting management or recording management scopes. The email-thread analysis path requires Mail.Read (delegated) for personal mailboxes or Mail.Read.Shared for shared mailboxes. The action-items-to-tasks path requires Tasks.ReadWrite. Microsoft 365 admins can pre-approve Speak via the Entra ID admin consent flow for org-wide rollouts.

How does Outlook AI work?

Three production paths. Email invite: add [email protected] as an attendee on a calendar event; bot joins the meeting. OAuth auto-coverage: connect Microsoft 365 once; bot joins every meeting on your calendar going forward. API per-meeting schedule: POST a meeting URL to Speak’s /v1/meeting-assistant/events/schedule from your CRM or scheduling tool. All three deliver the same output: full transcript, AI summary, sentiment, action items, plus structured CRM push via webhook.

Can I use Outlook AI tools to summarize emails?

Yes. Speak processes Outlook email threads via Microsoft Graph (/v1.0/me/messages?$filter=conversationId eq '...'). Concatenate the message bodies, POST to Speak as text media, and run any Magic Prompt against the result. Same prompt library that runs on call transcripts works on email text. Common patterns: extract decisions, surface blockers, score sentiment per sender, identify owners and deadlines.

Does Outlook AI work with Microsoft Teams?

Yes. Speak covers the full Microsoft stack. Calendar sync through Outlook triggers the bot on Teams meetings just as it does on any other calendar event. Transcripts, summaries, and CRM pushes work identically whether the meeting runs in Teams, Zoom, Google Meet, or Webex. See Microsoft Teams AI for the Teams-specific recipes.

Use cases by role

Sales and RevOps teams use Speak with Outlook to auto-log every calendar-scheduled call into HubSpot, Salesforce, or Zoho. Magic Prompts score discovery completeness, surface objections, and extract competitor mentions. Action items push directly to the rep’s Outlook Tasks. See Speak AI for sales teams.

Customer support and CX teams capture every Teams or Zoom call scheduled through Outlook and route by sentiment. Cancellation language fires a manager alert. Multilingual queues work without per-language setup since Speak supports 100+ languages with auto-detection.

Operations and EA teams turn Outlook into the source of truth for action items. Every meeting Speak transcribes generates structured to-do items routed to the right owner via Microsoft Graph To Do, with due dates pulled from the transcript. See Speak AI for consulting firms.

Customer research teams bring Outlook-scheduled interview calls into the same workspace as their Zoom and embed recorder sessions. Code themes across the entire library, ask Claude for verbatim quotes, build research deliverables in hours instead of weeks. See Speak AI for qualitative researchers.

Frequently asked questions

What is the easiest way to get the Speak bot into an Outlook meeting?

Add [email protected] as an attendee on the Outlook calendar event. The bot accepts the invite and joins the meeting automatically. No in-app configuration, no OAuth, no API call. The same email works for Microsoft Teams, Zoom, Webex, and Google Meet events too. For ongoing auto-coverage of every meeting on your calendar, connect Microsoft 365 to Speak under Meeting Assistant.

What is AI for Outlook?

AI for Outlook means Speak AI connects to your Microsoft 365 calendar and Outlook mail and produces transcripts, summaries, action items, and sentiment analysis automatically. You get structured CRM-ready output delivered in minutes after every meeting ends, plus the ability to run any custom Magic Prompt against email threads and meeting transcripts.

What are the best AI tools for Outlook?

Speak AI is purpose-built for the Microsoft 365 ecosystem. It covers Outlook calendar sync, Microsoft Teams meetings via the same calendar trigger, and email-thread analysis through Microsoft Graph. Unlike Microsoft Copilot, Speak ingests Outlook alongside Zoom, Meet, Webex, and Twilio in the same workspace, and exposes the analysis layer via MCP for Claude and ChatGPT. Rated 4.9 on G2.

Can I use Outlook AI tools to summarize emails?

Yes. Pull a conversation through Microsoft Graph (/v1.0/me/messages?$filter=conversationId eq '...'), concatenate the message bodies, and POST to Speak as text media (mediaType: text). Run any Magic Prompt against the result to extract decisions, sentiment, owners, deadlines, blockers, or your custom rubric.

How do I connect AI to my Outlook calendar?

Two paths. Easy: invite [email protected] as an attendee on a single event. Auto-coverage: open Speak, go to Meeting Assistant, click Connect Microsoft 365, and approve the OAuth scopes (Calendars.Read, OnlineMeetings.Read.All). Speak finds existing future events immediately and the bot joins your next meeting automatically.

Does Outlook AI work with Microsoft Teams?

Yes. Calendar sync through Outlook triggers the bot on Teams meetings just as it does on any other calendar event. Transcripts, summaries, and CRM pushes work identically whether the meeting runs in Teams, Zoom, Google Meet, or Webex. See the dedicated Microsoft Teams AI page for Teams-specific webhook recipes and channel posting patterns.

Start using Speak AI with Outlook today

83 analysis tools. 100+ languages. Calendar bot, Microsoft Graph email and tasks, MCP-native for Claude and ChatGPT. Same workspace as your Zoom, Teams, Meet, and Webex calls.

Try Speak AI free

Create your account, invite the bot to your next Outlook meeting (or connect Microsoft 365), and the transcript lands in your Speak workspace automatically. Full access for 7 days. No credit card required.

Book a demo

For sales teams evaluating Speak across an entire org, book a demo with Speak’s team. We will walk through the calendar bot, Microsoft Graph integration, and CRM push live with your Outlook account.