aiwatch AI usage inventory and inline policy
Sample data, synthetic tenants

Northwind Freight (sample)

Every AI tool this organisation's people touched, built from browser and desktop sensor events. Each event is deduplicated on its id within this tenant, checked against the tenant's policy inline, and answered with allow, coach or block before the sensor releases the action.

15
AI apps discovered
10
not on approved list
1322
events ingested
96
retries deduplicated
384
coached in the moment
45
blocked

AI application inventory 15 apps, sorted by interventions

ApplicationStatusRetention riskUsersPromptsPastedUploadsOAuthCoachedBlockedLast seen
ChatGPT (consumer)
OpenAI · Chat assistant
Unapproved high 41 47 134.4 KB 9 3 113 10 1h ago
Gemini
Google · Chat assistant
Unapproved high 30 17 8.3 KB 4 3 46 5 1h ago
Fireflies.ai
Fireflies · Meeting notes
Unapproved high 26 9 8.9 KB 3 1 36 3 1h ago
Otter.ai
Otter.ai · Meeting notes
Approved high 34 29 108.6 KB 9 5 38 0 1h ago
Claude
Anthropic · Chat assistant
Unapproved medium 34 24 181.7 KB 8 3 27 8 1h ago
Gamma
Gamma · Image and video
Unapproved high 23 12 44.6 KB 3 0 30 1 1h ago
Perplexity
Perplexity · Research and search
Unapproved medium 30 18 32.0 KB 2 4 24 6 1h ago
Bolt
StackBlitz · Code assistant
Unapproved high 17 9 91.5 KB 4 1 24 3 1h ago
QuillBot
Learneo · Writing
Unapproved high 19 14 17.9 KB 3 1 24 2 1h ago
DeepSeek Chat
DeepSeek · Chat assistant
Unapproved high 20 8 49.8 KB 3 1 18 4 1h ago
ai-pdf-summarizer.example.net
Unknown · Unclassified
Unapproved high 6 4 63.0 KB 3 0 4 3 1h ago
ChatGPT Enterprise
OpenAI · Chat assistant
Approved low 46 158 1022.4 KB 42 20 0 0 1h ago
GitHub Copilot
GitHub · Code assistant
Approved low 45 54 211.7 KB 19 8 0 0 1h ago
Grammarly
Grammarly · Writing
Approved medium 43 40 274.4 KB 23 7 0 0 1h ago
Notion AI
Notion · Writing
Approved medium 37 31 244.9 KB 9 3 0 0 1h ago

Sensor traffic

About 8% are replays of earlier event ids, the way a sensor retries after a dropped connection. They are answered with the original decision and never counted twice.

Policy evaluator latency last 1322 decisions

40 nsp50
91 nsp99
250.0 µsbudget
0 decisions over budget. Rules compile into a lookup table keyed by event type, approval status and risk tier, so evaluation does no allocation.

Recent interventions

  • blockDeepSeek Chat · upload
    ava.k@northwind.example · block-sensitive-upload-unsanctioned
  • coachChatGPT (consumer) · visit
    isla.o@northwind.example · coach-visit-unsanctioned
  • coachPerplexity · visit
    nikhil.o@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · visit
    nikhil.o@northwind.example · coach-visit-unsanctioned
  • coachClaude · visit
    dev.w@northwind.example · coach-visit-unsanctioned
  • coachGemini · visit
    tara.g@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    kemi.c@northwind.example · coach-large-prompt-unsanctioned
  • coachBolt · visit
    tara.h@northwind.example · coach-visit-unsanctioned
  • coachGemini · prompt
    elena.i@northwind.example · coach-high-retention-prompt
  • coachPerplexity · visit
    tara.m@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    kemi.g@northwind.example · coach-high-retention-prompt
  • coachGamma · prompt
    liam.s@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    victor.g@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · visit
    sam.c@northwind.example · coach-visit-unsanctioned
  • coachGamma · visit
    tara.t@northwind.example · coach-visit-unsanctioned
  • coachPerplexity · visit
    ben.n@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · visit
    isla.r@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · visit
    ava.l@northwind.example · coach-visit-unsanctioned
  • blockDeepSeek Chat · upload
    yusuf.n@northwind.example · block-sensitive-upload-unsanctioned
  • coachBolt · prompt
    tara.g@northwind.example · coach-high-retention-prompt
  • coachFireflies.ai · visit
    rosa.o@northwind.example · coach-visit-unsanctioned
  • coachGemini · visit
    elena.i@northwind.example · coach-visit-unsanctioned
  • coachClaude · visit
    elena.i@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · prompt
    pablo.w@northwind.example · coach-high-retention-prompt
  • coachPerplexity · visit
    tara.c@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · prompt
    jonah.n@northwind.example · coach-high-retention-prompt
  • blockPerplexity · upload
    dev.b@northwind.example · block-sensitive-upload-unsanctioned
  • coachDeepSeek Chat · prompt
    tara.g@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · prompt
    jonah.b@northwind.example · coach-high-retention-prompt
  • coachClaude · visit
    yusuf.n@northwind.example · coach-visit-unsanctioned
  • coachQuillBot · prompt
    chloe.r@northwind.example · coach-high-retention-prompt
  • coachOtter.ai · upload
    isla.f@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    grace.t@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · visit
    kemi.g@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · visit
    quinn.w@northwind.example · coach-visit-unsanctioned
  • blockChatGPT (consumer) · upload
    olga.h@northwind.example · block-sensitive-upload-unsanctioned
  • coachChatGPT (consumer) · prompt
    sam.j@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    jonah.n@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · visit
    yusuf.g@northwind.example · coach-visit-unsanctioned
  • coachFireflies.ai · visit
    farid.c@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · visit
    grace.e@northwind.example · coach-visit-unsanctioned
  • coachGamma · visit
    ava.s@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    isla.r@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    isla.o@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    elena.i@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    farid.d@northwind.example · coach-visit-unsanctioned
  • coachPerplexity · visit
    quinn.w@northwind.example · coach-visit-unsanctioned
  • coachGemini · visit
    tara.g@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    victor.g@northwind.example · coach-high-retention-prompt
  • coachGamma · visit
    nikhil.n@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    kemi.g@northwind.example · coach-high-retention-prompt
  • coachQuillBot · visit
    liam.s@northwind.example · coach-visit-unsanctioned
  • blockChatGPT (consumer) · oauth_grant
    yusuf.n@northwind.example · block-broad-oauth-unsanctioned
  • coachChatGPT (consumer) · prompt
    farid.d@northwind.example · coach-high-retention-prompt
  • coachGemini · prompt
    nikhil.n@northwind.example · coach-high-retention-prompt
  • coachChatGPT (consumer) · visit
    farid.c@northwind.example · coach-visit-unsanctioned
  • coachChatGPT (consumer) · prompt
    ava.l@northwind.example · coach-high-retention-prompt
  • coachOtter.ai · prompt
    tara.t@northwind.example · coach-high-retention-prompt
  • coachOtter.ai · prompt
    ben.n@northwind.example · coach-high-retention-prompt
  • coachFireflies.ai · visit
    liam.s@northwind.example · coach-visit-unsanctioned

Active policy first match by severity: block, then coach, else allow

blockblock-sensitive-upload-unsanctioned

On upload to unapproved apps; risk tier medium or higher; data or secret file type.

"Uploading data files to an unapproved AI tool is blocked. Use {alt} instead."

blockblock-broad-oauth-unsanctioned

On oauth_grant to unapproved apps; mail, file or code scopes.

"This app asked for access to mail, files or code. Grants to unapproved AI apps are blocked."

coachcoach-large-prompt-unsanctioned

On prompt to unapproved apps; content at least 4.0 KB.

"That is a large paste into an unapproved tool. {alt} is approved for this and keeps your data out of training."

coachcoach-high-retention-prompt

On prompt, upload to any app; risk tier high or higher.

"This tool may retain or train on what you submit. Leave out customer data, or switch to {alt}."

coachcoach-visit-unsanctioned

On visit to unapproved apps; risk tier medium or higher.

"This AI tool is not on the approved list. {alt} covers the same job."

Sensor ingest API

curl -s https://aiwatch.levelbrook.com/v1/events \
  -H 'Authorization: Bearer sk_demo_northwind' \
  -d '{"id":"evt_demo_001","user":"ava.k@northwind.example","sensor":"browser",
       "type":"upload","domain":"chat.deepseek.com","file_ext":"csv","content_bytes":482113}'
The tenant comes from the sensor key, never from the body; a body that names another tenant is refused with 403. Prompts arrive as a SHA-256 of redacted content plus a size, and the decoder rejects unknown fields, so raw prompt text cannot be stored by accident. Send the same id twice and the second call returns "status":"duplicate" with the original decision.