---
name: microsoft-clarity-daily-ux-issues
description: "Every morning: yesterday's pages with the most rage clicks, dead clicks and quick backs in Microsoft Clarity, with session counts for scale. Use when the user asks for this, or when it runs on a schedule."
---

# Microsoft Clarity daily UX issues report

Every morning: yesterday's pages with the most rage clicks, dead clicks and quick backs in Microsoft Clarity, with session counts for scale.

Clarity records where visitors rage click, click on things that do nothing, and bounce straight back. The dashboard shows it well, but only if someone opens it, and the export API remembers just the last three days, so a weekly look misses most of the week.

The agent reads yesterday once each morning, ranks pages by frustration per session so a busy page doesn't win on volume alone, and keeps its own history. Product managers and marketers see the page that broke after a release the next morning, while the recordings are still fresh.

## Two ways to get the data

Use the API or MCP route when you have an MCP server, a CLI or an API token for the app. Otherwise, if you can drive a browser the user is signed in to (Claude in Chrome, a Playwright or Chrome DevTools MCP server), use the browser route. Say which one you used.

## Route A: API or MCP server

### What you need

- A Clarity Data Export API token (Settings > Data Export > Generate new API token; project admins only) in `CLARITY_API_TOKEN`, or Microsoft's Clarity MCP server (`@microsoft/clarity-mcp-server`), which uses the same API.
- Both routes share the limit of 10 export calls per project per day, so leave room if other tools use the token.

If something is missing, say what and stop; do not invent numbers.

### Steps

1. **Pull yesterday by page** (Microsoft Clarity): Call `GET https://www.clarity.ms/export-data/api/v1/project-live-insights?numOfDays=1&dimension1=URL` with `Authorization: Bearer <token>`. The response has a block per metric (Traffic, Rage Click Count, Dead Click Count, Quickback Click, Excessive Scroll, Script Error Count, Error Click Count), each broken down by URL, in UTC and capped at 1,000 rows.
2. **Rank by frustration per session**: Join the metrics on URL and work out rage clicks, dead clicks and quick backs per 100 sessions. Keep pages with at least 50 sessions, so one angry visitor on a quiet page doesn't top the list.
3. **Keep the history**: The API only reaches back 3 days, so append each day's numbers to a JSON file and compare every page with its own 7-day average. A page that doubled is news; a page that is always high is a known issue.
4. **Post the report**: The top 5 pages with sessions and the three counts, the page that moved most against its average, and which behavior to filter on when you open its recordings in Clarity.

## Route B: the browser

### What you need

- Signed in to Clarity (Microsoft, Google or Facebook account) with at least Member access to the project.

If something is missing, say what and stop; do not invent numbers.

### Steps

Start at https://clarity.microsoft.com/projects. The user is signed in already; never type passwords or codes, and ask if a sign-in page appears.

1. **Open the project dashboard**: Open `https://clarity.microsoft.com/projects`, pick the project, and open **Dashboard**. Set the date picker to a **Custom** range of yesterday only; Clarity days run midnight to midnight UTC.
2. **Read the popular pages**: In the **Popular pages** card, note the sessions for each page. Pages with fewer than 50 sessions are too quiet to rank.
3. **Filter by each frustration signal**: Click **Filters**, open **User actions**, and apply **Rage clicks**; the dashboard now shows only sessions with rage clicks, so read **Popular pages** again to get rage-click sessions per page. Repeat with **Dead clicks** and **Quick backs**, clearing the filter in between.
4. **Rank and compare**: Divide each page's filtered sessions by its total sessions for a rate per 100 sessions, rank the top 5, and compare with the figures you saved on earlier days to find the page that moved most against its 7-day average.
5. **Point to the recordings**: For the top page, open **Recordings** with the same date and filters applied; the agent reports which filter to keep when you watch them.

Note: The dashboard counts sessions that contain a signal, while the export API counts the clicks themselves, so browser and API numbers differ; use one route consistently. Popular pages shows a limited list, so a site with many URLs needs the URL filter per page. Dashboard data can lag an hour or two behind the day.

## The report

- **Top pages** by frustration yesterday: sessions, rage clicks, dead clicks and quick backs.
- **Biggest change** against each page's 7-day average.
- **Script errors** on pages where they rose.
- One line on which recordings to watch first.

## Post it to Briefkin

When `BRIEFKIN_TOKEN` is set, or `~/.config/briefkin/env` exists (the installer from https://briefkin.dev/docs writes it), also send the result to the user's Briefkin board as one card. Keep the `item_key` the same on every run so the card updates in place, use a new `event_id` per run, and put today's real numbers in place of the example ones. If the request fails, say so once and carry on.

```bash
[ -n "${BRIEFKIN_TOKEN:-}" ] || . ~/.config/briefkin/env
curl -sS -X POST "${BRIEFKIN_URL:-https://briefkin.dev}/v1/events" \
  -H "authorization: Bearer $BRIEFKIN_TOKEN" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "v": 1,
  "event_id": "microsoft-clarity-daily-ux-issues/<date of this run, e.g. 2026-10-16>",
  "item_key": "microsoft-clarity-daily-ux-issues",
  "project": "example.com",
  "source": "Microsoft Clarity daily UX issues report skill",
  "kind": "update",
  "title": "Rage clicks on checkout nearly tripled",
  "summary": "**/checkout** had **214 rage clicks** across 1,960 sessions yesterday, almost three times its 7-day average. Dead clicks on /pricing also stayed high after Tuesday's redesign.",
  "widget": [
    {
      "type": "Table",
      "props": {
        "columns": [
          "Page",
          "Sessions",
          "Rage clicks",
          "Dead clicks",
          "Quick backs"
        ],
        "align": [
          "left",
          "right",
          "right",
          "right",
          "right"
        ],
        "rows": [
          [
            "/checkout",
            1960,
            214,
            88,
            41
          ],
          [
            "/pricing",
            3420,
            37,
            402,
            156
          ],
          [
            "/signup",
            2780,
            22,
            96,
            73
          ],
          [
            "/docs/getting-started",
            1510,
            9,
            61,
            118
          ],
          [
            "/account/billing",
            640,
            31,
            27,
            12
          ]
        ]
      }
    },
    {
      "type": "Callout",
      "props": {
        "text": "Rage clicks on /checkout ran at 10.9 per 100 sessions against a 7-day average of 3.8. Watch recordings of that page filtered to rage clicks first.",
        "tone": "bad"
      }
    }
  ]
}
JSON
```

Widgets come from the Briefkin catalog (https://briefkin.dev/v1/catalog). Without a token, just give the user the report.

## Run it on a schedule

Suggested: Daily at 8:00 (`0 8 * * *`). From cron, with the agent signed in on that machine:

```bash
0 8 * * * claude -p "Run the microsoft-clarity-daily-ux-issues skill"
# Codex: codex exec, Gemini CLI: gemini -p, Copilot CLI: copilot -p, OpenCode: opencode run
```

Or use the agent's own scheduler (Claude Code routines, Codex automations, Claude or ChatGPT scheduled tasks): https://briefkin.dev/skills/microsoft-clarity-daily-ux-issues#schedule

Source: https://briefkin.dev/skills/microsoft-clarity-daily-ux-issues
