The Dynamic Action Bar — a persistent, context-aware Copilot entry point inside Word, Excel, PowerPoint and PDF previewers, the most-visited surface in M365 mobile.
The previewer was the most-visited surface in M365 mobile — and the one with the lowest AI engagement. The intelligence was there; the bridge to it wasn't.
"The question wasn't 'how do we add AI to previewers?' — it was 'how do we make Copilot feel like it was always supposed to be here?'"
Many surfaces. Zero consistency.
That became the Dynamic Action Bar (DAB) — a persistent, adaptive layer blending Copilot and native app actions into one always-present button at the bottom of every previewer. It had to flex across two very different content models:
Files created outside AI — docs, sheets, decks, PDFs. Users come to read or edit; AI is a layer on top.
Word · Excel · PowerPoint · PDF
Content generated and refined by AI — images, Pages, emerging formats where AI is central.
Images · Pages · AI-generated outputs
Every decision was filtered through mobile constraints and one goal: consistency across surfaces.
DAB anchors to the same spot across every previewer. Predictability is a feature.
Copilot and app actions share one surface — AI actions lead, native actions support.
Copilot responses open in a half-sheet — users never lose sight of the document.
No cluttered toolbars, no disruptive mode switches. DAB stays visible without getting in the way.
From opening a file to acting on AI output — DAB stays present, useful, and out of the way.
The Dynamic Action Bar is now the standard for how Copilot surfaces inside document-centric experiences across M365 mobile — a pattern designed once, deployed across hundreds of millions of installs.
Set direction and pressure-tested the spec with the PM.
Grounded every decision in usage data, not assumptions.
Designed the DAB system and its action hierarchy.
Extended one pattern across Word, Excel, PPT & PDF.
Presented at milestones; defended rationale to senior leaders.
Read live engagement metrics weekly to validate and iterate.