Integration

Webex AI note taker and meeting transcription

Speak AI joins your Webex calls, captures every word in 100+ languages, and turns the recording into a structured CRM entry. Invite the bot by email or connect Google Calendar or Microsoft 365 for auto-coverage. Push meeting summaries to your CRM via webhook. Production-ready in under 10 minutes.

Free 7-day trial. No credit card required. SOC 2 + GDPR-compliant. HIPAA-eligible plans available.
BotEmail Invite
SOC 2+ GDPR
100+Languages
4.9G2 Score

Trusted by 250,000+ people and teams

What you can do

Once Webex calls flow into Speak AI, every meeting becomes searchable, analyzable, and shareable. Sales teams log every Webex call as a CRM activity. Support teams route by sentiment to the right channel. Research teams turn customer interviews into structured Notion writeups.

Auto-join every Webex call

Two paths. Add [email protected] as an attendee on the calendar event with the Webex meeting URL and the bot joins automatically. Or connect Google Calendar or Microsoft 365 to Speak once for ongoing auto-coverage of every event with a Webex URL. No per-meeting setup either way.

Speaker-labeled transcript in 100+ languages

Auto-detected language. Typical processing: under 2 minutes per hour of audio. Document and sentence-level VADER sentiment scoring. Speaker diarization across the full call. Output is editable, exportable to DOCX/SRT/PDF/JSON, and queryable through the Speak app.

Post AI summaries to Webex spaces

Use the Webex Messaging API to drop Adaptive Cards with the meeting summary, sentiment chip, and a link back to Speak directly into the relevant Webex space. Branch by tag, folder, or sentiment threshold so each team only sees relevant meetings.

One-click push to HubSpot, Salesforce, or Zoho

Verified webhook recipe: receive Speak’s media.analyzed event, fetch the insight, create a CRM activity. Same pattern across HubSpot Meetings, Salesforce Tasks, and Zoho Calls. Source-tagged so reports can split Webex vs Zoom vs Meet.

Set up in 3 steps

The fastest path takes 30 seconds: invite the bot by email. Auto-coverage takes 2 minutes: connect your Google Calendar or Microsoft 365. Webex space posting takes 5 minutes: create a Webex bot and configure the Messaging API.

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 the calendar event that contains the Webex meeting URL and add [email protected] as an attendee. The bot accepts the invite and joins the Webex call automatically. Zero in-app configuration. The same email works for Zoom, Teams, and Google Meet events too.

Capture or schedule a live meeting in-app

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

Auto-coverage via Google Calendar or Microsoft 365

For ongoing coverage of every Webex meeting on your calendar, connect Google Calendar or Microsoft 365 in Speak under Meeting Assistant > Calendar. Speak finds calendar events that contain a Webex meeting URL and sends the bot automatically. Note: Webex auto-coverage works through your calendar OAuth (Google or Microsoft 365), not through a Webex OAuth. The trigger is the Webex URL on the calendar event, not a native Webex connection.

Webex space posting via Messaging API

Go to developer.webex.com, create a bot under My Webex Apps, copy the bot access token, and invite the bot to your target Webex space. After each recording, POST an Adaptive Card to https://webexapis.com/v1/messages with your bot token. Full recipe in tab 2 below.

MCP for Claude and ChatGPT

Already have Webex calls in Speak? Connect Claude Desktop with npx @speakai/mcp-server init, or add the remote MCP URL to Claude.ai or ChatGPT. Search the entire Webex 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, Webex space, or BI tooling.

Real workflows, real results

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







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

Auto-join every Webex meeting

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

Option A: Invite the bot by email (no setup)
# Manual: open the calendar event (Outlook, Google Calendar, etc.) that contains the Webex meeting link.
# Click "Add attendees" and enter:
#     [email protected]
# Save the event. The bot accepts the invite and joins the Webex call automatically.

# Programmatic (Google Calendar API) - add the bot as an attendee:
curl -X PATCH "https://www.googleapis.com/calendar/v3/calendars/primary/events/$EVENT_ID" \
  -H "Authorization: Bearer $GCAL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attendees": [
      { "email": "[email protected]", "displayName": "Speak AI Notetaker" }
    ]
  }'
Option B: Connect your calendar in Speak (auto-coverage)
# In Speak AI dashboard:
# 1. Go to Meeting Assistant -> Calendar
# 2. Click "Connect Google Calendar" or "Connect Microsoft 365"
# 3. Approve the OAuth scopes when prompted
# 4. Speak scans upcoming calendar events for Webex meeting URLs
# 5. Bot joins every Webex call that appears on your connected calendar automatically

# Note: auto-coverage works through your calendar OAuth (Google or Microsoft 365),
# not a native Webex OAuth. The Webex URL on the calendar event is the trigger.
Option C: Schedule the bot for a single Webex 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 - Demo Call",
    "meetingURL": "https://acme.webex.com/meet/acme-team",
    "meetingDate": "2026-05-15T16:00:00.000Z",
    "meetingLanguage": "en-US",
    "folderId": "507f1f77bcf86cd799439011"
  }'
// Call this when your CRM creates a Webex meeting.
async function scheduleSpeakBot({ title, webexURL, 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: webexURL,
        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 for pause / resume / remove later.
  return data.meetingAssistantEventId;
}
import os, requests

def schedule_speak_bot(title: str, webex_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": webex_url,
            "meetingDate": scheduled_at,
            "meetingLanguage": "en-US",
            "folderId": folder_id,
        },
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["data"]["meetingAssistantEventId"]

Pause/resume/remove the bot via POST /v1/meeting-assistant/events/{pause|resume|remove} with {meetingAssistantEventId}. Works with Webex Meetings, Webex Suite, and Webex App.

For ops and team leads · Webex Messaging API + Adaptive Cards

Post AI summaries to a Webex space automatically

Create a Webex bot at developer.webex.com, invite it to your target space, and subscribe Speak’s media.analyzed webhook to your handler. After every recording, fetch the insight from Speak, build an Adaptive Card with the summary and sentiment, and POST to https://webexapis.com/v1/messages with your bot token. Branch by folder, tag, or sentiment so each team sees relevant meetings.

1. Create a Webex bot and get your bot token
# 1. Go to https://developer.webex.com
# 2. Click "My Webex Apps" -> "Create a New App" -> "Create a Bot"
# 3. Name: "Speak AI Notetaker", Bot Username: speakai-notetaker
# 4. Click "Add Bot" and copy the Bot Access Token
# 5. Store as WEBEX_BOT_TOKEN in your handler's .env
#
# 6. Invite the bot to the target Webex space:
#    In Webex App: open the space -> Add People -> search for [email protected]
#
# 7. Find the space's roomId:
curl https://webexapis.com/v1/rooms \
  -H "Authorization: Bearer $WEBEX_BOT_TOKEN"
# Copy the id from the room you invited the bot to. Store as WEBEX_ROOM_ID.
2. Register Speak’s media.analyzed webhook
curl -X POST https://api.speakai.co/v1/webhook \
  -H "x-speakai-key: $SPEAK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "callbackUrl": "https://your-app.example.com/speak/webex-space",
    "events": ["media.analyzed"],
    "description": "Forward Speak insights to Webex space"
  }'
3. Forward Adaptive Cards to the Webex space




// Speak posts a thin notification: { eventType, state, mediaId } (verified 2026-05-07).
import express from "express";
const app = express();
app.use(express.json());

app.post("/speak/webex-space", async (req, res) => {
  const { eventType, state, mediaId } = req.body;
  if (eventType !== "media.analyzed" || state !== "processed") return res.sendStatus(204);
  res.sendStatus(202);

  // 1. Fetch full insight from Speak
  const insight = await fetch(
    `https://api.speakai.co/v1/media/insight/${mediaId}`,
    { headers: { "x-speakai-key": process.env.SPEAK_API_KEY } }
  ).then(r => r.json());

  const media = insight.data;
  const compound = media.sentiment?.[0]?.document?.Compound ?? 0;
  const sentiment = compound > 10 ? "Positive"
                  : compound < -10 ? "Negative" : "Neutral";

  // 2. Build a Webex Adaptive Card (Buttons and Cards / Adaptive Cards 1.2)
  const message = {
    roomId: process.env.WEBEX_ROOM_ID,
    markdown: `**${media.name}** - Sentiment: ${sentiment}`,
    attachments: [{
      contentType: "application/vnd.microsoft.card.adaptive",
      content: {
        $schema: "http://adaptivecards.io/schemas/adaptive-card.json",
        type: "AdaptiveCard",
        version: "1.2",
        body: [
          { type: "TextBlock", size: "Large", weight: "Bolder", text: media.name },
          { type: "TextBlock", text: `Sentiment: ${sentiment} (Compound ${compound})`, wrap: true },
          { type: "TextBlock",
            text: `Duration: ${Math.round(media.duration?.inSecond / 60)} min`,
            isSubtle: true, spacing: "None" },
        ],
        actions: [{
          type: "Action.OpenUrl",
          title: "Open in Speak",
          url: `https://app.speakai.co/media/${mediaId}`,
        }],
      },
    }],
  };

  // 3. POST to the Webex Messaging API
  await fetch("https://webexapis.com/v1/messages", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.WEBEX_BOT_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(message),
  });
});

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

app = FastAPI()

@app.post("/speak/webex-space")
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"]

    insight = requests.get(
        f"https://api.speakai.co/v1/media/insight/{media_id}",
        headers={"x-speakai-key": os.environ["SPEAK_API_KEY"]},
        timeout=30,
    ).json()["data"]

    compound = (insight.get("sentiment") or [{}])[0].get("document", {}).get("Compound", 0)
    sentiment = "Positive" if compound > 10 else "Negative" if compound < -10 else "Neutral"

    message = {
        "roomId": os.environ["WEBEX_ROOM_ID"],
        "markdown": f"**{insight['name']}** - Sentiment: {sentiment}",
        "attachments": [{
            "contentType": "application/vnd.microsoft.card.adaptive",
            "content": {
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
                "type": "AdaptiveCard",
                "version": "1.2",
                "body": [
                    {"type": "TextBlock", "size": "Large", "weight": "Bolder", "text": insight["name"]},
                    {"type": "TextBlock", "text": f"Sentiment: {sentiment} (Compound {compound})", "wrap": True},
                    {"type": "TextBlock",
                     "text": f"Duration: {round(insight.get('duration', {}).get('inSecond', 0) / 60)} min",
                     "isSubtle": True, "spacing": "None"},
                ],
                "actions": [{
                    "type": "Action.OpenUrl",
                    "title": "Open in Speak",
                    "url": f"https://app.speakai.co/media/{media_id}",
                }],
            },
        }],
    }

    requests.post(
        "https://webexapis.com/v1/messages",
        headers={
            "Authorization": f"Bearer {os.environ['WEBEX_BOT_TOKEN']}",
            "Content-Type": "application/json",
        },
        json=message,
        timeout=15,
    )
    return {"ok": True}

Webex Adaptive Cards use format version 1.2. The markdown field is shown as fallback text in clients that do not render cards. Branch by tag, folder, or sentiment threshold to route different recording types into different Webex spaces.

For sales ops and RevOps · Verified webhook to CRM activity

Log every Webex meeting in HubSpot, Salesforce, or Zoho

Same verified middleware pattern as the rest of the integrations cluster: receive Speak’s flat {eventType, state, mediaId} notification, fetch full insight via GET /v1/media/insight/:mediaId, then create the CRM activity. Source-tag with webex so reports can split Webex vs Zoom vs Meet.

Receive Speak webhook + create CRM activity
// Speak webhook body shape (verified 2026-05-07): { eventType, state, mediaId }
import express from "express";
const app = express();
app.use(express.json());

app.post("/speak/webex-to-crm", async (req, res) => {
  const { eventType, state, mediaId } = req.body;
  if (eventType !== "media.analyzed" || state !== "processed") return res.sendStatus(204);
  res.sendStatus(202);

  // 1. Fetch full insight
  const { data } = await fetch(
    `https://api.speakai.co/v1/media/insight/${mediaId}`,
    { headers: { "x-speakai-key": process.env.SPEAK_API_KEY } }
  ).then(r => r.json());

  // 2. Push to HubSpot Meetings (or Salesforce Tasks, or Zoho Calls)
  const start = new Date(data.createdAt);
  const end = new Date(start.getTime() + (data.duration?.inSecond || 0) * 1000);

  await fetch("https://api.hubapi.com/crm/v3/objects/meetings", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.HUBSPOT_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      properties: {
        hs_timestamp: start.toISOString(),
        hs_meeting_title: data.name,
        hs_meeting_body: `Webex call summary. Open in Speak: https://app.speakai.co/media/${mediaId}`,
        hs_meeting_external_url: `https://app.speakai.co/media/${mediaId}`,
        hs_meeting_start_time: start.toISOString(),
        hs_meeting_end_time: end.toISOString(),
        hs_meeting_outcome: "COMPLETED",
      },
    }),
  });
});

app.listen(3000);

Full destination-specific code (HubSpot Meeting + association IDs, Salesforce Task + SOQL contact resolution, Zoho Calls + Notes) on /integrations/hubspot/, /integrations/salesforce/, and /integrations/zoho/. The Speak side is identical across all three CRM destinations.

For analysts and team leads · Natural language

Search every Webex meeting from Claude or ChatGPT

Connect Speak’s MCP server to Claude or ChatGPT and your team queries the entire Webex meeting library through conversation. No SQL, no dashboards, no exports.

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 Webex meeting last week with negative customer sentiment in the last 5 minutes.”
  • “Summarize the 3 longest Webex calls with Acme Corp from this quarter.”
  • “Pull verbatim quotes from Webex meetings tagged discovery where customers asked about onboarding.”
  • “Compare discovery completeness across our top 3 SDRs. Use this week’s Webex calls. Score each on a 0-10 rubric.”
  • “Find every Webex meeting where the rep missed the discovery question. Pull the timestamps.”

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

Why Speak AI + Webex

Webex handles the call. Webex AI Assistant covers in-call note suggestions on paid Webex Suite tiers. Speak handles the deeper analysis layer that lives outside Webex: cross-meeting search, custom Magic Prompts, multi-source ingest, CRM push, and shareable embeds.

Multi-source ingest, not just Webex

Webex is one of dozens of inputs. The same Speak workspace ingests Zoom, Google Meet, Microsoft Teams, Twilio, Loom, podcast audio, and direct file uploads. One library, every conversation across every meeting platform.

Custom Magic Prompts, not fixed templates

Webex AI Assistant ships fixed summary templates included with paid Webex Suite plans. Speak’s Magic Prompt runs your prompts on every Webex call: discovery checklist scoring, competitor mention extraction, MEDDIC-stage detection, whatever your team needs. Save prompts once, run them on every recording forever.

SOC 2 + GDPR + HIPAA-eligible

Speak ships with SOC 2 Type 2, GDPR compliance, and HIPAA-eligible plans for healthcare customers. Your Webex meeting data is encrypted in transit and at rest, and Speak does not train on your conversations.

MCP-native for Claude and ChatGPT

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

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 Webex for transcription and meeting intelligence

Cisco Webex is a leading enterprise video meeting platform used by sales teams for discovery and demo calls, support teams for customer reviews, and internal teams for weekly syncs and project standups. Every one of those calls is a potential source of customer truth, decisions, and follow-up actions. Speak AI is what turns those calls into structured, searchable, shareable data without forcing a tool change or a manual export.

Where Speak fits in the Webex call lifecycle

Speak runs after the call ends, or in parallel during the call via the bot. Webex handles call control: rooms, video, audio, the in-meeting AI Assistant features for paid Webex Suite tiers. Speak handles transcription in 100+ languages, AI analysis with custom prompts, search across the full library, and downstream automation. The handoff happens via the calendar bot (email invite or Google/Microsoft 365 calendar OAuth), the per-meeting /v1/meeting-assistant/events/schedule endpoint, or by uploading existing Webex cloud recordings via URL or the Webex recording webhook.

Speak vs Webex AI Assistant

Webex AI Assistant covers in-call note suggestions, meeting highlights, and post-meeting summaries. It is bundled with Webex Suite Business and Enterprise plans. It is well-suited if you only need a Webex-internal summary delivered within the Webex ecosystem.

Speak is a different product. Speak ingests Webex alongside Zoom, Google Meet, Microsoft Teams, 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 Webex AI Assistant handle the in-call host summary and use Speak for the deeper post-call analysis layer plus cross-platform search.

Auto-coverage: how Webex calendar sync works

Speak does not have a native Webex OAuth integration. Auto-coverage for Webex works through your calendar: connect Google Calendar or Microsoft 365 to Speak, and Speak scans upcoming calendar events for Webex meeting URLs. When a calendar event contains a Webex URL (webex.com/meet/... or similar), Speak sends the bot automatically. This means the trigger is the calendar event, not a Webex-side webhook. For organizations that schedule Webex meetings through Outlook or Google Calendar, this works seamlessly.

How do I transcribe Webex meetings automatically?

Three production paths, ranked by lift:

  • Email invite. Add [email protected] as an attendee on the calendar event containing the Webex meeting URL. The bot joins the call, records, and transcribes. Zero setup. Works for any Webex meeting type.
  • Calendar OAuth auto-coverage. Connect Google Calendar or Microsoft 365 to Speak once. Every calendar event with a Webex URL gets the bot automatically going forward.
  • API per-meeting schedule. POST a Webex meeting URL to Speak’s /v1/meeting-assistant/events/schedule from your CRM or scheduling tool. Full control over title, language, and folder.

All three deliver the same output: full transcript, AI summary, sentiment, action items, plus structured CRM push and Webex space posting via the Messaging API.

Can I process Webex cloud recordings via webhook?

Yes. Register a webhook at https://webexapis.com/v1/webhooks for the recordings resource and created event. When a Webex meeting finishes recording, Webex fires the event to your handler. Your handler fetches the recording’s downloadUrl from GET /v1/recordings/{recordingId} using a Webex access token, then passes that URL to Speak’s POST /v1/media/upload endpoint. This is useful for compliance archives and post-call coaching pipelines that run independently of the meeting bot path. The download URL expires after 24 hours.

Use cases by role

Sales and RevOps teams use Speak with Webex to auto-log every Webex demo and discovery call into HubSpot, Salesforce, or Zoho. Magic Prompts score discovery completeness, surface objections, and extract competitor mentions. See Speak AI for sales teams.

Customer support and CX teams capture every inbound Webex support call and route by sentiment. Multilingual queues work without per-language setup since Speak supports 100+ languages with auto-detection.

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

Training and enablement teams turn Webex calls into a coaching loop. Speak’s analysis surfaces missed discovery questions, scripted-line drift, and sentiment dips for QA review. See Speak AI for training and development.

Frequently asked questions

What is the easiest way to get the Speak bot into a Webex meeting?

Add [email protected] as an attendee on the calendar event hosting the Webex meeting. The bot accepts the invite and joins the Webex call automatically. No in-app configuration, no OAuth, no API call. The same email works for Zoom, Microsoft Teams, and Google Meet events too.

How do I use an AI note taker for Webex?

Three options. Easy: invite [email protected] on the calendar event. Auto-coverage: connect Google Calendar or Microsoft 365 to Speak under Meeting Assistant. Programmatic: POST the Webex meeting URL to Speak’s /v1/meeting-assistant/events/schedule endpoint. All three produce the same output: speaker-labeled transcript, AI summary, sentiment, and any custom Magic Prompts you have configured.

Can I transcribe a Webex meeting automatically?

Yes. Once the bot is invited (by email, calendar OAuth, or API), every Webex meeting is transcribed automatically without any manual steps. Speak also processes existing Webex cloud recordings: upload the recording URL or video file directly and get a speaker-labeled transcript in 100+ languages, typically in under 2 minutes per hour of audio.

Does Speak have a native Webex OAuth integration?

No. Speak does not have a direct Webex OAuth connection. Auto-coverage for Webex works through your calendar: connect Google Calendar or Microsoft 365 to Speak, and the bot joins any calendar event that contains a Webex meeting URL. You can also invite the bot by email ([email protected]) for individual meetings, or use the Speak API to schedule the bot for specific Webex meeting URLs.

Can Speak AI post meeting summaries to a Webex space?

Yes. Create a bot at developer.webex.com, invite it to your space, and POST Adaptive Cards (version 1.2) to https://webexapis.com/v1/messages with Authorization: Bearer $WEBEX_BOT_TOKEN after each media.analyzed event. Tab 2 above shows the full Node and Python recipes.

What is the best AI tool for Cisco Webex?

Speak AI is rated 4.9 on G2 and handles the full Webex meeting lifecycle: calendar sync, bot join, transcription in 100+ languages, AI analysis, Webex space posting, and CRM push. Unlike Otter, Fireflies, or Fathom, Speak also supports bulk processing of archived recordings, multi-source ingest across Zoom and Meet and Teams, and exposes everything through MCP for Claude and ChatGPT.

Start using Speak AI with Webex today

83 analysis tools. 100+ languages. Calendar bot, Webex space posting via Messaging API, MCP-native for Claude and ChatGPT. Same workspace as your Zoom, Meet, Teams, and Twilio calls.

Try Speak AI free

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

Book a demo

For sales or IT teams evaluating Speak across an enterprise Webex deployment, book a 30-minute demo with the Speak team. We will walk through the calendar bot, Webex Messaging API space posting, and CRM push live.