push connector · logs ingestion api
Wytness for Microsoft Sentinel
Push Wytness anomalies into a custom Sentinel table you own. Your SOC sees them next to everything else they investigate.
what it does
Where your alerts land
Sentinel is where your SOC already lives. Wytness sends every anomaly to a custom Log Analytics table that you provision and own, via the Logs Ingestion API. Your detection rules, workbooks, and Logic Apps run against Wytness records the same way they run against any other source.
setup
From nothing to first delivery
01
In your Azure tenant, create a Data Collection Endpoint (DCE) and a Data Collection Rule (DCR) with a custom stream declaration for Wytness anomalies, flowing to a custom table in your Log Analytics workspace.
02
Create an App Registration with a client secret; grant its service principal the Monitoring Metrics Publisher role on the DCR (allow a few minutes for the role to propagate).
03
In the Wytness app, go to Integrations → Connectors → Add connection → Microsoft Sentinel and enter the tenant ID, client ID, client secret, DCE endpoint, DCR immutable ID, and stream name. The delivery URL is derived for you.
04
Click Test connection. A test record should appear in your custom table within a few minutes (Log Analytics ingestion lag, not Wytness).
05
Save. Anomalies dispatch within about 30 seconds of detection.
azure cli · service-principal provisioning
# After creating the DCE + DCR + custom table (portal or template),# register the Entra app and grant the role: $ az ad app create --display-name "Wytness Logs Ingestion" \ --sign-in-audience AzureADMyOrg$ az ad app credential reset --id <APP_ID> --append --years 1$ az ad sp create --id <APP_ID>$ az role assignment create \ --assignee <SP_OBJECT_ID> \ --role "Monitoring Metrics Publisher" \ --scope <DCR_RESOURCE_ID>The DCE, DCR, and custom table can be provisioned in the portal or by template — the /docs/connectors setup guide walks through the exact pieces and the six wizard values.
the payload
What arrives in your custom table
Every anomaly POSTs to {dce}/dataCollectionRules/{dcr-id}/streams/{stream-name} as a list-of-one record matching your DCR streamDeclaration. Field names stay stable so your KQL keeps working as the connector evolves.
[ { "TimeGenerated": "2026-05-23T14:23:41Z", "AlertId": "9f2d1c34-8a7b-4e2d-b1a0-5c6d7e8f9a0b", "AgentId": "payments-reconciler-v3", "RuleName": "off_hours_activity", "Severity": "high", "Description": "Tool invocation outside business hours window (08:00-18:00 AEST).", "Source": "Wytness", "WytnessUrl": "https://app.wytness.ai/anomalies?alert_id=9f2d1c34-8a7b-4e2d-b1a0-5c6d7e8f9a0b" }]prove it landed
Verify end to end
Run this in your Log Analytics workspace after firing a Wytness test record. One row in the last hour means the pipeline is wired correctly end-to-end.
// Confirm Wytness records are landing — replace Wytness_CL with the// custom-table name you chose in your DCR streamDeclaration.Wytness_CL| where TimeGenerated > ago(1h)| where Source == "Wytness"| project TimeGenerated, AgentId, RuleName, Severity, AlertId| order by TimeGenerated desc| take 50the boundary
What flows and what doesn't
Writes
Anomaly records to one custom `*_CL` table you control
Auth
OAuth2 client-credentials against Entra ID; tokens cached and refreshed automatically
Reads
Nothing. We never query your workspace.
Other tables
Not touched. Scoped to the single DCR stream you provision.
Network
No change on your side — deliveries are outbound from Wytness to Azure's Logs Ingestion API. Wytness source IPs are not fixed; the Entra service principal is the authentication.
what you need
Required permissions
- ✓Monitoring Metrics Publisher on the target Data Collection Rule
- ✓App Registration with a client secret (or federated credential)
- ✓Tenant ID, Client ID, DCE endpoint, DCR immutable ID, stream name
stated plainly
Limitations
—
Latency
Wytness dispatches within about 30 seconds of detection; Log Analytics then applies its own ingestion lag — typically a couple of minutes before records are queryable.
—
Ingestion costs
Logs Ingestion API records count against your workspace ingestion. Wytness sends one record per anomaly, not per event; at launch volumes this is measured in MB per month, not GB.
—
PII pseudonymisation
Anomalies sent to Sentinel are already pseudonymised on the way in. Raw PII never reaches your workspace; Sentinel sees the same EMAIL_a3f9b1c4 pseudonym shape your auditor sees in the Evidence Pack.
related
Keep reading
/docs/connectors
Connector setup guide
The full integrator contract — network requirements, delivery semantics, and every wizard field. Read the guide.
/connectors
All connectors
Sentinel, Splunk, ServiceNow, Slack, and the generic webhook. See the index.
tier
Tier availability
Business plan or higher.