Copilot in SharePoint general availability rollout started on September 30 — read the announcement blog for the full story.
But general availability isn't the finish line, and this month's release makes that clear. October is about what happens after Copilot creates something — reviewing it, restructuring it, publishing it, and getting it to the people who need to act on it. You'll find new ways to reshape documents and images, review and publish generated HTML, and send the result on without ever leaving the site. Round it out with plugins that reach your other business systems, workflows you can describe in a sentence, and analytics you can simply ask for, and the pattern this month is a simple one: fewer trips out of SharePoint to finish the job.
Most of these capabilities are included with your Microsoft 365 Copilot license. Image generation and editing, advanced autofill, and site analytics use Copilot Credits, which have started rolling out as part of general availability.
What’s new: Copilot in SharePoint can now work with PDFs at the page and section level, letting you extract sections, insert attachments, reorder pages, and split a document into separate files.
Why it matters: You can reorganize large documents for different reviewers and audiences without leaving SharePoint.
Sample use cases:
Try this prompt: “Pull the pricing section out of the response packet into its own PDF.”
Availability: Included with a Microsoft 365 Copilot license.
What's new: Ask Copilot to read version history, explain what changed, and restore an earlier version when you need to undo an unwanted edit.
Why it matters: You can investigate and recover from changes through conversation instead of manually opening and comparing multiple versions.
Sample use case: A content owner reviews what changed after an accidental edit and restores the last approved version.
Try these prompts:
Availability: Included with a Microsoft 365 Copilot license.
What’s new: Generate new images or edit existing ones with Copilot in SharePoint, with results shown as a preview in the Copilot pane.
Why it matters: You can work with document scans and photos from the field where your content already lives, and pair image editing with a custom skill that defines company-specific terms such as “PII.”
Sample use case: Use a custom skill that defines your company’s PII criteria to request redaction from a field photo, preview the result, and save it as a separate copy.
Try this prompt: “Redact all PII from this image and save the result as a new copy.”
Availability: Available with a Copilot License and Copilot Credits, which are rolling out this month.
What’s new: Autofill turns a library of documents into structured, filterable data — you describe the column you want, and Copilot reads each file and fills it in. The existing autofill experience from the Copilot in SharePoint preview remains available with a Copilot license, but we’re also adding a new capability called Advanced Autofill. With advanced autofill, sites with Copilot Credits enabled get that work done on a faster processing queue, with most files completing in a few minutes (up to about an hour when services are especially busy).
Why it matters: Advanced Autofill simply gets you to a structured, organized library sooner, which is great for high priority documents.
Sample use cases:
Try this prompt: "Create autofill columns for this library that capture the request type, the team affected, urgency, and the recommended next action for each document."
Learn more: https://learn.microsoft.com/en-us/sharepoint/copilot-in-sharepoint-create-autofill-columns#advanced-autofill
Availability: Available with a Copilot License and Copilot Credits, which are rolling out this month.
What’s new: Review AI-generated HTML the same way you review a Word document. Leave a comment on what you want changed, and Copilot handles the underlying HTML, CSS, and layout edits.
Why it matters: Feedback stays anchored to the exact content. Reviewers can focus on the desired outcome while Copilot preserves everything that wasn’t mentioned.
Sample use case: A project lead comments on a generated status dashboard to simplify a chart, rename a section, and clarify an alert—without writing a technical editing prompt.
Try this prompt after leaving comments on an HTML page: “Fix the issues in the comments and show me the updated version.”
Watch the demo: https://www.youtube.com/watch?v=f6o8iz9b4WY
Availability: Included with a Microsoft 365 Copilot license.
What’s new: Create HTML with Copilot in SharePoint or upload HTML from another source, then store it in the pages library to render it as a SharePoint page, make additional edits, and share it with your audience.
Why it matters: HTML gives you another way to present your content alongside existing ASPX pages.
Sample use case: Create a project newsletter that brings together the project summary, team members, and decisions and action items from the latest team meeting.
Try this prompt: “Create an HTML newsletter about Project Alpha. Include a summary of the project, team members involved, and the decisions and action items from our most recent weekly team meeting.”
Availability: Included with a Microsoft 365 Copilot license.
What's new: Copilot in SharePoint can now send email for you. Ask it to create something — an HTML report, a summary, a planning update — and tell it who should receive it, and Copilot will generate the content, resolve the recipients you named (including references like "my manager" or "my reports"), and send the report as the body of the email rather than as an attachment. One prompt takes you from request to delivered.
Why it matters: The work isn't done when the report is finished — it's done when the right people have read it. And because the report lands in the email body, recipients read it the moment they open the message — no download, no attachment, no "which version is this?" — and because Copilot resolves people from how you actually refer to them, you don't have to stop and look up who's on the distribution. You stay in control of what goes out: Copilot shows you the message before it sends.
Sample use cases:
Try this prompt: "Create an HTML report of my team's planning for next month and send it to my manager, CC my reports."
Availability: Included with a Microsoft 365 Copilot license.
What’s new: Plugins let Copilot in SharePoint work with systems such as GitHub, CRM systems, publishing platforms, and internal tools, supporting both read and write scenarios with human approval on bulk actions.
Why it matters: Install a plugin once through Microsoft 365 and use it in the SharePoint sites where your team’s documents already live, while IT retains control over governance and who can access each plugin.
Sample use case: Cross-check a pipeline review in SharePoint against Dynamics 365 to identify deals with changed close dates and create follow-up tasks.
Try this prompt: “Cross-check the accounts in this site’s Q3 pipeline review against Dynamics 365, flag any deals where the close date has slipped, and log a follow-up task on each one.”
Availability: Included with a Microsoft 365 Copilot license.
What’s New: Copilot can help you build a quick workflow to collaborate in chats or channels when key file changes and metadata updates occur. Don’t worry about triggers, actions, or setting up your own Power Automate flow, let workflows use the context of SharePoint and help build automatic notifications. Now with adaptive card support when you post a message in a chat or channel, simply tell Copilot what metadata fields to include and how you want the formatting to look. Want to send an email instead? Just ask Copilot and switch your workflow action with a simple prompt.
Go beyond simple text updates and let Copilot and SharePoint build you a beautiful, information rich adaptive card with helpful buttons and links back to SharePoint.
Why it matters: Collaboration happens in Teams or email. Let the content live in document libraries or lists and post key updates when new files are added, metadata meets a specified criteria, or recurring reminders to update files assigned to me in SharePoint.
Sample use cases:
Try this prompt: When a new file is added, post a nice looking summary card in my Teams channel with key file details and a button to open the file.
Availability: Included with a Microsoft 365 Copilot license. Requires access to Power Automate.
What’s new: Site owners can ask about site, page, news, and document performance in plain language, assemble the numbers in one place, and turn the results into a custom HTML report to share.
Why it matters: Instead of gathering insights from separate places or working around fixed reporting windows, you can tailor the metrics to the view you need.
Sample use case: Create a report covering pages, news, and documents to see which content is most popular on your site this week.
Try these prompts:
Availability: Available with a Copilot License and Copilot Credits, which are rolling out this month.
This month we added suggestion chips: after Copilot responds, you'll see contextual follow-ups right under the answer. They help you refine the result, dig deeper, or take the next action — so you never have to stare at an empty prompt box wondering what to ask next. We’re also added a quick access option for skills, similar to the way you access files, people, and meetings, so you can discover and add the right skill when you need it. Together they make Copilot in SharePoint easier to start with, and easier to keep going with.
Explore ready-to-use prompts and step-by-step guidance in the https://adoption.microsoft.com/copilot-in-sharepoint/ and the https://adoption.microsoft.com/files/sharepoint/GettingStartedGuidePromptLibrary.pdf.
Stay up to date through the https://aka.ms/CopilotinSP/WhatsNew, and see more demos on https://www.youtube.com/@ZRosenfield.
See you next month for more updates!
A quick note before we get into it: What's New in Teams is shifting from a monthly to a quarterly rhythm. You'll hear from us next in December, March, and June, and each edition will round up everything announced and released over the full quarter. One post, one fuller view of what's new.
Two investments shape where Teams is heading, and you'll see both in this quarter's releases: AI transforming teamwork with agents as part of the team, and a simpler, smarter, more secure foundation underneath it all.
AI in Teams is showing up in the flow of your work. Teams Phone Agent brings that to your phone line, helping callers with common requests in more than 60 languages and routing them with context attached, so a missed call turns into a next step instead of a lost one.
Context carries forward, too. Video recap turns a meeting you missed into a short, narrated highlight reel, so what a meeting decided outlasts the conversation itself.
And protection for everyday collaboration is always top of mind. The new Security Detection Report brings detections such as impersonation and malicious URLs into one view in the Teams admin center, so admins see the whole picture in one place.
Read on for all the latest updates!
Feature categories: (All features listed are generally available unless otherwise noted)
Ask Copilot in Teams conversations
Stay in the flow of work and get help from Copilot directly within your conversations. Open Copilot from a message or selected text in a Teams conversation, with the relevant context already included, making it easier to gain insights, explore questions, and move work forward without needing to re-explain information.
Find agents and apps faster through Teams search
Discover the tools you need with agents and apps surfaced directly in Teams search results. As you type in the search bar, matching agents and apps appear alongside other relevant results, helping you spend less time searching and more time getting things done.
Find and share files faster in Teams
Locate the files you need while sharing content in Teams. Search for cloud-based files directly from the attachment experience, making it easier to find and share the right content without interrupting the flow of collaboration.
Emoji shortcuts on iOS and Android
Express yourself with emoji shortcuts. Desktop emoji shortcuts now work on iOS and Android. Insert emojis directly in the compose box by typing a word between colons, so :smile: becomes 😊. Autocomplete suggestions help speed up entry, and custom emojis are also supported.
Clearer text highlighting in dark mode and high contrast mode
Make highlighted text easier to read while composing messages in Teams. Improvements to text highlighting in dark mode and high contrast mode provide a more consistent and accessible editing experience, helping content stand out more clearly.
Video recap in Teams
Meeting recap now delivers a bite-sized video recap of with key highlights from your Teams meeting. It combines AI-generated voiceover summaries with video snippets, spotlighting the most important moments while preserving the original tone and flow, so you can catch up on key topics in a few minutes. Video recaps now support meetings in 23 languages across 31 regional variants, learn more.
Translation button to change the language for intelligent meeting recaps
After an intelligent meeting recap is generated, you can change the recap language at any time using a translation button, even if a different language was selected during the meeting. Multilingual teams get more flexibility to read meeting insights, action items, and discussion summaries in the language that is most comfortable for them.
Teams Phone Agent
Teams Phone Agent is an AI-powered receptionist for your business’s phone line, so callers can get help with common requests even after hours. For customer-facing organizations and departments using Teams Phone, such as bank branches or IT help desks, it takes repetitive calls off employees' plates so they can focus on the conversations that truly need a human touch. With support for over 60 languages and locales, Teams Phone Agent handles common requests such as answering routine questions or booking appointments. , And it can route a caller to the right department or employee with an AI-generated summary of the conversation, so customers do not have to navigate phone menus or repeat themselves. Custom voice agents are available for specialized workflows. Teams Phone Agent is now generally available, learn more.
Intelligent call recap in Queues app
Intelligent call recaps in Queues app help you catch up on recorded or transcribed queue calls with AI-generated summary notes covering key discussion points and follow-up actions. To open a recap, find the call record in the Queues app call history and select Recap.
Copilot in Queues app’s shared call history for post-call insights
Quickly catch up on a call queue call and uncover key details with the ability to use Copilot in the shared call history in Queues app. After a recorded call is completed, users with Copilot can now open the call record in the shared call history, access the Copilot Chat sidecar from the Recap tab, and ask questions about the call.
Automatic recording and transcription for call queues
Capture customer interactions without requiring your organization’s calling representatives to manually start recording. Admins can enable automatic recording and transcription for individual Teams call queues and control access to recordings. Recordings are stored in SharePoint and accessible through call recaps in the shared call history in Queues app.
View and manage auto attendant shared voicemails in Queues app
Help your team stay on top of customer messages by managing auto attendant shared voicemails directly in Queues app. Calls routed from an auto attendant to voicemail will appear in Queues app, giving collaborative calling teams a centralized place to track, triage, and respond to messages.
Customize recording and transcription notifications for Teams calls
Give your organization greater control over how recording and transcription are communicated during Teams calls. IT admins can customize select user notification strings for recording and transcription in the Teams admin center, helping tailor the experience for participants in Teams VoIP calls.
Enhance control of delegated calls with call lock and delegate join alerts
Call delegation in Teams gains real controls: a delegator can lock an active call and see when a delegate joins. Locking prevents delegates from joining or resuming the call, and optional warning tones notify participants when a delegate joins or resumes.
Interpreter agent support in Teams Rooms on Android
The Interpreter agent acts as a translator in Microsoft Teams meetings, letting participants listen in their chosen language with real-time translation. It is now available in Teams Rooms on Android licensed for Teams Rooms Pro.
Zero-touch provisioning on Teams MDEP-based Android devices
IT teams can deploy MDEP-based Android devices at scale with automated, hands-off provisioning, cutting manual setup and applying security policies from first boot, similar to Autopilot for Windows. Deployment is managed from the Teams Rooms Pro Management portal.
New room optimization mode in Teams desktop
Room optimization mode makes it easier to use your laptop for meetings and collaboration in spaces such as focus or huddle rooms that do not yet have a Teams Rooms system. It replaces shared display mode, has a new location, and enables or disables room-specific features. When room peripherals are connected, Teams can automatically select audio and video devices, enable speaker recognition and shared display, and disable voice isolation.
Meeting room join time comparison analytics in the Pro Management portal
Admins can now compare meeting join times between Teams Rooms and bring-your-own-device rooms. These analytics help monitor the experience and plan workspaces, and the portal uses the comparison metrics to recommend actions proactively. Available with Teams Rooms Pro and Teams Shared Space licenses.
Enhanced bookable desk experience with Teams panel-based desk hub devices
The Teams panel app now enables devices to enhance bookable desk experiences, indicating at-a-glance availability and letting visitors book directly on the device, so people have better experiences in flexible work environments. Each device requires a Teams Shared Space license.
Modernized Gallery view in Teams Rooms on Android
The updated Gallery view in Teams Rooms on Android prioritizes video on the meeting stage, arranges participants in consistent aspect ratios, and minimizes movement of participant tiles on stage. You can hide the room self-preview video and choose to see audio and video participants equally on stage instead of prioritizing video participants. Admins can set the default behavior using local device settings and the Pro Management portal.
Breakout rooms in Teams Meetings & Events
Breakout rooms are now supported in Teams Meetings & Teams Events with up to 1,000 participants across 100 rooms, increased from the previous limit of 300 participants across 50 rooms. Organizers can use breakout rooms to create smaller focused sessions within an event for more interaction and collaboration.
Specify who has control of production tools in Teams Events
Organizers can designate who controls production tools, granting chosen people access to Manage what attendees see and the green room so event production stays with the right crew. The setting is a new meeting option applied when the event is set up.
Expanding presenter visibility in “Manage what attendees see”
Producers can resize and expand the presenter panel in Manage what attendees see, making it easier to view, manage, and switch between presenters while a live event is running.
New layout when sharing content for Teams events
Organizers and presenters who have access to production tools now see updated layout options when sharing content in the “Manage what attendees see” experience for Teams events. The available layouts are speaker focused, content focused, and content only. The new speaker focused layout prioritizes presenter video alongside shared content for greater visibility. Available for Teams events organizers with a Teams Premium license, on Teams for Windows desktop and Mac desktop.
Enhanced real-time alerting rule management in Teams admin center
Administrators can now duplicate an existing alerting rule to create a similar configuration without rebuilding it, bulk upload users when creating or editing a rule, and delete rules directly from the management experience. These capabilities are available for in-progress meetings and calls rule types, and organizations can configure monitoring for up to 500 users across their real-time alerting rules.
Security Detection Report in Teams admin center
A new Security Detection Report in the Teams admin center gives admins a unified view of messaging security detections across signals such as impersonation, malicious URLs, and weaponizable file types. Admins can review detection activity in one place and export detailed data for further investigation, improving visibility into threats in Teams.
Single pane for monitoring and troubleshooting meetings and calls (Windows)
Administrators can monitor meeting and call health across the organization from one place, identifying recurring issues, uncovering trends, and proactively troubleshooting problems affecting people in both live and past meetings and calls.
Meeting participant detail audit records in all participating tenants
Admins can now access participant-level audit records for their own users in cross-tenant meetings, helping investigate incidents even when another organization hosted the meeting. Teams audit logging now shares meeting participant detail records with all participating tenants, not just the organizer tenant, and each record includes organizer information so admins can tell whether a meeting was organized inside or outside their tenant.
Teams optimization for VDI now supports Teams Events (Windows)
Attendees joining Teams Events from virtualized Windows desktops can offload audio and video to their local device, supporting high definition playback while easing load on the virtual desktop. Optimization works on Windows endpoints connecting to Azure Virtual Desktop, Windows 365, Citrix, Omnissa, or Amazon. Captions, DVR, reactions, streaming chat, and Q&A are all supported, as are first-party and third-party eCDNs.
Unified agent and app installation management across Microsoft 365 and Teams admin center (Windows)
Administrators using the Microsoft 365 admin center and Teams admin center can apply app and agent installation changes once and have them enforced consistently across Teams, Outlook, and Microsoft 365 Copilot. Previously, installation changes made in the Microsoft 365 admin center applied only to Outlook and Microsoft 365, and changes made in the Teams admin center applied only to Teams.
Identify custom Teams apps that need updates for private and shared channels
Admins can view a list in Teams admin center of custom apps in their tenant that need updates to work in private and shared channels. The list helps admins identify impacted apps, understand which ones require developer action, and coordinate updates so people can keep using custom apps across all supported channel types.
Prominent search for app and agent discovery in the Store
Search now sits in the middle of the Store page, with improved type-ahead suggestions, a more informative results page, and natural language processing to surface the most relevant apps and agents.
Add multiple steps when building a workflow from scratch
When building a workflow from scratch, you can add several steps at once, so you can assemble multi-step automation without returning to edit it step by step, reducing repetitive setup work and simplifying the creation of more advanced automations.
Collect information with List Form in Workflows
A workflow can open with a form that gathers the details it needs up front, so automation runs on structured input rather than chasing information midway.
Single-character keyboard shortcuts for focused message actions (Windows)
Single-character shortcuts let you quickly take common messaging actions such as edit, delete, reply, forward, pin, save, mark unread, quote reply, and react when a message has keyboard focus. The shortcuts are a predefined messaging set, and they are discoverable and customizable in the keyboard shortcuts dialog.
EPOS IMPACT 1000 MS UC ANC WL USB-C+A
On-ear Bluetooth® headset. Supplied with a BTD 900c dongle, a USB‑C to USB‑A adapter, and a USB‑C charging cable. Features ANC, EPOS BrainAdapt™ technologies, and EPOS AI™‑powered voice pickup and noise cancellation, ensuring your voice sounds natural and clear in any environment.
EPOS IMPACT 1000 MS UC ANC WL USB-C+A Stand
On-ear Bluetooth® headset. Supplied with a table stand for wireless charging, a BTD 900c dongle, a USB‑C to USB‑A adapter, and a USB‑C charging cable. Features ANC, EPOS BrainAdapt™ technologies, and EPOS AI™‑powered voice pickup and noise cancellation, ensuring your voice sounds natural and clear in any environment.
EPOS IMPACT 1000 MS UC Mono WL / ANC WL
Dongle-free Bluetooth® headsets available in monaural and binaural on-ear configurations. Supplied with a USB-C charging cable and a USB-C to USB-A adapter. Features EPOS BrainAdapt™ technologies and EPOS AI™-powered voice pickup and noise cancellation for clear, natural-sounding communication in any environment. The binaural ANC WL model also includes Active Noise Cancellation (ANC) to help reduce background distractions.
|
|
EPOS IMPACT 1000 MS UC ANC WL Stand
On-ear, dongle-free Bluetooth® headset. Supplied with a table stand for wireless charging, a USB‑C charging cable, and a USB‑C to USB‑A adapter. Features ANC, EPOS BrainAdapt™ technologies, and EPOS AI™‑powered voice pickup and noise cancellation, ensuring your voice sounds natural and clear in any environment.
Q-SYS RoomSuite Collaboration Bar + Controller
The Q-SYS RoomSuite Collaboration Bar and expansion devices provide a scalable AV solution for standard small-to-large meeting spaces. This Windows-based solution features built-in audio, video, and supports Microsoft Teams Rooms and bring-your-own-meeting conferencing. Includes a touch panel for control and allows for optional table microphones for extended audio coverage.
Q-SYS RoomSuite Collaboration Bar + Controller + Expansion Mic
The Q-SYS RoomSuite Collaboration Bar and expansion devices provide a scalable AV solution for standard small-to-large meeting spaces. This Windows-based solution features built-in audio, video, and supports Microsoft Teams Rooms and bring-your-own-meeting conferencing. Includes a touch panel for control and allows for optional table microphones for extended audio coverage. The Q-SYS RoomSuite Collaboration Bar can support up to 4 expansion mics.
Shure IntelliMix Room Kit 30 | 50 | 70 | 80
Microsoft Teams Rooms-certified solutions for small, medium, and large meeting spaces. Shure IntelliMix Room Kits include a Windows-based Teams Rooms compute with Shure’s premium audio signal processing, an intuitive touch panel, an all-in-one ceiling array microphone and loudspeaker, and intelligent high-resolution video. Designed for streamlined deployment with zero-touch or low-touch setup, the kits provide high-quality audio and video experiences across a range of room sizes. Simply connect devices, power on, and sign in to get started.
|
|
|
|
Shure IntelliMix™ Bar Pro Kit (Black)
Clearly capture precise audio and video for AI-powered meetings in medium to large collaboration spaces with this powerful all-in-one Android based video conference bar. Enterprise ready with auto-setup and simple global management, IT managers can create meeting experiences focused on participants with reliable transcription for enhanced AI tools.
Yealink MP66W
Powered by the Microsoft Device Ecosystem Platform (MDEP) and Android 15, the Yealink MP66W offers accelerated performance and enterprise-level security. With an IP67 rating for water and dust resistance, 1.8-meter drop protection, and an antibacterial, chemical-cleaning-resistant housing, the MP66W is built for mobile workers in healthcare, manufacturing, retail, and warehouse environments. Armed with Yealink's Optima HD Audio and AI Noise Cancellation Technology, MP66W delivers distraction-free, natural-sounding calls even in loud environments. Moreover, MP66W keeps mobile teams connected thanks to its support for Wi-Fi 6E, Bluetooth 5.3, and up to 8 hours of talk time on a single charge.
Neat Pad Generation 2
Neat Pad Generation 2 keeps Microsoft Teams meetings moving. As a meeting room controller or scheduling display, it gives teams instant, familiar control and IT a simple, scalable way to standardize rooms across every space. A built-in microphone extends audio pickup in the room, helping conversations sound clearer without extra hardware. Built-in sensors monitor temperature, humidity, and air quality for a healthier workspace. Mount it on a wall, table, or mullion and power it with a single PoE cable — plug in and go. Manage every device remotely with Neat Pulse, and count on Neat's next-generation P2 platform for lasting performance as your needs evolve. Compact, reliable, and easy to deploy, it delivers a consistent experience so every room just works.
Barco ClickShare Hub Pro, Huddly® L1™ and Shure for Teams Rooms on Android
This ClickShare Hub Pro, Huddly® L1™ and Shure bundle is a certified Microsoft Teams Rooms solution for medium meeting rooms. ClickShare Hub Pro enables one-click, wireless conferencing and 4K content sharing, with two next-gen ClickShare Buttons (featuring Wi-Fi 6E and USB-C DisplayPort™) and dual screen support. Built on the Microsoft Device Ecosystem Platform (MDEP), it’s designed for a secure meeting experience. Huddly® L1™ delivers engaging video collaboration with an on-device AI director, exceptional image quality, and software-defined longevity. The Shure MXA902 ceiling array microphone and loudspeaker with the ANIUSB-MATRIX USB audio network interface provide top-quality audio.
Shure MXA925 Ceiling Array Microphone + MXP-6 Pendant Passive Loudspeaker + MXN-AMP PoE + IntelliMix P300
This Microsoft Teams–certified bundle combines the MXA925 ceiling array microphone, IntelliMix® P300 DSP, MXN‑AMP PoE+ multichannel amplifier, and MXP‑6 pendant loudspeakers to deliver a fully validated, end‑to‑end room audio solution for medium to large spaces. Designed to meet Microsoft’s performance and reliability requirements, it provides automatic, precise speech capture, enterprise‑grade echo cancellation, and evenly distributed sound reinforcement while simplifying deployment through networked audio, PoE+ power, and a single‑vendor ecosystem.
Shure MXA925 Ceiling Array Microphone + MXP-5 Ceiling-Mount Passive Loudspeaker + MXN-AMP PoE + IntelliMix P300
This Microsoft Teams–certified bundle delivers a complete, scalable room audio solution by combining the MXA925 ceiling array microphone with IntelliMix P300 DSP, the MXN‑AMP PoE+ multichannel amplifier, and MXP‑5 ceiling speakers for clear speech capture and consistent sound coverage in medium to large meeting spaces. The MXA925 uses Automatic Coverage™ and advanced IntelliMix DSP to capture natural, intelligible speech without complex setup, while the P300 provides powerful echo cancellation, noise reduction, and USB connectivity to Teams Rooms systems. The MXN‑AMP and MXP‑5 speakers simplify installation with networked audio and PoE+ power, delivering balanced, room‑filling audio for both in‑room and remote participants.
Shure MXA320 Table Array Microphone+MXN5-C Networked Loudspeaker + Intellimix P300 Audio Conferencing Processor
The Shure MXA320 Table Array Microphone, MXN5‑C Networked Loudspeaker System, and IntelliMix P300 Conferencing Processor form a fully certified Microsoft Teams Rooms audio bundle designed for Medium meeting spaces. This integrated solution delivers clear, consistent, and intelligible audio through advanced DSP, Steerable Coverage™ technology, and optimized networked loudspeaker performance. The MXA320 captures voices with precision while minimizing ambient noise, the P300 enhances audio quality with powerful IntelliMix® processing, and the MXN5‑C ensures natural, room‑filling sound playback. Together, they provide a seamless, scalable, and easy‑to‑deploy conferencing experience that meets Microsoft’s stringent certification requirements for performance, reliability, and user experience.
Shure MXA902 Ceiling Microphone & Loudspeaker + ANIUSB-MATRIX Audio Conferencing Ki
High-quality, reliable meeting room audio is now easier than ever. Certified for Microsoft Teams, the Shure MXA902 Integrated Ceiling Array Microphone + Loudspeaker, paired with the ANIUSB-MATRIX Audio Network Interface, delivers a complete, easy to install, ready to use audio solution. Designed for small and medium sized spaces, it provides premium sound, full room coverage, and seamless connectivity.
Shure MXW neXt 4&8 Wireless Microphone Systems with boundary microphone configuration + MXN5W-C Networked Loudspeaker
This Microsoft Teams-certified solution combines MXW neXt wireless microphones, IntelliMix® DSP, and the MXN5W-C networked ceiling loudspeaker to deliver consistent speech capture and clear room audio for hybrid learning and collaboration spaces. With flexible wireless deployment, integrated signal processing, and cloud-based management, the solution simplifies installation while providing reliable audio performance for both in-room and remote participants.
Shure MXW neXt 2 Wireless Microphone System with Boundary Microphone Configuration and MXN5W-C
This Microsoft Teams certified bundle combines the MXW neXt 2 wireless microphone system with boundary microphones and the MXN5W-C networked ceiling loudspeaker to deliver clear speech capture and consistent room audio for classrooms and collaboration spaces. Easy to deploy and cloud enabled for remote management, the solution simplifies installation while providing reliable wireless performance for both in-room and remote participants.
Barco ClickShare Hub Pro and Huddly ®C1™ Crew for Teams Rooms on Android
The ClickShare Hub Pro, Huddly C1 Crew bundle is a certified Microsoft Teams Rooms solution for small-to-medium meeting rooms. ClickShare Hub Pro enables one-click, wireless conferencing and 4K content sharing, with two next-gen ClickShare Buttons (featuring Wi-Fi 6E and USB-C DisplayPort™) and dual screen support. Built on the Microsoft Device Ecosystem Platform (MDEP), it’s designed for a secure meeting experience. Huddly C1 Crew adds AI-driven multi-camera video with integrated audio. Its on-device AI director frames people naturally for inclusive meetings, with clear image and sound throughout the room. For meeting participants, this bundle ensures intuitive, engaging meetings. For IT managers, it provides modular flexibility, enterprise-grade security, compliance, and standardized integration.
Logitech Zone Vibe Pro for Business
Zone Vibe Pro for Business is certified for Microsoft Teams and offers the over-ear design that people love — purpose-built for open offices and wide deployment. Our AI-powered voice isolation uses machine learning to capture your voice clearly. Adaptive hybrid ANC minimizes distractions, while custom 40 mm drivers deliver vivid, true-to-life audio.
My team develops a microservices application on Kubernetes, with hundreds of PRs opened each day. To let engineers test and review those changes in isolation before they’re merged, we give every pull request its own ephemeral environment.
We use Pulumi to define those short-lived PR environments from a component resource that’s shared with our long-lived Dev, Stage, Prod environments. Each PR gets its own Pulumi stack and Kubernetes namespace, which we tear down once the PR is merged or closed.
In this post, I’ll walk through how we’ve implemented this pattern and what we’ve learned from running it at scale.
A Kubernetes namespace gives each PR its own place to run, but to get to a working preview environment we need to do quite a bit on top of that. We still need to deploy the application into that namespace, make it reachable to reviewers, update it as new commits arrive, and remove it when the PR closes. And while a namespace separates the Kubernetes resources for each preview, things like database isolation, access controls, and network policies depend on the application and cluster.
Pulumi gives us a way to define these environments once while managing each one independently. Dev, Stage, Prod, and each PR run the same Pulumi program in separate stacks. The program defines the infrastructure for an environment, while each stack maintains its own configuration and state. For each PR, our CI creates or updates its Pulumi stack as new commits arrive, then destroys it when the PR closes.
Our implementation uses a single custom Pulumi component, but for the simplified example below, we’ve split it into two components to make the pattern easier to follow.
StackInstance represents one environment, whether that’s Dev, Stage, Prod, or a PR preview. It creates a namespace within our existing Kubernetes cluster, along with resources shared by the services in that environment, including the Secret used to pull images from the container registry.
K8Instance represents one microservice within that environment. It creates the Kubernetes resources needed to run the service and make it reachable through its preview URL, including a Deployment, Service, and Ingress. Each K8Instance uses the namespace and image pull Secret created by StackInstance, so an environment can contain multiple microservices without each one recreating those shared resources.
The following example assumes that shared infrastructure such as the Kubernetes cluster, ingress controller, and routing is already in place:
import pulumi
import pulumi_kubernetes as k8s
class StackInstance(pulumi.ComponentResource):
def __init__(self, name: str, namespace_name: str,
registry_config: pulumi.Input[str], opts=None):
super().__init__("example:app:StackInstance", name, {}, opts)
self.namespace = k8s.core.v1.Namespace(
f"{name}-namespace",
metadata={"name": namespace_name},
opts=pulumi.ResourceOptions(parent=self),
)
self.pull_secret = k8s.core.v1.Secret(
f"{name}-registry",
metadata={"name": "registry-auth", "namespace": namespace_name},
type="kubernetes.io/dockerconfigjson",
string_data={".dockerconfigjson": registry_config},
opts=pulumi.ResourceOptions(
parent=self, depends_on=[self.namespace]
),
)
self.namespace_name = pulumi.Output.from_input(namespace_name)
self.register_outputs({"namespace": self.namespace_name})
class K8Instance(pulumi.ComponentResource):
def __init__(self, name: str, stack: StackInstance,
image: pulumi.Input[str], host: str, opts=None):
super().__init__("example:app:K8Instance", name, {}, opts)
labels = {"app": name}
deployment = k8s.apps.v1.Deployment(
f"{name}-deployment",
metadata={"namespace": stack.namespace_name},
spec={
"replicas": 1,
"selector": {"match_labels": labels},
"template": {
"metadata": {"labels": labels},
"spec": {
"image_pull_secrets": [{"name": "registry-auth"}],
"containers": [{
"name": name,
"image": image,
"ports": [{"container_port": 8080}],
}],
},
},
},
opts=pulumi.ResourceOptions(
parent=self, depends_on=[stack.namespace, stack.pull_secret]
),
)
service = k8s.core.v1.Service(
f"{name}-service",
metadata={"name": name, "namespace": stack.namespace_name},
spec={
"selector": labels,
"ports": [{"port": 80, "target_port": 8080}],
},
opts=pulumi.ResourceOptions(parent=self, depends_on=[deployment]),
)
k8s.networking.v1.Ingress(
f"{name}-ingress",
metadata={"namespace": stack.namespace_name},
spec={
"rules": [{
"host": host,
"http": {"paths": [{
"path": "/",
"path_type": "Prefix",
"backend": {"service": {
"name": name,
"port": {"number": 80},
}},
}]},
}],
},
opts=pulumi.ResourceOptions(parent=self, depends_on=[service]),
)
self.url = pulumi.Output.from_input(f"https://{host}")
self.register_outputs({"url": self.url})
config = pulumi.Config()
stack = StackInstance(
"environment",
namespace_name=config.require("namespace"),
registry_config=config.require_secret("registryDockerConfig"),
)
web = K8Instance(
"web",
stack=stack,
image=config.require("webImage"),
host=config.require("webHost"),
opts=pulumi.ResourceOptions(parent=stack),
)
pulumi.export("namespace", stack.namespace_name)
pulumi.export("web_url", web.url)
For a PR environment, we might configure the stack with a namespace such as pr-1042, a host such as pr-1042.preview.example.com, and the container image built for that PR. Dev, Stage, and Prod use the same program and components with configuration for their own environments. Our example creates the namespace as part of StackInstance, but if the namespace already exists outside the stack, we’d pass it into the component instead of creating another one.
Because we destroy the entire PR stack when the PR closes, it should only own resources that are safe to delete with the preview. Shared, long-lived infrastructure stays outside the stack and is passed in where the environment needs it.
Our CI and cleanup workflow follows three stages for PR stacks:
Create: When a PR is opened, CI creates a Pulumi stack for the preview and runs pulumi up to deploy the environment. Pulumi creates the Ingress for the configured preview URL and exports that URL so CI can retrieve it. Once the application is ready and reachable, CI shares the URL with reviewers.
Update: When a new commit is pushed, CI runs pulumi up on the same stack with the new container image, updating the existing preview environment to reflect the latest version of the PR. Because pulumi up reconciles the entire stack, we review the preview after each update to make sure everything is working as expected.
Reconcile and remove: A scheduled job compares the PR stacks with the current state of their corresponding pull requests. Once a PR is closed and any configured grace period has passed, the job destroys the stack’s resources and removes the empty stack record. (The grace period can give reviewers a little time before the environment disappears.)
To tear down a PR stack, we run:
pulumi destroy --stack pr-1042 --yes
pulumi stack rm pr-1042 --yes
pulumi destroy removes the resources managed by the stack, but leaves the stack record in place. We run pulumi stack rm only after the destroy succeeds.
The scheduled pass matters even if CI tries to delete a preview as soon as its PR closes. Webhooks and jobs can fail; reconciliation gives missed deletions another chance. The grace period is a team decision, not a universal constant.
From running hundreds of PR environments per day, we’ve learned a few things about keeping them reliable.
Developers sometimes push several commits to a PR in quick succession, which can cause two CI jobs to try to update the same Pulumi stack at once. We encountered stack operation conflicts when this happened.
We now serialize updates for each PR stack, while still allowing different PR stacks to update in parallel. If a CI job is interrupted, we also check the stack for an active operation before starting another update.
Cleanup failures can leave behind orphaned PR environments, which become more of a problem as the number of PR stacks grows. Even if CI tries to remove an environment when its PR closes, jobs and webhooks can fail. We run a scheduled reconciliation job to compare existing PR stacks with the current state of their pull requests and retry cleanup for environments that should no longer exist.
Cleanup also needs to account for infrastructure drift. If a resource has been changed or removed outside Pulumi, the stack state may no longer match what’s actually running in Kubernetes. If that causes a destroy to fail, we run pulumi refresh to reconcile the state before retrying. We also verify that resources have actually been deleted when the provider can’t confirm their removal.
On average, it takes about four minutes from the start of pulumi up until the PR environment is ready and reachable at its preview URL. That includes deploying the Kubernetes resources, waiting for the application to become ready, and configuring routing (the container image is built beforehand).
This approach lets us use the same Pulumi program and components for PR previews as we do for Dev, Stage, and Prod, while giving each environment its own configuration, state, and lifecycle. It keeps the infrastructure consistent across environments without requiring us to maintain a separate implementation for PR previews.
In a recent project, I asked an agent a simple question about a maintenance log: what was recorded for the F3 fiber at 1310nm? The correct answer was nothing. The cell was empty. The agent confidently replied, “46.1dB,” borrowing a value from the wrong cell because its extraction had flattened the table’s structure.
If you build with LLMs, you’ve probably run into something similar. Andrej Karpathy put it bluntly: “In my experience there are approx. one thousand different pdf converters that are all equally terrible for anything except the simplest documents.”
Yet the assumption persists that document understanding is solved. Feed the model your files, get structured data back. LLMs are remarkably good at reasoning over document content, but reliable document understanding takes more than a model. It takes a system around the model: deterministic perception to read the page, structure to preserve its meaning, grounding to tie outputs to evidence, and confidence to flag when the system may be wrong.

For a machine, reading and understanding a business document is a stack of problems.
Start with the page. Real-world documents have stamps, watermarks, and bleed-through ink. Low-quality scans. Handwriting that borders on illegible. Signatures, curved text, text running in different directions, and tables with no cell borders.
Next comes language. Supporting the world’s documents means supporting hundreds of languages, each with its own characters and conventions, sometimes mixed in the same file. The characters compound it: a 1 and an l, a 0 and an O. Some Russian characters are nearly identical to their English counterparts, so the system has to decide from context which alphabet it’s even looking at.
Locale adds another layer of ambiguity. The same date can mean March 4 or April 3, depending on where it was written. Currency formats shift between markets. The same term carries different meanings in different regions. A system that reads global documents has to read them the way each locale wrote them.
These are document problems, not standalone LLM problems, and they get solved in one unglamorous edge case at a time.
Then you have to account for reading order. Which line comes “next” on a page with three columns, a sidebar, and a footer? A structured document is text plus layout, and meaning often lives in the layout: which number sits under which column header, which box a label points at.
If you give an LLM only a linearized text version of a page, you throw away spatial relationships that may carry meaning. If you give it the page as an image, the layout survives, but visual question answering is harder and more expensive for LLMs than reasoning over text, and measurably more error-prone.
Foundation model teams are incentivized to meet or exceed benchmarks, not to ensure a 0 didn’t become an O in row 40 of a scanned table. That work falls to whoever builds the document understanding system. And some of the most critical data in documents are not predictable with context or world knowledge, for instance, serial numbers or MRZ code.
On their own, probabilistic outputs break enterprise workflows, and they’re worse for agents. An agent doesn’t simply display the wrong number. It acts on it. An agent paying an invoice off a misread total doesn’t produce a typo. It produces an incorrect wire transfer.
Our story begins 10 years before anyone was pointing LLMs at PDFs, when the problem was teaching a machine to read at all.
It started around 2016 with a new OCR engine from Microsoft Research Asia. This was pre-transformer, convolutional, English-only, and industry-leading at the time. Before you can understand a document, you have to see it. You have to be able to find the text lines in a skewed scan, separate characters from stamps and stains, and decide what’s a letter and what’s noise. This layer is deterministic in the operational sense: the same page in, the same reading out, with no sampling.
Our first expansion, Spanish, took the entire team about six months. That pace doesn’t scale, so we invested in the machinery: data collection, labeling pipelines, evaluation, iteration. The unlock was to organize languages into scripts—Latin, Cyrillic, and so on—and build one model per script instead of one per language.
One engineer shipped the last 50 languages in a single month. In 2016, our technology was English-only. Today, we support 309 languages.
OCR hands you a wall of words. The customer needs specific data. That gap between content extraction and field extraction pushed us into entity recognition and document verticals: receipts, invoices, IDs, passports. The system has to recognize the type of document, understand its purpose, and know which figures matter in it. We built entity-specific benchmarks to test whether it gets the dates, amounts, and identifiers right within a specific document type.
With Microsoft Research Asia, we built LayoutLM followed by LayoutXLM in 2021—transformers that take each word’s position as input alongside the word itself. The model reasons in two dimensions, the same way your eye scans a form. We added state-of-the-art table detection and recognition in 2022, which is critical because a small structural mistake in a table can corrupt every downstream answer.
When retrieval-augmented generation took off, PDFs suddenly mattered a lot more. The knowledge behind every enterprise chatbot lives primarily in documents. But retrieval systems split documents into pieces for indexing, and a naive splitter can cut a table away from the heading that explains it, leaving one chunk full of numbers with no label and another with a label and no numbers. Demand for our layout work exploded.
By then we had mature, purpose-built systems for reading, page structure, and field extraction. But by 2023, when LLMs showed up, everyone in the field was asking the same question about their stack: can LLMs just replace all of this? With a decade of purpose-built neural models on the line, we asked it, too.
We didn’t wait for an answer. In 2024, we started building LLM-based field extraction, which became Azure Content Understanding, one of the first products to combine traditional content extraction with LLMs.
We learned two things:

Today, our perception models convert documents into Markdown, preserving structure such as headings, tables, and reading order before the content is passed to an LLM for field extraction.
We’ve also experimented with sending the rendered page image alongside the Markdown. The results have been mixed. This is an open engineering frontier, and we’re working to close the gap on structured documents.
The LLM couldn’t replace the stack. It improved one layer, on some document types, while still relying on the rest of the existing layers. The deterministic perception models still do the seeing. It turned out that the real question is what you build around an LLM so an enterprise can trust its output.
The lesson from a decade of work is that an LLM is an important part of a document understanding system, but it is not the whole system. In Azure Content Understanding, we use the LLM as the reasoning engine and build several layers around it to address the failure modes we’ve seen repeatedly in production:



These layers reinforce one another. Perception establishes what’s on the page. The LLM reasons about what it means. Grounding connects that reasoning back to evidence. Confidence exposes uncertainty. The schema turns the result into something software can act on.
Just as importantly, this separation lets us apply LLM reasoning selectively, rather than using it for work that more specialized components can already do well. With our most recent contextualization work, the pre-built analyzers in the current preview cut LLM token consumption by up to 99%, and some extractions use no LLM tokens at all. A mature document pipeline uses the model’s reasoning where it adds value, rather than everywhere by default.
Closing the structured-document gap is our near-term priority. The goal is for the LLM-based approach to win across every document type rather than only where language dominates layout.
The reasoning layer is expanding as well. Our newest preview adds an agentic mode for the hardest extractions, where evidence is spread across a long document and values must be compared and validated against intermediate results before a final answer. It costs more in latency and tokens, so it’s there for cases where quality matters most.
And all this is relevant beyond PDFs. The same problem—feeding unstructured content in and getting trustworthy structured data out—extends to images, audio, and video, too. And we’re already working on those modalities.
Breakthroughs matter, but trust is built one edge case at a time.
Over a decade of work, the models and hardware were replaced several times, and the failure modes were addressed one by one. We spent years sharpening the system against the thousands of ways real-world documents fail: a missing decimal point, a blurry scan, a malformed table, a signature in the wrong place.
If you’re building with LLMs today, the model matters, but don’t confuse it for the system itself. The system is everything you build around the model so its intelligence holds up on real documents, at real volume, where mistakes have real costs.
The post Azure Content Understanding: Building on lessons from a decade of Document Intelligence appeared first on Command Line.