Copilot integration in windows

Scalablenotificationdesign system

  • Copilot
  • Microsoft

How I took a menu with one item and feature and defended it transform into an entry point for a million Windows users.

Duration
1 month
Role
Owner
Users
1M WAU
Status
LIVE in Copilot
Scalable Notifications for Copilot
A Copilot sign-in toast on a tinted panel

The Problem

M365 Copilot is installed in 3 digit million commercial devices.

The weekly active users (WAU) is a fraction of that and people chatting with Copilot is another fraction of this WAU.

These are all licensed folks, people/companies paying for the product but because the product comes preinstalled on these devices, it was easy to miss it’s presence; if we did not inform the user.

Notification were a solution but a very difficult one.

We designed a system to inform without interrupting.

The nature of notifications is like a poisoned well,
anything that resembles A notification will suffer because of it

Devices in Segment

0m

500M

Dormant Users

Taskbar unpinned

Background user only

Unauthenticated

Users in Scale

0m

500M

Existing users (using the app)

Existing users (NOT using the app)

Lapsed

New users (Copilot active)

Data shows the truth

I sized every segment before anything was designed, and ranked on reach multiplied by click-through rather than on reach alone.

Two scales are in play and it matters which one you are reading

1. The top group counts devices 2. The bottom group counts people

The notification framework: segments crossed with three kinds of message

The system built

Segmentation

Users were sorted into six mutually exclusive states based on how they engaged with the app: new active, existing active (frequent), existing active (occasional), lapsed, dormant, and background-only.

Three kinds of message

General notifications introduce the app and its top-level value. Module notifications introduce Search, Create, Notebooks and Agents. Native feature notifications introduce platform-specific capability such as Quick View and voice access.

No segment receives all three.

Notifications

Restraint is a feature

Restraint is a feature

The cycle for any promotional segment runs three notifications deep and then stops. What happens at each step is decided by how the user got rid of the notification before it.

Eligible
30 day soft cooldown
never
refused
RETRY LATER
Notification 1
Day 1
Timed out
SELF DISMISSED
User active
Notification 2
Day 2
USER CONVERTS
Cancel the queue
Goal
Achieved
Day 3
Notification 3
Supressed

A global cap for notifications

A global cap for notifications

We cannot have have too many notifications. The timings carry more of the design than the copy does. One rule holds the whole thing together. If a user completes sign-in between the trigger firing and the notification going out, the notification is pulled from the pipeline.

Trigger

App launched and closed before sign in completes

30 min - 1 hr
15-30 min
5- 15 min
M365 Copilot

Continue setting up you account

Sign-in now to get started on the app.

Sign-in now
M365 Copilot

We noticed you didn’t finish signing in

Complete your login and unlock all features

Sign-in now
M365 Copilot

Having trouble signing in?

Tap to try again and enjoy all app features

Sign-in now

a short break
then restate the benefit

intent is shown
but not acted upon

intent is live
error may have cleared

Summary toast anatomy with annotated header, body and action

Anantomy of a notification

Summary toast anatomy, showing the minimum two-line and maximum four-line body states against a fixed header and action.

A notification system is mostly a suppression system.

Almost all the interesting design work sat in the caps, the cooldowns, the cancel-on-transition rule and the settings we agreed to honour. Everything that makes a notification good is a decision about when not to send one.