Malicious-link Clicks & Mail ZAP Did Not Remove (30 days)
The question it answers: Who clicked malicious links in the last 30 days, and which malicious mail did zero-hour auto purge not remove?
After a phishing wave the first question is: who clicked? This report lists users who clicked through a Safe Links warning or opened a link later found malicious, and mailboxes where zero-hour auto purge tried to remove malicious mail and failed.
At a glance
Section titled “At a glance”| Where in the app | Tenant › Defender & Security Operations › Malicious Clicks & ZAP Misses |
| Workload | Security |
| Kind | Findings list · dashboard tile |
| Data | Read from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). |
| Licence | Defender for Office 365 Plan 2. |
| Report id (API and MCP) | tenant.secops.malicious-clicks |
Columns
Section titled “Columns”| Column | Key | Type |
|---|---|---|
| Severity | Severity | Status |
| Event | Category | Text |
| User / mailbox | Subject | Link |
| Check | Setting | Text |
| Count | Value | Text |
| Finding | Finding | Text |
| Threats / URLs | Detail | Text |
| Last | When | Date |
| Events | Number | Number |
A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).
What it needs
Section titled “What it needs”Licence: Defender for Office 365 Plan 2.
Application permissions on the IntensiveReports app registration (all permissions):
| Permission | API | What it allows | Note |
|---|---|---|---|
ThreatHunting.Read.All | Microsoft Graph | Run hunting queries and read shared saved hunting queries |
Data sources it reads
POST /v1.0/security/runHuntingQuery (UrlClickEvents, EmailPostDeliveryEvents)
Through the API and MCP
Section titled “Through the API and MCP”GET /ir-api/v1/reports/tenant.secops.malicious-clicks?size=100An AI assistant reads it with the MCP tool get_report and the id tenant.secops.malicious-clicks. The client needs the Read grant for Security. See Using the API.