inbox_email_analysis.classified
Fires every time an email reported to the Inbox is classified, including reclassifications.
The data payload follows the OCSF Detection Finding (class 2004, v1.4.0) schema so it can be ingested by SIEMs and SOARs without custom mapping.
Headers
Unique identifier of this webhook event. The same id is sent on every retry; use it as an idempotency key.
Unix timestamp (seconds) at which this delivery attempt was made. Used together with webhook-id and the body to verify the signature.
Space-delimited list of signatures, one per active endpoint secret (e.g. v1,sig1 v1,sig2).
Each signature is v1,<base64(HMAC-SHA256(secret, "<webhook-id>.<webhook-timestamp>.<body>"))>. Verify against the raw request body; re-serializing the JSON will change the bytes and invalidate the signature.
true on a test delivery. A real event never carries this header.
Payload
Example payload
{
"data": {
"activity_name": "Create",
"actor": {
"user": {
"email_addr": "jane.doe@acme.example",
"name": "Jane Doe"
}
},
"category_name": "Findings",
"class_name": "Detection Finding",
"evidences": [
{
"email": {
"from": "no-reply@suspicious.example",
"message_uid": "<abc@mail.example>",
"subject": "Action required"
}
}
],
"finding_info": {
"analytic": {
"type": "Rule"
},
"src_url": "https://hub.tryriot.com/inbox/01HW...",
"types": [
"Phishing"
]
},
"metadata": {
"product": {
"feature": {
"name": "Phishing Reports"
},
"name": "Riot",
"vendor_name": "Riot"
},
"version": "1.4.0"
},
"observables": [
{
"type": "Email Address",
"type_id": 5,
"value": "no-reply@suspicious.example"
}
],
"severity": "High",
"severity_id": 4,
"status": "New",
"type_name": "Detection Finding: Create",
"unmapped": {
"riot": {
"analysis_status": "fraudulent",
"classification_bucket": "credential_harvesting",
"explanations": [
{
"description": "Sender domain was registered less than 7 days ago.",
"evidence_key": "auth_checks",
"evidence_label": "Authentication checks",
"evidences": [
"paypa1-secure.example",
"login-alert.example (in invoice.pdf)"
],
"sentiment": "threat",
"source": "static_tag"
}
],
"report_source": "outlook"
}
}
}
}Response
Event accepted. Any 2xx status code is treated as success; the receiver does not need to return a body.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.