What Is Fantomo?
Official Admin Guide
Introduction

What Is Fantomo?

Fantomo is a cloud-native SaaS Governance and Data Loss Prevention (DLP) platform purpose-built for modern, distributed organizations. It gives IT and security administrators comprehensive visibility into which cloud applications employees are using, what data is being shared through browsers, and whether security policies are being followed — all without deploying complex network proxies, VPNs, or heavyweight endpoint agents.

This guide covers every screen, setting, toggle, and option in the Fantomo Admin Portal. It is written for administrators coming in cold — no prior security background is assumed. By the end, you will understand not just how to configure each feature, but why it matters and how to extend your security program beyond Fantomo over time.

The Two-Tier Architecture

Fantomo operates through two complementary detection layers that work in tandem:

Tier 1: Agentless API Sync
Google Workspace integration

Connects directly to your Google Workspace tenant via Domain-Wide Delegation (DWD). Analyzes Gmail subject-line headers to detect SaaS signups (e.g. "Welcome to Notion"), and pulls OAuth Reports API data to enumerate every third-party app your employees have granted Google access to. Zero software installed on endpoints.

Tier 2: Browser Extension (DLP)
Force-deployed via MDM

A lightweight enterprise browser extension deployed to Chrome, Edge, or other Chromium browsers via your MDM system (Jamf, Google Workspace, Fleet, etc.). Enforces data loss prevention rules in real-time — matching form inputs, file uploads, and clipboard pastes against configured patterns. Displays branded warning modals when violations are detected.

What Data Does Fantomo Collect?

Understanding the data model prevents confusion about scope and addresses employee privacy questions before they arise.

Data TypeCollected?Details
Domain names visitedYesThe hostname only (e.g. notion.so). Not the full URL path, query string, or page content.
Email subject linesYes (headers only)Gmail metadata headers for SaaS signup/login detection. Not email body content.
OAuth grant scopesYesThe list of permissions a third-party app has been granted by an employee's Google account.
DLP match snippetsChecksum onlyWhen a DLP rule fires, a one-way hash of the matched text is logged — never the raw sensitive data itself.
Full page contentNeverFantomo does not read, store, or transmit page HTML, page text, or user-typed content (except pattern matching which stays local).
Passwords or credentialsNeverPassword fields are explicitly excluded from all DLP scanning.
Network traffic contentNeverFantomo is not a proxy. It does not intercept, decrypt, or inspect TLS traffic.
🔒 InfoSec 101: Privacy-First Security Design

Many organizations face pushback when rolling out security monitoring tools because employees fear surveillance. Fantomo's design explicitly avoids collecting sensitive personal data — only domain-level telemetry and cryptographic hashes. This makes it far easier to get legal, HR, and works-council approval compared to full SSL-inspection proxies. When communicating the rollout to employees, emphasize what is not collected.

Admin Portal Navigation Overview

The admin portal is divided into two navigation modes that you toggle between:

  • Operational view — Dashboard, Activity Logs, SaaS Governance, and Data Protection (DLP) sections for day-to-day security operations.
  • Settings view — Accessed by clicking the settings icon or any Settings nav item. Covers integrations, user management, billing, and configuration. A "← Back to Dashboard" button returns you to the operational view.

A floating Help button in the bottom-right corner of every page links directly to the relevant section of this guide. A context-sensitive Admin Manual link also appears at the bottom of the sidebar, always pointing to the guide section matching your current page.

Admin Roles at a Glance

RoleWhat They Can DoTypical Assignment
OwnerFull access — billing, delete org, rotate API keys, all settings.CTO, IT Director, primary account holder.
AdminRead-write settings — rules, integrations, playbooks, user management (cannot access billing or rotate keys).Security analyst, IT administrator.
Read OnlyView all dashboards, logs, and telemetry. Cannot change any configuration.Auditor, compliance officer, CISO observer.
UserStandard employee — no admin portal access.General workforce enrolled via extension.
⚠️ Best Practice: Least Privilege for Admin Roles

Do not assign the Owner role to more than 1–2 people. Use Admin for day-to-day security staff and Read Only for auditors and executives who need visibility without the ability to accidentally change configurations. The principle of least privilege — giving each person only the access they need — is foundational to a healthy security program.

How to Get the Most From This Guide

Each section of this guide is organized the same way:

  1. Portal Replica — a live 1:1 visual replica of the actual admin portal screen, with every field, toggle, and button labeled exactly as it appears in the product.
  2. Field-by-Field Reference — what every input does, its data type, valid values, and sensible defaults.
  3. InfoSec 101 Context — why this feature exists, what threats it addresses, and how it fits into a broader security program.
  4. Best Practices — opinionated recommendations based on common deployment patterns.
  5. Integration Expansions — how to connect this feature to external tools (SIEM, ITSM, MDM, etc.) to strengthen your overall security posture.
  6. Troubleshooting — step-by-step diagnostics for the most common problems.

Use the search bar (or press /) to jump directly to any topic, field name, or concept.

Introduction

Operations Dashboard

The Dashboard is the central command center for your organization's security posture. It aggregates real-time telemetry from all enrolled browser extensions and your Google Workspace integration into a single view. In the topbar header, the active subscription plan status is clearly displayed as a badge (e.g., Custom Plan or Complimentary Plan).

System Banners & Alerts

At the top of the dashboard, dynamic system notification banners alert administrators to pending tasks or billing requirements:

  • Onboarding Progress Banner — Appears if any of the core onboarding steps are incomplete, linking directly to the setup checklists to complete deployment.
  • Billing Prompt Banner — Displays warnings if a payment method is missing or if subscription limits have been exceeded.

KPI Metric Cards

Four KPI tiles appear at the top of the Dashboard. Each shows today's count and a delta vs. the previous day (shown as both an absolute change and a percentage). Page Views Today and Shadow IT Detections additionally display a 7-day sparkline trend; the other two tiles do not.

Page Views Today
18,492
▲ 12.4% vs yesterday
Active Users Today
249
▲ 3.1% vs yesterday
Shadow IT Detections
12
▼ 8.3% vs yesterday
Alerts
3
3 unreviewed

Understanding Each Metric

KPIDefinitionHealth Signal
Page Views TodayTotal distinct web navigation events reported by all enrolled browser extensions in the current calendar day (user's local timezone).Rising = more users active or browsing more. Useful as a baseline normality check.
Active Users TodayCount of distinct enrolled users who generated at least one telemetry event today.Should roughly match your enrolled headcount. A sudden drop may indicate extension deployment problems or a holiday/PTO event.
Shadow IT DetectionsCount of new SaaS signup, login, or credential-submission events on domains not yet classified as Approved in your inventory.Lower is better. Spikes on Mondays (after weekend personal-device usage) or after company-wide meetings about new projects are common.
AlertsTotal DLP policy alerts triggered today. The tile subtext shows how many are still unreviewed. Click "View Alerts" to open the Security Alerts queue.Act on unreviewed alerts promptly. Unreviewed alerts indicate potential data exfiltration events or policy-bypass patterns.
💡 InfoSec 101: Inverted Color Logic for Security Metrics

Notice the counter-intuitive color coding: for productivity metrics (Page Views, Active Users), green means up and red means down. For security metrics (Shadow IT, Pending Alerts), green means down and red means up. This design ensures a quick visual scan surfaces security concerns without the analyst needing to interpret the direction of the number — fewer security events is always a green signal.

7-Day Activity Trend

Below the KPI tiles, the Dashboard renders a 7-day area chart overlaying Page Views and Shadow IT detections. This helps distinguish one-time spikes from sustained behavioral trends.

Bottom-Row Widgets

The bottom of the Dashboard contains three real-time monitoring lists:

  • Top Sites Today — Renders the most active domains visited across the entire organization today, ranked by total page views and classified by safety status.
  • Recent Alerts Widget — Shows the latest security policy triggers. Hovering over a row displays a quick action button () that allows administrators to instantly resolve the alert directly from the dashboard.
  • Recent Shadow IT Feed — Displays a rolling 24-hour log of new applications detected on endpoints that have not yet been categorized in your SaaS Inventory.

Recommended Daily Workflow

  1. Check Recent Alerts first — resolve any open DLP alerts that arrived overnight. Use the hover checkmark action to dismiss minor alerts, or click through to review justifications.
  2. Review Recent Shadow IT — classify any new SaaS platforms in your inventory before the end of the day.
  3. Spot-check Active Users against expected headcount. If it's significantly lower than a normal workday, check extension deployment status in your MDM console.
  4. Review any Slack notifications from triggered browser alert rules — these appear in the channels you have configured under Slack Integration → Rule Alert Routing.
🔐 Security Posture Expansion: SIEM Integration

The raw numbers on the Dashboard are useful for daily operations, but a Security Information and Event Management (SIEM) system — such as Splunk, Microsoft Sentinel, or Elastic Security — gives you historical trend analysis, anomaly detection, and correlation with other event sources (firewall logs, identity provider logs, endpoint alerts). Configure Fantomo's outbound webhooks to push DLP and Shadow IT events directly into your SIEM pipeline. See the Outbound Webhooks section for payload schemas.

Introduction

Setup & MDM Deployment

Before Fantomo can protect your organization, five setup tasks must be completed in sequence. The Getting Started page (accessible from the sidebar) tracks your progress with a checklist and links to each configuration screen. The Setup Tasks page expands on each item with inline guidance.

The 5-Step Setup Checklist

Setup Checklist

2 / 5 Tasks Done
Create Fantomo Admin Account
Configure credentials and define your organization workspace domain.
Configure Branding & Appearance
Set organization logo, custom colors, and compliance disclaimer text.
Connect Google Workspace Sync
Establish service accounts and authorization parameters for tenant scanning.
Deploy MDM Extension Profiles
Force install extension to corporate browser registries via Jamf, Intune, or Kandji.
Verify Telemetry Sync Handshake
Deploy a rule in Test Mode to verify telemetry transmission.

Task 1: Create Admin Account

Your account email domain anchors the organization. All other admin accounts you invite must share the same domain (e.g. @yourcompany.com). Free email domains (Gmail, Outlook.com, Yahoo) cannot be used as the organization domain.

Authentication can be local email/password initially, but Fantomo recommends — and will eventually require — migrating to Google Sign-In. See the General Settings section for migration steps. Once Google Sign-In is enabled, local passwords are permanently disabled and cannot be re-enabled.

Task 2: Branding & Appearance

Browser warning modals displayed to employees carry your organization's logo, name, and color scheme. Employees who see unbranded warnings often mistake them for browser bugs or phishing attempts and dismiss them. Custom branding increases compliance and reduces help-desk tickets.

Full configuration reference: Branding & Appearance.

Task 3: Connect Google Workspace Sync

This is the most technically involved step. It grants Fantomo read-only access to your Google Workspace tenant through a Service Account with Domain-Wide Delegation.

  1. Open the Google Cloud Console. Create a new project (or use an existing one) specifically for Fantomo. Keeping it isolated makes it easy to revoke access later.
  2. Within the project, navigate to IAM & Admin → Service Accounts. Click Create Service Account. Name it descriptively (e.g. "Fantomo Sync Agent"). Download the JSON key file.
  3. Open the Google Workspace Admin Console. Navigate to Security → API Controls → Manage Domain-Wide Delegation.
  4. Click Add New. Enter the Service Account's Client ID (found in the JSON key file as client_id). Add the following OAuth scopes, comma-separated:
    https://www.googleapis.com/auth/admin.reports.audit.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly, https://www.googleapis.com/auth/admin.directory.group.readonly, https://www.googleapis.com/auth/gmail.readonly
  5. In the Fantomo portal, go to Settings → Google Workspace. Paste the JSON key file content into the credential textarea. Enter your Workspace domain. Click Test Connection, then Connect Workspace.
⚠️ Security Note: Protect the JSON Key File

The service account JSON key file is a credential that grants read-only access to your Google Workspace directory and audit logs. Treat it like a password — never commit it to version control, store it in a shared folder, or email it. Once entered into Fantomo, the portal stores it encrypted and you do not need the file again. Delete it from your local machine afterward. If the file is ever compromised, revoke it immediately from the Google Cloud Console and generate a new key.

Task 4: Deploy MDM Extension Profiles

The browser extension must be force-installed via your organization's MDM system. Simply publishing it to the Chrome Web Store and asking employees to install it voluntarily defeats the security model — employees can uninstall voluntary extensions at any time. Force-installing locks the extension so only MDM can remove it, and the extension shows a briefcase ("Installed by administrator") icon in the browser toolbar.

Extension Configuration JSON

The MDM configuration payload tells the extension three things: your API key (authentication), the API base URL (where to send telemetry), and the user's email address (for device-to-user association). The user email uses an MDM variable that each platform resolves at deploy time.

{
  "apiKey": "ftm_your_api_key_here",
  "apiBaseUrl": "https://api.fantomo.io",
  "userId": "${user.id}",
  "userEmail": "${user.email}",
  "syncIntervalMinutes": 5
}

Google Workspace Native Policy Deployment

If your organization does not use an external MDM provider, you can natively force-deploy the Fantomo extension to all managed Chrome browsers and automatically map user devices using Google Workspace account identifiers.

  1. Navigate to your Google Workspace Admin Console.
  2. Go to Devices → Chrome → Apps & extensions → Users & browsers.
  3. Select your target Organizational Unit (OU) in the left sidebar.
  4. Click the yellow + button at the bottom-right and select Add from Chrome Web Store.
  5. Search for "Fantomo" or paste the extension ID, then click Select.
  6. In the right-hand panel, set Installation policy to Force install.
  7. Under Policy for extensions, paste the JSON configuration from your Settings → General & MDM page. Chrome resolves ${user.email} and ${user.id} automatically.
  8. Click Save.

Task 5: Verify Telemetry Sync

After deploying the MDM profile, verify that the extension is reporting telemetry before rolling out to all users.

  1. On a test machine with the extension deployed, open Chrome and navigate to a few websites (including some non-work sites like news or social).
  2. In the Fantomo Admin Portal, open Browsing History. The test machine's domain visits should appear within 2–5 minutes.
  3. Optionally, create a Browser Alert Rule in Test Mode targeting example.com, then visit that domain on the test machine. Confirm a telemetry event appears in the DLP User Activity log.
  4. Check the extension icon in the Chrome toolbar — it should be active (not grayed out). If grayed out, the extension cannot reach the API. Verify that the apiBaseUrl is correct and not blocked by a firewall.

Troubleshooting Extension Deployment

SymptomLikely CauseResolution
Extension not appearing in ChromeMDM profile not applied to deviceForce a device check-in in your MDM console. Verify device is in the correct OU/blueprint/group.
Extension icon grayed outAPI URL unreachable or incorrect API keyCheck that apiBaseUrl is correct and port is open. Verify API key matches what's shown in Settings → General & MDM.
No users appearing in portalUser email token not resolvingVerify the MDM variable ($EMAIL, $USER_EMAIL, or %email%) is being substituted. Some MDM systems require the device to be assigned a user before variables resolve.
Extension removable by userInstalled as optional, not forcedReturn to your MDM console and change Installation Policy to Force install. For .mobileconfig deployments, ensure PayloadRemovalDisallowed is true.
Wrong user email mappingShared or unassigned devicesEnsure every managed device has a specific user assignment in your MDM before deploying. Shared devices (kiosks) should be excluded.

Interactive Extension Verification

To run live diagnostics on an enrolled browser, navigate to the Extension Verification Page at /onboarding/test. This page performs automatic checks and provides manual test triggers:

  • DOM Verification — Checks for the presence of the <meta name="fantomo-extension-status" content="active"> tag injected by the active extension into the page DOM. Green status indicates the extension is running and successfully communicating with the local page environment.
  • Trigger Welcome Modal — Forces a page reload with a query parameter that triggers the extension's onboarding welcome modal. This confirms the extension can render UI overlays on the client.
  • Trigger Shadow IT Test — Redirects the browser to a test registration page (/create-account-test). This simulates a new SaaS account registration to verify that the extension detects and logs shadow IT signup events in real-time.

Setup Tasks Wizard

The Setup Tasks Page (accessible at /setup-tasks) provides a wizard-style interface to complete enterprise configuration. Rather than configuring settings in isolation, administrators can follow the tabbed wizard which tracks status indicators (pending, in_progress, completed, and dismissed) for each required task:

  • Workspace Directory Sync — Guides the administrator through connecting Google Workspace, setting up service accounts, and verifying domain-wide delegation scopes to synchronize organizational units (OUs), groups, and user directories.
  • MDM Extension Deployment — Provides links to MDM payloads, config profiles, and installation instructions for Jamf, Fleet, Mosyle, and generic plist/registry distributions.
  • Outbound Webhooks — Configures event routing endpoints for SIEM integrations or custom automation pipelines.
🔐 Security Posture Expansion: Comprehensive Endpoint Management

MDM deployment of the Fantomo extension is only one piece of endpoint security. A mature endpoint program also includes: (1) Full-disk encryption enforced via MDM (FileVault on macOS, BitLocker on Windows); (2) Screen lock after 5 minutes of inactivity; (3) Automatic OS update enforcement; (4) Endpoint Detection & Response (EDR) agents such as CrowdStrike or SentinelOne for malware detection. Fantomo's browser-layer visibility complements but does not replace host-level security controls.

Activity Logs

Security Alerts

The Security Alerts feed is the primary triage queue for DLP policy violations. Every time an employee overrides a browser warning dialog — or triggers a silent-log rule — an entry is created here. Alerts represent moments where a user acknowledged a policy risk and proceeded anyway, requiring admin review.

💡 InfoSec 101: What Is an Alert?

In DLP terminology, an "alert" is not a threat — it is a policy event. It indicates that a data protection control was triggered and the user chose to proceed past it. Most alerts are benign (e.g. a developer pasting an internal API key into an internal tool). The value is in the pattern: one alert is informational, ten alerts from the same user in a day warrants investigation, and alerts on the same domain for ten different users may indicate a data exfiltration attempt.

The Alerts Table

User Rule Domain Action Response Timestamp Actions
[email protected] Unencrypted PII Upload dropbox.com modal_dismissable Unreviewed 2 min ago
[email protected] AI Tool Data Submission chatgpt.com modal_dismissable Unreviewed 18 min ago
[email protected] Credential Exfiltration Risk personal-gmail.com modal_dismissable Reviewed 1 hr ago
2 alerts selected

Column Reference

ColumnDescription
CheckboxSelect one or more unreviewed alerts for bulk resolution. Use the header checkbox to select all eligible alerts on the page. Reviewed alerts cannot be re-selected.
UserThe email address of the employee whose browser extension generated the event. Click to open the user detail page.
RuleThe name of the Browser Alert Rule that fired. Click to open the rule editor for that rule.
DomainThe domain where the DLP rule was triggered (e.g. the site the employee was uploading to or pasting data into).
ActionThe enforcement type of the rule that fired — modal_dismissable, modal_non_dismissable, or block.
ResponseUnreviewed — alert has not been acted on. Shown in red. Reviewed — admin has dismissed this alert.
TimestampWhen the alert was created. Displayed relative (e.g. "2 min ago") with full timestamp on hover.
Actions✓ Dismiss button marks a single alert as reviewed. Only visible on unreviewed alerts (hover the row to reveal it).

Filtering

Use the date range pickers, category dropdown, and domain search input above the table to narrow the alert list. Active filters appear as removable chips below the filter bar. Click any chip to remove that filter, or "Clear all" to reset to unfiltered.

Bulk Resolve

Select multiple unreviewed alerts using the checkboxes and click Mark Resolved to dismiss all of them in a single action. The header checkbox selects all eligible (unreviewed, non-request) alerts on the current page.

⚠️ Never Bulk-Resolve Without Reviewing

Resolving alerts marks them as "reviewed" in your audit log. If you bulk-resolve without reading them, you may inadvertently sign off on a genuine exfiltration event. Dismissal is not deletion — resolved alerts remain permanently in the historical log — but unreviewed dismissals undermine the compliance value of the log. If volume is overwhelming, configure stricter rule targeting or increase the Display Frequency interval on noisy rules.

⚠️ Clear All Alerts Is Permanent

The 🗑️ Clear All Alerts button in the top-right header area permanently deletes all alerts in your organization's queue — this cannot be undone. Use it only to reset a test environment or after a confirmed false-positive mass-trigger event. Never use it to "clean up" a backlog that has not been reviewed.

Slack Sync

If Slack integration is configured and a rule has an associated Slack Notification playbook, each new alert triggers the playbook to post a rich-text notification to the configured channel. This creates a closed-loop workflow: the security team sees alerts in Slack, investigates, and when resolved in Fantomo the alert is marked as reviewed in both places.

Troubleshooting

ProblemResolution
Alerts page shows "Feature not enabled"Your plan does not include the Alert Audit feature. Go to Settings → Billing & Plans to review your subscription tier or activate the Alert Log add-on.
Alerts exist but no Slack notificationsCheck that the rule has an active associated Slack Notification playbook. Verify the Fantomo Slack app is still installed in your workspace.
Alert justification is blankThe rule either had no custom buttons configured (so the user dismissed the modal without providing text), or the modal type is Non-Dismissable. Add a submit_request button to the rule to require a written justification.
Same user generating dozens of alerts/dayConsider increasing the Display Frequency limit (e.g. "Once per browser session") on the triggering rule, or investigate whether the user's workflow legitimately requires the flagged behavior and add them to that rule's Target Exclusions.
🔐 Security Posture Expansion: Alert Correlation in a SIEM

Individual alerts have limited context. A SIEM can correlate Fantomo DLP alerts with identity provider login events (unusual login times or locations), endpoint alerts (malware detections), and network logs (large data transfers) to identify multi-stage exfiltration attempts that no single tool would catch alone. Configure the dlp_bypass webhook to push events to your SIEM in real time.

Activity Logs

Shadow IT Log

Shadow IT refers to cloud applications and services used by employees without IT's knowledge or approval. The Shadow IT log captures three types of detection events generated by the browser extension and the Google Workspace mail scan:

  • signup — employee submitted a new account registration form on an unmanaged domain (detected via form field pattern matching)
  • login — employee authenticated to an existing account on an unmanaged domain
  • login_challenge / password_reset — detected via Gmail subject line metadata (e.g. "Reset your Notion password")
💡 InfoSec 101: Why Shadow IT Is a Security Problem

When employees sign up for SaaS tools without IT oversight, several risks accumulate: (1) Corporate data may be stored in vendor systems that haven't been vetted for data handling compliance (GDPR, HIPAA, SOC 2). (2) If an employee leaves, their account may remain active with live corporate data — shadow IT accounts are often missed in offboarding. (3) Employees frequently use weak or reused passwords for personal SaaS signups. (4) OAuth grants may give these apps broad access to Google Drive or Calendar data. Fantomo's Shadow IT detection illuminates this hidden attack surface before it becomes a breach.

Shadow IT View

The Shadow IT tab displays data aggregated by domain. Each row represents a unique domain across all users, showing total detection events, user count, and last-seen timestamp. Click any row to open a drill-down modal showing individual event records — with exact URL paths, timestamps, and usernames — for that domain.

#DomainCategoryDetectionsUsersLast Seen
1 notion.so Collaboration 42 8 Today 09:14
2 chatgpt.com AI Tools 87 15 Today 08:52
3 zoom.us Video Conferencing 12 4 Yesterday 16:03
Click any row to view individual event records for that domain.

Column Reference

ColumnDescription
DomainThe hostname detected (e.g. notion.so). Click the row to drill down into individual event records.
CategorySaaS classification category assigned to this domain (e.g. Collaboration, AI Tools, Cloud Storage). Used for filtering.
DetectionsTotal signup/login events across all users for this domain in the selected date range.
UsersCount of unique employees who have generated at least one detection for this domain.
Last SeenTimestamp of the most recent detection event for this domain.

Drill-Down: Individual Event Records

Clicking a domain row opens a modal showing individual event records. Each record includes: user email, exact URL path, detection type (signup / login / login_challenge / password_reset), and timestamp. You can search and sort within the modal.

Detection Type Values

TypeSourceWhat It Means
signupBrowser extensionExtension detected a new account registration form submission (password field + email field in a registration context).
loginBrowser extension or mail scanEmployee authenticated to an existing account. Indicates active use of a potentially unapproved service.
login_challengeGmail mail scanA two-factor authentication or device approval email was received, indicating a new-device login to an external service.
password_resetGmail mail scanA password reset email was received for an external SaaS account, detected via subject-line pattern matching.

Responding to Shadow IT Detections

  1. Note the domain from the detection event. Search the SaaS Inventory for that domain. If it already exists, verify its approval status.
  2. If the domain is new, add it to the SaaS Inventory and classify it. Review the vendor's security posture (SOC 2 report availability, data residency, privacy policy).
  3. If the domain should be Approved: set status to Approved. Future detections from this domain will be suppressed from the alert queue.
  4. If the domain should be Blocked: set status to Blocked and create a Browser Alert Rule targeting the domain to display a warning when employees navigate to it.
  5. If under review: set to Under Review and optionally trigger a User Activity Outreach questionnaire to ask the employee about their use case.

Shadow IT Category Exclusions

Some categories of services — such as major financial services or government websites — generate Shadow IT signals but are universally low-risk. The Settings → General & MDM page includes a Shadow IT Category Exclusions card. Toggling off a category suppresses all Shadow IT detections for domains classified in that category, reducing noise without losing security coverage on higher-risk categories.

🔐 Security Posture Expansion: Shadow IT Governance Program

A mature shadow IT program goes beyond detection: (1) Establish a formal SaaS Request Process — a form employees submit to IT before signing up for a new tool. Link to this form from your Fantomo browser alert warning modals using a custom button in the Rule Editor. (2) Schedule a quarterly SaaS Inventory Review where each app's approval status, owner, and security posture is formally re-evaluated. (3) Use the offboarding workflow to ensure all shadow IT accounts are revoked when an employee leaves — not just official IT-managed accounts.

Activity Logs

Browsing History

The Browsing History page (labeled Browsing History in the Activity Logs section) provides aggregated domain-level web telemetry for all enrolled devices. This is the raw feed of every domain visited by any managed browser extension, enabling administrators to understand general web usage patterns, identify unusual activity, and audit specific users if a security concern arises.

⚠️ Privacy Design: Domain Names Only — Never Page Content

Fantomo records only the hostname (e.g. mail.google.com) — not the URL path, query parameters, page content, form inputs, or any personal communication content. The difference matters legally and ethically: logging that someone visited healthcare.gov is operationally relevant for network security; logging which specific medical conditions they researched would be a severe privacy violation. Fantomo's design deliberately stops at the domain boundary.

Browsing Log Table

Like Shadow IT, browsing data is shown aggregated by domain. Each row represents a unique domain with total page view count, session count, user count, and last-seen timestamp. Click any row to open a drill-down modal showing individual browsing sessions for that domain. Sessions can be expanded further to show individual page views.

to
#DomainCategoryPage ViewsSessionsUsersLast Seen
1 mail.google.com Email 2,847 341 28 2 min ago
2 chatgpt.com AI Tools 1,312 189 15 14 min ago
3 personal-site.io Uncategorized 8 3 1 3 hrs ago

Filters Available

  • Date range pickers — Two date inputs (Start Date, End Date) let you scope to any arbitrary date range. There are no preset dropdown options — enter dates manually.
  • Category dropdown — Limit to a specific SaaS category (Collaboration, Email, AI Tools, Cloud Storage, etc.).
  • Domain search — Type a partial domain and press Enter or click Search to filter. Active filter appears as a removable chip below the filter bar.

Top Domains Chart

A horizontal bar chart shows the top 10 most-visited domains across all enrolled users in the selected time period. This quickly surfaces unexpected traffic patterns — for example, a sudden spike in visits to a personal cloud storage service may indicate an employee exfiltrating files before departure.

🔐 Security Posture Expansion: Behavioral Baselines

Browsing history is most valuable when you understand what "normal" looks like. Tools like Microsoft Sentinel and Splunk UBA (User Behavior Analytics) can ingest Fantomo's browsing telemetry via webhooks and apply machine learning to automatically flag statistical anomalies — a user visiting 200 new domains in a single day, or accessing domains they've never visited before at unusual hours. This is the foundation of insider threat detection programs.

This feature requires the Full Browsing feature flag on your plan. If you see a "Feature not enabled" gate, contact support or upgrade your subscription.

Activity Logs

Remote Network Diagnostics

The Network Speed page (labeled Network Speed in the Activity Logs sidebar) opens the Remote Network Diagnostics view — sub-labeled "WFH ISP & Load Telemetry." It displays connection performance metrics collected by enrolled browser extensions from remote employee devices, helping diagnose latency issues, identify underperforming ISPs, and correlate network conditions with security events.

Summary KPI Cards

When data is available, four KPI cards appear at the top of the page:

Avg DNS Lookup
24 ms
Avg TCP Handshake
68 ms
Avg Time to First Byte (TTFB)
142 ms
Telemetry Samples
3,847

What Is Measured

KPIDescriptionWhy It Matters for Security
Avg DNS LookupAverage time (ms) to resolve hostnames via the remote device's configured DNS resolver, across all telemetry samples.Extremely high DNS latency may indicate DNS-over-HTTPS being intercepted, or a rogue DNS server at a home router or coffee shop. Baseline anomalies can flag evil-twin Wi-Fi attacks.
Avg TCP HandshakeAverage time (ms) to complete the TCP three-way handshake to the remote server.Elevated TCP handshake times reveal routing or ISP congestion between the employee and your services, helping distinguish network problems from application latency.
Avg TTFBAverage Time to First Byte (ms) — from request sent to the first byte of the response received.Captures end-to-end latency including DNS, TCP, and server processing. A high TTFB combined with normal DNS/TCP narrows the cause to server-side performance rather than the remote network.
Telemetry SamplesTotal count of individual measurements collected across all users and domains in the current dataset.Indicates data volume and statistical reliability. A small sample count (e.g. < 50) means averages may not be representative.
💡 InfoSec 101: DNS Integrity and Wi-Fi Attacks

A common attack at coffee shops and hotels is the "evil twin" access point — a rogue Wi-Fi hotspot with the same SSID as the legitimate network. When employees connect to it, the attacker controls DNS resolution, potentially redirecting gmail.com or yourcompany.com to a phishing page. Monitoring DNS Lookup latency anomalies is an early warning signal for this type of attack. Fantomo's DNS Integrity Diagnostics mode (configured under DLP Policy Settings) performs active checks to detect this scenario.

Diagnostics Table

Below the KPI cards, a table lists individual domain + ISP combinations with per-row latency breakdowns. Each row shows:

ColumnDescription
DomainThe domain the measurement was taken against.
WFH Provider (ISP)The home Internet Service Provider detected for that measurement session. Also shows the two-letter country code for the employee's location.
Component Latencies BreakdownA stacked visual bar showing the relative proportions of DNS (green), TCP (blue), and TTFB (amber) for this domain/ISP combination. Hover each segment for the exact millisecond value.
Total TimingSum of DNS + TCP + TTFB in ms. Color-coded: green (< 200 ms), amber (200–400 ms), red (> 400 ms).
SamplesNumber of individual measurements contributing to this row's averages.
Last ActiveTime of the most recent measurement for this domain/ISP combination.

Drill-Down: Raw Samples

Click any row to open a modal showing individual raw telemetry records for that domain and ISP. Each record shows: user email, individual DNS/TCP/TTFB values, total timing, WFH ISP, client IP address, and timestamp. You can search by user or IP and sort by any column.

Filters

Two filter inputs appear above the table: Filter by domain and Filter by WFH ISP. Both support partial text matches. A "Clear filters" button resets both.

This feature requires the Network Diagnostics add-on on your plan. If you see the locked state, go to Billing & Plans to activate it.

Activity Logs

Admin Actions Audit Log

The Admin Actions Log (labeled Admin Actions Log in the Activity Logs section) records every configuration change, user management action, and administrative operation performed by any admin or owner account in your organization. It is append-only and immutable — entries cannot be edited or deleted.

💡 InfoSec 101: Why an Immutable Admin Audit Log Matters

When a security incident occurs, investigators need to answer: "Who changed what, and when?" Without an audit log, you cannot distinguish between a system misconfiguration caused by an honest mistake and a deliberate insider threat action. The audit log is also required evidence for SOC 2 Type II (CC7.2 — monitoring of system components) and ISO 27001 A.12.4 (logging and monitoring). Regulators and auditors will specifically request admin activity logs during compliance reviews.

Audit Log Table

ActionEntityUserTime
rule.created rule [email protected] Today 10:02
user.invited user [email protected] Today 09:31
api_key.rotated org [email protected] Yesterday 16:47

Logged Action Types

Action CodeDescription
rule.createdA new Browser Alert Rule was created.
rule.updatedAn existing rule was modified (fields, state, targeting).
rule.deletedA rule was permanently deleted.
user.invitedA new admin user was invited to the organization.
user.deactivatedAn admin user account was disabled.
user.reactivatedA previously disabled admin account was re-enabled.
user.deletedAn admin user was permanently removed.
api_key.rotatedThe organization API key was regenerated. All extensions must be updated with the new key.
org.settings.updatedOrganization name, auth method, or other core settings changed.
webhook.createdA new outbound webhook was configured.
webhook.updatedA webhook configuration was modified.
webhook.deletedA webhook was removed.
workspace.connectedGoogle Workspace integration was established.
playbook.createdA new automation playbook was created or installed from a template.
alert.dismissedOne or more security alerts were marked as reviewed.

Filtering the Audit Log

  • Date range pickers — Two date inputs (Start Date, End Date) scope the log to a specific time window. Essential for compliance audits where you need to demonstrate controls were in place during a specific period.

There are no free-text email or action-type filter inputs on this page. To find events for a specific administrator or action type, use the date range to narrow the window and review the filtered results manually, or export the log via the Export CSV button.

🔐 Security Posture Expansion: Admin Action Alerting

For high-sensitivity organizations, configure a webhook to receive api_key.rotated and rule.deleted events and push them to a Slack channel monitored by the security team. A surprise API key rotation outside a change-management window is a strong insider threat signal. Similarly, a production DLP rule being deleted or disabled during business hours — without a corresponding change ticket — warrants immediate investigation.

SaaS Governance

User Activity Outreach

The User Activity page in the SaaS Governance section (labeled "User Activity" in the sidebar, under the SaaS Governance group) manages automated outreach questionnaires sent to employees when Shadow IT detections occur. Instead of a purely passive detection model, Fantomo can proactively engage the employee to understand their use case, collect a business justification, and route their response into the SaaS Inventory workflow.

💡 InfoSec 101: Engaging Employees in Security

The most effective security programs treat employees as partners, not suspects. When an employee signs up for a new tool, automatically asking them "What is the business purpose of this application?" accomplishes three things: (1) It makes the employee aware that IT can see SaaS activity, which itself reduces casual shadow IT usage. (2) It collects justification data that can be used to quickly approve legitimate tools. (3) It creates an audit trail showing that business-need assessments were performed — useful for data handling compliance under GDPR and CCPA.

Pending Queue

The Pending Queue shows outreach questionnaires that have been sent to employees but not yet completed. Each row shows the employee email, the domain that triggered the outreach, the detection type (signup, login, etc.), and the date the questionnaire was sent.

EmployeeDomainDetection TypeSent ViaSent AtStatus
[email protected] figma.com signup Slack DM Today 09:15 Pending
[email protected] monday.com login Email Yesterday 14:42 Overdue (24h)

Response Log

Once an employee submits their questionnaire, their response moves to the Response Log. Each entry includes the full text of the employee's justification, the timestamp, and a link to the relevant SaaS Inventory entry. Admins can use this information to approve or block the application directly from this view.

Outreach Configuration

Questionnaire delivery channel is configured in Settings → Slack Integration under the Employee Outreach Check-ins section. Available channels:

  • Slack Direct Message (Recommended) — sends an interactive Slack DM to the employee with a response button. Requires Slack integration to be active.
  • Email Outreach — sends a plain-text email with a response link. Works without Slack integration.
  • Slack & Email (Dual Delivery) — sends both simultaneously for higher response rates.

Bulk Send

The Bulk Send Questionnaires button triggers outreach to all employees who have pending Shadow IT detections that haven't yet been outreached. This is useful when initially enabling the feature after a period of unchecked shadow IT accumulation.

Statistics

A statistics card at the top of the page shows: Total questionnaires sent, response rate (%), average response time, and top responding employees. These metrics help you tune the outreach frequency and channel to maximize engagement.

SaaS Governance

SaaS Inventory

The SaaS Inventory is the authoritative catalog of every cloud application detected in use across your organization. It aggregates data from both the browser extension (signup/login detections) and the Google Workspace API sync (OAuth grants, Gmail mail scan) into a unified application registry that you classify, govern, and maintain over time.

Inventory Table

ApplicationStatusUsersOwnerPostureLast SeenMonthly Cost
notion.so 32 [email protected] Good 2 min ago $120.00
canva.com 11 [email protected] Poor 1 hr ago $35.00
chatgpt.com 45 [email protected] Poor 5 min ago $0.00
dropbox.com 8 [email protected] Not Reviewed 3 hrs ago $15.00

Inline Status Modification

The Status column features an inline select dropdown. Rather than drilling down into each application detail page, administrators can update an application's governance classification directly from the main SaaS Inventory table row. Changes save immediately and update all detection filters across endpoints.

Application Status Values

StatusMeaningEffect on DetectionWhen to Use
ApprovedSanctioned by IT for organizational use.Detections suppressed from Shadow IT alert queue. No browser warnings triggered.Any app that IT has vetted and formally approved. Encourages employees to use the approved tool over alternatives.
UnapprovedDetected but not yet evaluated.Generates Shadow IT detection events. Browser warnings appear if a matching DLP rule exists.Default state for all newly discovered applications. Requires triage.
Under ReviewActively being evaluated by IT.Detections logged but suppressed from primary alert queue. Browser warnings informational only.Use during a formal vendor security review (30–90 days). Signals to the team that this app is known and being evaluated.
BlockedProhibited for organizational use.All detections logged as high-priority. Browser Alert Rules targeting this domain display blocking warnings to employees.Apps that handle corporate data without adequate controls, violate compliance requirements, or pose clear security risks (e.g. unapproved AI tools receiving business data).

Security Posture Indicator

The Security Posture column reflects the outcome of a vendor security review based on organization protections and data sensitivity:

  • Good — SSO is configured and MFA is enforced, or the application stores no sensitive data (neither PII nor confidential data).
  • Poor — The application stores sensitive data, but SSO or MFA configurations are incomplete.
  • Not Reviewed — Vendor security has not yet been evaluated. Default for newly discovered apps.

Inventory States: Onboarding vs. Steady State

When you first enable Fantomo, the inventory enters an Onboarding state — all discovered applications require triage. Once you have reviewed and classified your initial inventory, click Mark as Steady State to signal that the baseline is established. In Steady State, new discoveries generate higher-priority alerts since they represent genuine new shadow IT introductions rather than pre-existing usage.

⚠️ Steady State Required for Employee Outreach

Automatic employee check-in questionnaires (configured via Settings → Slack Integration → Employee Outreach Check-ins) are blocked until the SaaS Inventory is in Steady State. You cannot enable outreach notifications while still in Onboarding mode. Complete your initial triage and click "Mark as Steady State" before configuring employee outreach.

Sync Inventory

The ↻ Sync Inventory button triggers an immediate re-scan of your Google Workspace tenant to pull the latest OAuth grant data and recent mail scan signals. Inventory normally syncs automatically every 4 hours. Manual sync is useful immediately after connecting a new integration or after a bulk employee onboarding event.

🔐 Security Posture Expansion: Formal SaaS Security Review Process

For each application moving from Unapproved → Approved, establish a documented security review checklist: (1) Does the vendor have a current SOC 2 Type II report? Request it from the vendor. (2) Where is data stored geographically? Does it comply with data residency requirements (GDPR, HIPAA)? (3) Does the vendor support centralized identity provider logins (e.g. Google Workspace integration) to enable centralized access control? (4) What is the data deletion process when the account is closed? (5) Has a Data Processing Agreement (DPA) been signed if EU personal data is involved? Document this review and attach it to the SaaS Inventory record. This is your evidence for SOC 2 CC9.2 (vendor risk management).

Organizational Unit & Group Reporting

Fantomo allows security teams to scope and analyze SaaS usage, security events, browsing, offboardings, and DLP violations based on Google Workspace OUs/Groups and Office 365/Microsoft equivalents.

  • Hierarchical OU Scoping: Filters match both exact and nested child Organizational Units (e.g., filtering by /Engineering matches users in /Engineering/QA).
  • Searchable Dropdown Picker: The unified picker lets you query hundreds of groups and OUs with instant search and clear categories.
  • SaaS Category Breakdowns: Toggle the OU & Group Analytics view on the SaaS Inventory page to inspect stacked horizontal charts of the top 10 apps used by departments, or the proportion of app counts per OU/Group for specific categories like AI tools or file sharing.
SaaS Governance

SaaS App Detail

Clicking any application in the SaaS Inventory opens its Detail page. This view is structured into 8 tabs that consolidate all telemetry, spending, authentication scopes, and security ratings for that application:

1. Overview Tab

The Overview tab manages primary status, owner configuration, and displays a responsive row of KPI cards (Overall Risk score, Security Posture status, Active Users count/adoption rate, Last Activity date/velocity, and recurring Spend or Discovered Instances count). It also hosts Scoped Exception Rules targeting organization-wide, user, group, or Organizational Unit boundaries with Actions (Approve, Ignore, or Alert).

At the bottom of the Overview tab, the Send Check-in Questionnaire button allows administrators to dispatch automated Slack check-in messages to active users requesting business justifications.

2. Security Rating Tab

Consolidates Risk and Security Posture into a single unified view. It displays a 0-100 composite risk rating (0 = lowest risk, 100 = highest risk) in a circular SVG progress dial, alongside a side-by-side **Core Posture Matrix** comparing Catalog-Enriched Vendor support vs. your Organization Configured controls (SSO, MFA, SOC 2/ISO certifications, data encryption, and data classification). Changes to organization status dropdowns are saved inline and immediately trigger a recalculation of the composite risk score. The tab also displays read-only **Operational Telemetry** tracking active user password login ratios, absent MFA logins, and credential reuse events.

3. Users Tab

Lists active and former employees with detected access, login methods, last activity timestamps, and direct Revoke buttons to remove individual access grants.

4. Groups Tab

Displays directory groups (Google Workspace / Office 365) whose members have authorized or accessed the application.

5. OUs Tab

Displays Organizational Units (OUs) within your corporate hierarchy currently accessing the application.

6. Email Indicators Tab

If Google Workspace or Office 365 Mail Scan is connected, this logs invoicing, signups, and registration verification signals extracted from corporate mail headers.

7. Third-Party App Access Tab

Lists active corporate OAuth 2.0 grants linked to this application's client IDs with permission scope details, risk scoring, and a Revoke action to instantly terminate credentials.

8. Spend Tab

Records monthly cost, billing frequency, contract renewal dates, and license counts to track seats purchased against detected usage.

SaaS Governance

Third-Party App Access (OAuth Grants)

The Third-Party App Access page (route: /oauth-grants) audits all OAuth 2.0 authorizations your employees have granted to third-party applications using their organization's accounts (Google Workspace or Microsoft 365 / Entra ID). This view gives you complete visibility into the tokens that bypass standard centralized login configurations.

💡 InfoSec 101: The OAuth Risk Model

OAuth is convenient but dangerous when unmanaged. A single employee clicking "Sign in with Google" or "Accept" on a malicious or compromised app can grant it read access to their entire email inbox, cloud storage files, or calendar. The attack vector known as "OAuth phishing" — sending employees to a convincing fake app consent page — is responsible for numerous corporate data breaches. The Third-Party App Access page gives you the visibility to detect and revoke such grants before they cause harm.

OAuth Statistics Cards

At the top of the page, three statistics cards show: Total OAuth grants in your tenant, Number of high-risk scope grants (read/write access to cloud storage, email, or directories), and Number of unclassified client IDs awaiting review (which link directly to the Integration Settings tabs).

Active OAuth Grants Table

The main table lists all active tokens granted by employees to third-party applications. You can filter this list by Risk Level (High, Medium, Low) and search by employee email or application name. A manual Sync Now button in the header forces an immediate pull from the connected directory provider APIs.

ApplicationUserRiskFirst GrantedLast UsedActions
canva.com
123456789-abc.apps.googleusercontent.com
[email protected] Low Risk 2026-06-01 2026-06-01
unknown-app.com
987654321-xyz.apps.googleusercontent.com
[email protected] High Risk Today Today

Viewing Grant Details & Permissions

Clicking the Details button opens a modal showing the full application registration metadata (Client ID, Homepage URL, description, and status), the detailed security assessment concerns, and all granted permission scopes sorted by risk tier as color-coded badges.

Revoking OAuth Access

Clicking Revoke Grant on any row issues an API command directly to the directory provider (Google Workspace or Microsoft Graph) to revoke the authentication token. The application will immediately lose access to the user's data and the employee will be prompted to re-authenticate on their next visit.

Directory Sync Info

This section also displays the directory integration statuses and the status of the most recent directory sync cycle (runs automatically to pull the latest authorizations).

🔐 Security Posture Expansion: OAuth Scope Governance Policy

Establish a policy that prohibits employees from granting OAuth apps with drive.file (full Drive access), gmail.modify (modify email), or contacts (read all contacts) scopes without prior IT approval. Use Google Workspace Admin Console's Connected Apps section to block high-risk scopes organization-wide, and use Fantomo's OAuth audit page to detect any that slip through. Apps with scopes exceeding what their stated function requires (scope creep) are a common vector for data theft.

SaaS Governance

Tenant Security Tune-up

The Tenant Security Tune-up & Compliance page (route: /security-tuneup) acts as a centralized dashboard to audit, configure, and enforce security policies for Microsoft 365 (M365) and Google Workspace (GWS) tenants. This feature replicates and expands upon enterprise compliance tools to provide complete visibility and automated enforcement of security posture settings, preventing configuration drift across all cloud resources.

💡 InfoSec 101: Configuration Drift & Compliance

SaaS tenants represent a massive surface area of security configurations. A well-configured tenant can easily become vulnerable over time as administrators add exceptions, test configurations, or disable security defaults temporarily. Configuration drift occurs when these temporary changes remain permanent, leaving resources exposed. Fantomo's compliance engine audits security profiles 24/7, tracking policy compliance and notifying admins of any deviation from security baselines.

Checking Security Settings

The Security Tune-up checklist presents critical security policies grouped into four domains: Identity, Email, Apps, and Audit Logging. Each check evaluates a specific configuration setting returned from GWS Directory or Microsoft Graph APIs. Administrators can choose to Opt In, Skip (with justification), or Ignore each security check independently. This flexibility allows organizations to tailor their compliance profile to their specific risk tolerance.

DomainM365 CheckGWS CheckWhy It Matters
Identity Unified Conditional Access Policies Enforce 2-Step Verification (2SV) Blocks credential stuffing and password-based attacks by requiring MFA.
Email Block IMAP & POP protocols Block IMAP & POP protocols Prevents legacy clients from bypassing modern authentication and MFA controls.
Apps Block User Consent to Third-Party Apps Block Marketplace App Installs Mitigates OAuth phishing attacks by requiring admin approval for app integrations.
Audit Logs Enable Purview Unified Audit Logging Verify Directory Audit Log Stream Ensures that activity logs are captured and preserved for compliance and forensics.

Temporary JIT (Just-in-Time) Consent Model

Automated remediation ("Do it for me") allows administrators to apply the recommended settings instantly without leaving the Fantomo console. To protect against credentials theft, Fantomo adopts a zero-trust Just-in-Time (JIT) Elevated Credential model:

  • No Stored Write Keys: Fantomo never stores permanent administrative write keys or write scopes in its primary database. Ongoing daily compliance scans run using standard, low-privileged read-only credentials established during onboarding.
  • Memory-Only Expiration: When running automated remediation, the administrator uploads a temporary GWS Service Account key or consents to a temporary elevated Microsoft OAuth scope. These credentials are held in volatile memory/Redis cache and programmatically destroyed and cleared within 15 minutes after the run completes.
  • Manual Instructions: To ensure that admins are fully aware of what changes are being made, Fantomo always displays step-by-step manual remediation instructions alongside the automated option. If automated remediation fails or is not preferred, the admin can complete the same tasks manually in the respective admin centers.

Consolidated Control Panel Guides

To reduce administrator friction, Fantomo's compliance engine groups all selected manual remediation steps by their Control Panel Location. Instead of jumping back and forth between different settings pages in Microsoft or Google Admin interfaces, all actions occurring on a single admin dashboard (e.g. Entra ID Admin Center or Google Admin Console -> Security) are collapsed into a single step-by-step navigation instruction, allowing you to complete multiple tasks in a single console session.

Daily Drift Auditing & Alerts

Once your desired security profiles are defined and applied, Fantomo's compliance engine runs daily background scans to compare expected policy profiles with actual tenant states. If a configuration is modified outside of the Fantomo console:

  1. Drift Detected: The system identifies that the actual tenant setting no longer matches the expected security baseline.
  2. Audit Logged: A compliance warning is logged in the Fantomo Admin Audit Log.
  3. Notifications Fired: Real-time alerts are sent to connected Slack channels and an incident is raised.
  4. ITSM Integration: If enabled, a high-priority ticket is automatically created in connected PSA tools (like ConnectWise Manage or Autotask) for tracking and remediation.
SaaS Governance

Offboarding

The Offboardings page automates employee termination access reviews. Rather than relying on static checklists, Fantomo cross-references your SaaS Inventory against the departing employee's detection history to generate a comprehensive revocation list, ensuring that accounts are terminated before or on their last day.

💡 InfoSec 101: Offboarding Is a Security Control

Verizon's Data Breach Investigations Report consistently shows that ex-employee credential abuse is one of the top vectors for insider threats. An employee who departed three months ago — whose Google account was disabled but whose Salesforce, GitHub, and Notion accounts were left active — remains a live attack surface. Fantomo's offboarding workflow cross-references your SaaS Inventory against the departing employee's detection history to generate a comprehensive revocation checklist.

Dual-Column Offboarding Dashboard

The Offboarding page is structured as a split dual-column layout to streamline review and execution:

  • Left Column (Offboarding Queue) — Lists all departing employees, showing their email address, total number of SaaS accounts to revoke, and active status badge. In the header, the ⚡ Detect Departures button triggers a manual query against your directory sync service to locate recently suspended accounts and enqueue them for review.
  • Right Column (Task Details Panel) — Clicking any user loads their checklist in this details panel. It displays a checklist of all SaaS applications used by the employee, their authorization statuses, and specific permission scopes. The 🔑 Revoke All OAuth button in the panel header runs a batch revocation on all detected Google OAuth grants for this user.

Task Status Values

StatusMeaningAction Required
pendingThe employee has been enqueued, but revocation has not yet started.Review the detected app list and click Revoke All OAuth or manually begin offboarding.
in_progressRevocation actions are currently running or some apps require manual verification.Monitor status and manually verify any apps that cannot be programmatically revoked.
completedAll identified OAuth grants and tracked accounts have been successfully revoked.No further action required. The record is archived as compliance evidence.
cancelledThe offboarding process was manually aborted or marked as skipped by an administrator.Review logs if this was done in error.

Offboarding Failure Handling

When an automated revocation fails, Fantomo fires an offboarding_failure webhook containing the employee's email, the number of successful and failed revocations, and a timestamp. Configure a webhook endpoint (Settings → Outbound Webhooks) to route this event to your ITSM system, creating an urgent ticket for manual intervention.

The offboarding_failure webhook payload contains:

{
  "event_type": "offboarding_failure",
  "data": {
    "user_email": "[email protected]",
    "revocation_successes": 5,
    "revocation_errors": 3,
    "timestamp": "2026-06-08T01:14:59.000Z"
  }
}
⚠️ Manual Verification Is Still Required

Automated revocation covers OAuth grants (where Fantomo has API access via DWD) and accounts explicitly linked through your integrations. It does not automatically revoke accounts where the employee signed up with a personal email, used a browser-saved password, or where the SaaS vendor doesn't expose a revocation API. Always supplement automated offboarding with a manual checklist for high-privilege accounts (GitHub admin, AWS IAM, Salesforce admin, financial systems).

SaaS Governance

Automated Playbooks

Playbooks are multi-step automated workflows that execute in response to security events detected by Fantomo. They eliminate the need for manual repetitive responses to common patterns — for example, automatically sending an employee a questionnaire when they sign up for a new AI tool, notifying IT, and setting the app to "Under Review" status, all without any admin intervention.

💡 InfoSec 101: Security Orchestration (SOAR)

Security Orchestration, Automation and Response (SOAR) is a category of security tools that automate the "response" phase of security operations — the actions taken after an event is detected. Playbooks are Fantomo's built-in SOAR capability. As your security program matures, you can extend playbook automation further by routing events to dedicated SOAR platforms (Palo Alto XSOAR, Splunk SOAR, Microsoft Sentinel Logic Apps) via webhooks.

Playbook List & Management

The Playbook List shows all configured playbooks as cards. Each card shows the playbook name, active/inactive badge, trigger type, step count, runs in the past 30 days, and failed run count. Controls include an Active toggle, Edit button, and Delete button.

🔒 System Locked Read-Only Playbooks

For security, stability, and billing continuity, four core system playbooks are locked on both the backend and frontend. They appear in your list as enabled but cannot be deactivated, deleted, or edited by organization admins:

  • Tenant Inactivity Auditing: Runs on a scheduled basis to detect inactive devices (over 60 days) and automatically suspend the organization and cancel its Stripe subscription.
  • Billing Management: Handles active trial sweep and deletes expired add-ons automatically.
  • Hygiene & Maintenance: Automatically cleans up historical organization audit logs older than the configured retention days.
  • Domain Cache Eviction: Sweeps and deletes expired domain classifications from local caches to ensure data freshness.

Tenant Inactivity Auditing 🔒 SYSTEM LOCKED

Active
Trigger: Scheduled · 1 step · 30 runs in past 30 days

AI Tool Detection Response

Active
Trigger: New App in Category · 3 steps · 12 runs in past 30 days

Playbook Editor

New Playbook

Steps

Step 1: Send Employee Check-in
Action: send_question — via Slack DM
Step 2: Set App Status → Under Review
Action: set_app_status
Step 3: Slack Alert to IT Admins
Action: slack_admin — with dynamic tokens

Playbook Triggers (11 Types)

Triggers initiate the execution of a Playbook run. Depending on the trigger type, specific configuration parameters (e.g., category, minimum severity) can be set in the editor UI.

Trigger Internal Key Configuration Parameters Fires When
New App Detected new_app_detected None Any previously unseen domain appears in the Shadow IT log for the first time.
New App in Category new_category_app category_id (Dropdown selection) A new app is detected that belongs to a specific category (e.g. AI Tools, Cloud Storage).
Employee Response employee_response response_value (Optional filter) An employee submits a response to a User Activity questionnaire. Use to route their answer into downstream approval workflows.
User Offboarding offboarding None A user's Google Workspace/M365 account is suspended or deleted, triggering the offboarding workflow.
Risk Threshold Exceeded risk_threshold_exceeded risk_score threshold A SaaS vendor's risk score is updated in the SaaS catalog and exceeds the configured organizational threshold.
Foreign Tenant Detected foreign_tenant_detected None A user attempts to sign into a non-corporate, foreign Microsoft or Google Workspace tenant.
New User Created new_user_created None A new user account is created or synced from Microsoft 365 or Google Workspace Directory.
New Breach Detected new_breach_detected severity threshold (Low/Med/High) Threat intelligence feeds identify a security incident or data breach affecting a vendor in your SaaS inventory.
Behavioral Anomaly Detected behavioral_anomaly_detected severity threshold (Low/Med/High) The behavioral scan engine identifies anomalous activity (such as rapid, bulk OAuth permission grants).
Scheduled scheduled Cron Expression or Interval Evaluates periodically (hourly, daily, weekly, or custom cron) to trigger system maintenance, trials sweep, or inactivity audits.
Browser Rule Interaction browser_rule_interaction rule_id (Dropdown filter), user_action_type (Accept/Decline/Request/etc.), button_id (Custom button filter) An employee interacts with a browser extension rule prompt (e.g. accepting a policy modal, clicking a custom button, or submitting a block page bypass access request).

Playbook Action Steps (11 Types)

Playbook steps are executed sequentially. If a step fails, the playbook run enters a Failed state, and an automated email alert containing the execution error logs is immediately sent to all organization administrators.

Action Step Internal Key Configuration Parameters Behavior & Functionality
Send Employee Check-in send_question question_text, outreach channel (Slack DM or email) Sends a questionnaire prompt to the triggering employee via the selected channel.
Email IT Admin email_admin recipient_email, subject, message_body Sends a detailed, customized alert email to the organization administrator. Supports dynamic tokens.
Slack Alert slack_admin message_template Posts a customized message with dynamic tokens to the organization's connected Slack alerts channel.
Create Alert create_alert alert_title, alert_description Creates a Security Alert entry in the Threat Center alert feed for manual admin review.
Set App Status set_app_status status (approved / under_review / blocked / unapproved) Automatically updates the SaaS Inventory status for the triggering application.
Wait for Response wait_for_response timeout_days (Cooldown duration) Pauses execution until the user responds to the check-in or the cooldown duration expires. If responded, continues to the next step immediately. If timeout expires, resumes to execute the remaining fallback steps.
Revoke OAuth Grants revoke_oauth None Revokes all OAuth grants associated with the triggering employee for the detected application.
Check Inactivity & Suspend check_inactivity_and_suspend None (System Scheduled) Checks for device inactivity over 60 days, suspends the organization, and cancels Stripe subscription.
Process Billing Expiry process_billing_expiry None (System Scheduled) Sweeps active trials and deletes expired add-ons automatically.
Enforce Data Retention enforce_data_retention None (System Scheduled) Deletes audit logs older than the organization's retention setting.
Evict Domain Cache evict_domain_cache None (System Scheduled) Evicts expired domain classifications from the cached tables.

Dynamic Token Replacements

When writing custom email subject/bodies or Slack alert templates in the Playbook Editor, you can use curly-brace tokens. The playbook engine substitutes these tokens at runtime with actual contextual event details:

Token Description Example Output
{{app_name}} The human-readable name of the application. ChatGPT
{{domain}} The domain name of the triggering application. chat.openai.com
{{user_name}} The full name of the employee who triggered the event. Alice Smith
{{user_email}} The email address of the employee. [email protected]
{{risk_score}} The current composite risk score (0-100) of the application. 85
{{workspace_event}} Details of the directory event (e.g. sync type or user creation). User auto-provisioned via Office 365 Sync
{{anomaly_explanation}} Description of the anomaly detected by the behavior analyzer. Bulk OAuth grants (12 apps authorized in 2 minutes)
{{anomaly_type}} The internal category of the behavioral anomaly. rapid_oauth_grants
{{anomaly_recommended_action}} System recommendation for mitigating the anomaly. Revoke all active OAuth client IDs and reset session tokens.
{{breach_title}} The title of the vendor breach incident from intelligence feeds. HaveIBeenPwned: Adobe Customer Database Exposure
{{breach_description}} Details regarding compromised fields in the vendor breach. Compromised fields: Emails, Passwords (salted hashes), Usernames.
{{response_value}} The multiple-choice value selected by the employee during outreach. Approved for role
{{employee_note}} The free-text business justification written by the employee. I need this tool to generate mock UI copy for the marketing campaign.
{{rule_name}} The name of the browser rule that was triggered. Block Social Media
{{user_action_type}} The action taken by the user (e.g. accepted, declined, request_access_business_need, etc.). request_access_business_need
{{button_label}} The label of the custom button clicked, if applicable. Acknowledge Policy
{{user_justification}} The justification text submitted by the user when requesting access. Required for client research.
{{url_path}} The URL path or address where the rule was triggered. https://facebook.com/login

Master Playbook Propagation (Super Admins)

Super admins can manage organizational default playbooks dynamically in the Super Admin interface. When a super admin updates or inserts a default playbook structure, these modifications are propagated in real-time to all tenant databases, ensuring critical security policies (especially locked system playbooks) remain up-to-date across all organizations without manual intervention.

Step-by-Step Scenario: Employee Outreach & Non-Response Escalation

This example demonstrates how to configure a two-stage automated workflow that audits SaaS signups by reaching out to employees, waiting for a response, escalating to admins if they fail to justify it, and routing successful justifications to security approval channels.

Stage 1: The Outreach & Escalation Playbook

This playbook handles the initial discovery, puts the application under review, asks the employee for justification, and handles the non-response timeout.

  1. Trigger Configuration: Select New App in Category and configure the Category ID to AI Tools.
  2. Step 1: Set App Status: Action set_app_status with value under_review. This keeps the application flagged in the inventory while we wait.
  3. Step 2: Send Employee Check-in: Action send_question via Slack DM.
    Message Text Hi {{user_name}}, we noticed you signed up for {{app_name}} ({{domain}}). Corporate policy requires employee justification. Why are you using this tool?
  4. Step 3: Wait for Response: Action wait_for_response with timeout_days set to 3. This pauses the playbook run.
    • If the employee responds: The playbook is resumed immediately and moves to Step 4. However, the system's smart bypass logic recognizes the response and automatically skips subsequent escalation steps (like administrative alerts).
    • If 3 days pass without a response: The cooldown expires, the run resumes, and it executes the fallback steps below.
  5. Step 4: Email IT Admin (Fallback Escalation): Action email_admin. Replaces tokens in the subject/body:
    Subject [Escalation] Non-Responsive AI Tool Signup - {{user_email}}
    Body Employee {{user_name}} ({{user_email}}) registered for {{app_name}} but failed to submit a business justification within the 3-day cooldown period.
  6. Step 5: Set App Status (Fallback Block): Action set_app_status with value blocked. Since the employee did not justify usage, the browser policy will automatically block access to the app's domain.

Stage 2: The Approval Routing Playbook (When User Responds)

When the employee responds in Stage 1, a new system event is generated with the trigger employee_response. We configure a separate playbook to automatically route this response to our security channels.

  1. Trigger Configuration: Select Employee Response (employee_response) as the trigger.
  2. Step 1: Slack Alert: Action slack_admin to post in the #security-approvals channel.
    Slack Template 📢 SaaS Justification Submitted by {{user_name}} ({{user_email}}) for *{{app_name}}*:
    >_Reason: "{{employee_note}}"_
    >_Classification choice: "{{response_value}}"_
  3. Step 2: Email IT Admin: Action email_admin.
    Subject [Justification Submitted] {{app_name}} - {{user_email}}
    Body Hello Security Admin, {{user_name}} has justified their access request. Justification note: "{{employee_note}}". Select option: "{{response_value}}". Please review in the admin panel to mark the app status as Approved or Blocked.

Run Status Values

Each playbook execution is logged in the Execution History tab (the third tab, after Playbooks and Templates). Execution states:

  • Running — Currently executing. Check back shortly.
  • Waiting — Paused at a "Wait for Response" step. Will resume when the employee replies.
  • Completed — All steps executed successfully.
  • Failed — One or more steps encountered an error. Click to view the error detail and manually retry.
  • Cancelled — Execution was manually stopped by an admin.

Step Log Detail & Raw Results

In the Execution History list, clicking on any past playbook run loads the run details and opens a side-by-side Step Log card. This card displays a list of each playbook step along with its execution outcome (Success or Failure) and a formatted JSON block containing the raw response payload or downstream API error message (e.g. from Slack or Google API integrations). This makes it easy for administrators to inspect the exact payload returned by each action or trace why a specific API call failed.

Template Gallery

Click Browse Templates to access the pre-built playbook template library. Templates include common patterns like "New AI Tool Response", "Offboarding Access Sweep", and "DLP Bypass Investigation". Installing a template creates a ready-to-configure playbook — customize the steps and trigger conditions to match your policies before enabling it. Note: if a playbook from a given template already exists, attempting to install the template again will show a notice rather than creating a duplicate.

SaaS Governance

Risk Alerts

The Risk Alerts page (labeled "Risk Alerts" in navigation, accessed via the /risk-signals route) monitors vendor security events affecting applications in your SaaS inventory. Signal data is sourced from HaveIBeenPwned.com and similar threat intelligence feeds, surfacing when a SaaS vendor your employees use has experienced a security incident.

💡 InfoSec 101: Third-Party Vendor Breach Exposure

When a SaaS vendor in your inventory is breached, your employees' data may be exposed even if your own systems are unaffected. Data breach notifications allow you to take proactive action: reset passwords on affected services, review whether the compromised application holds sensitive business data, and determine whether contract or compliance obligations require you to notify customers or regulators. Risk Alerts automates the watch so you don't rely on vendor self-disclosure or news articles to learn about breaches.

Risk Signal Feed

The main feed lists all detected security events, each with a severity rating and signal type. Signals can be filtered by severity and can be dismissed once reviewed.

🔴
Data Breach — dropbox.com
Type: Data Breach · Severity: Critical

Dropbox was listed in a data breach disclosure. 3 employees in your inventory use this service. Review their accounts and consider credential resets.

🟠
Vulnerability Disclosed — github.com
Type: Vulnerability · Severity: High

A high-severity vulnerability was publicly disclosed for this vendor. Monitor for patches and review the vendor's security advisory.

Signal Types

TypeWhat It MeansRecommended Response
Data BreachThe vendor has appeared in a known data breach dataset. Employee credentials or data held by this service may be compromised.Review affected users in your SaaS Inventory. Prompt password resets. Evaluate whether data classification requires customer notification.
VulnerabilityA publicly disclosed security vulnerability was found in this vendor's software or infrastructure.Review the vendor's CVE advisory for patch status. Monitor for follow-up breach disclosures if the vulnerability was exploited.
AcquisitionThe vendor was acquired by another company. Ownership changes can affect data handling, security posture, and compliance certifications.Review the acquiring company's security posture. Update your vendor risk assessment. Re-sign a DPA if the acquisition changes data processing jurisdiction.

Severity Levels

SeverityIndicatorDescription
Critical🔴Immediate action required. Confirmed breach with high likelihood of credential or data exposure.
High🟠Significant vulnerability or high-confidence breach. Review within 24 hours.
Medium🟡Moderate risk. Monitor and assess within the week.
LowInformational. Low-risk disclosure for awareness purposes.

Breach Scan

Click 🔍 Scan Now to initiate an on-demand breach check. Fantomo cross-references the domains in your SaaS Inventory against known breach databases (HaveIBeenPwned and similar feeds) and updates the signal feed with any newly discovered events. The Last scan date is shown next to the button. Scans also run automatically on a periodic schedule.

Dismissing Signals

Click Dismiss on any signal to mark it as reviewed. Dismissed signals are hidden from the default view. Toggle Show dismissed to see the full history. Dismissal is logged for audit purposes.

Stats Panel

A stats panel above the feed (loaded via /org/risk-signals/stats) shows aggregate counts by severity and the timestamp of the last successful scan.

🔐 Security Posture Expansion: Vendor Breach Response Process

When a Critical signal fires: (1) Open the SaaS Inventory and find the affected vendor. (2) Click into the app detail to see which employees have active usage. (3) Contact each affected employee to prompt a password reset and review of active sessions. (4) If the app holds sensitive data (PII, financial data), consult legal counsel about breach notification obligations. (5) Re-evaluate the app's Security Posture rating in the inventory and consider moving it to "Under Review" status until the vendor issues a remediation report.

Data Protection (DLP)

DLP User Activity Log

The User Activity page in the Data Protection section (route: /dlp-logs) is the audit log for every DLP policy event — both overrides (where the user dismissed a warning and proceeded) and silent-log matches (where no warning was shown but the event was recorded). This is your primary compliance evidence for data protection controls.

ℹ️ Understanding DLP Logs

This audit log captures all content matching active DLP rules across endpoint browser sessions. Admins can search by email or target destination and filter by category or date range. Click any row to expand a detailed view containing raw match snippets and telemetry metadata.

DLP Activity Log Table

UserMatched RulesTarget DestinationJustification ReportChecksum HashLogged At
[email protected] US Social Security Numbers dropbox.com "Sharing HR report with benefits provider" a45f8e6c... Today 10:23
[email protected] AWS Access Credentials github.com "Rotating key in private repo documentation" d9d1e57c... Today 09:47
[email protected] PCI Credit Card Numbers chatgpt.com — silent log, no prompt shown — f91d830b... Yesterday 16:11

Column Reference

ColumnDescription
UserEmail of the employee whose browser extension recorded the event.
Matched RulesThe name(s) of the DLP rules that matched. Multiple rules can fire simultaneously if the submitted content matches more than one pattern.
Target DestinationThe domain of the website or endpoint the employee was submitting data to at the time of the match.
Justification ReportThe verbatim text entered by the employee in the justification prompt. Empty for silent-log events or hard-block dismissals without justification.
Checksum HashSHA-256 cryptographic checksum of the matched data payload to verify file integrity and prevent data tampering in audit reports.
Logged AtTimestamp of the event. Full ISO 8601 timestamp available on hover.

This feature requires the Policy Auditor feature on your plan. If gated, contact support or check your billing settings.

Data Protection (DLP)

Browser Alert Rules

Browser Alert Rules define when and how the Fantomo extension intervenes in employee browser sessions. Each rule specifies a trigger (what to match), an action (what to show the employee), and targeting (which employees the rule applies to). Rules are evaluated in priority order — highest priority first.

ℹ️ Understanding Policy Rules

Use rules to enforce logical access boundaries. System rules are pre-configured, while custom rules allow targeting specific domains or patterns. Reorder rules using the drag handles to define precedence.

Rules Table

Debugger
Rule Name Match Type Action Frequency State Priority Actions
⋮⋮
AI Tool Data Submission Warning
Warns when data is submitted to AI LLM tools
domain_pack Modal (Dismissable) Once per session 🟢 Enforced System
⋮⋮
Custom rule for unapproved file sharing
domain Modal (Dismissable) Until agreed 🟡 Test Mode 1
⋮⋮
Blocks uploads to personal email services
domain Modal (Dismissable) Once per session 🟢 Enforced 2

Column Reference

ColumnDescription
Drag Handle (⋮⋮)Drag to reorder custom rules. Rules are evaluated top-to-bottom in priority order. System rules cannot be reordered — they always appear at the bottom of the evaluation chain.
CheckboxSelect rules via checkboxes to run bulk state operations: Pause Selected (sets checked rules to Disabled) and Activate Selected (sets checked rules to Enforced).
Rule NameClickable — opens the Rule Editor for that rule. System rules open in read-only view.
Match Typedomain — rule targets a specific domain pattern. domain_pack — rule uses a curated pack of domains maintained by Fantomo (e.g. "AI Tools Pack", "Personal Cloud Storage Pack").
ActionThe enforcement type shown to the user. Displayed as: 💬 Dismissable (user can close after interacting), ⚠️ Non-Dismissable (cannot be closed; user must navigate away), or 🚫 Block (replaces the entire page with a block screen).
FrequencyHow often the rule triggers for the same user: Once per session — fires once per browser session. Until agreed — fires every time until the user explicitly clicks an "Acknowledge" button.
StateRule execution mode: 🟢 Enforced (live and warning active), 🟡 Test Mode (logs events but displays no modals), ⚫ Disabled (inactive).
PriorityNumeric evaluation order for custom rules. Higher number = higher priority (evaluated first). Drag-to-reorder automatically recalculates priorities. System rules always appear at the bottom of the evaluation chain regardless of priority numbers.
Settings Cog IconLocated in the top right, links directly to the global DLP Policy Settings page.
💡 InfoSec 101: Testing Mode — Always Test Before Enforcing

Never deploy a new rule directly into Active state on your first deployment. Set it to Testing first: events are captured in the DLP log, you can review them, tune the targeting (which OUs or groups are affected), and verify the match pattern is triggering correctly — all without disrupting any employees. A false-positive DLP alert on a legitimate business workflow will generate help-desk tickets and erode employee trust in the system. Test for 1–2 weeks before activating.

Data Protection (DLP)

Rule Editor

The Rule Editor is accessed by clicking a rule name in the Browser Alert Rules table, or by clicking + Create New Rule. It provides a comprehensive form for defining every aspect of a Browser Alert Rule — from what triggers it to how it appears to employees in their browser.

Tabbed Layout Organization

To provide a structured and full-width editing space, the Rule Editor is organized into four functional tabs:

  • Configuration — Contains basic parameters (Rule Name, Match Type/Value, state, and frequency), custom alert buttons, inline Pack Management overrides, and the Message Content section (including titles, body messages, and scrollable policy markdown). Also includes the collapsible Rules Configuration Guide.
  • Targeting — Configures user, group, or OU targeting allocations and exception/exclusion rules.
  • Automated Playbooks — Associates and manages trigger-based SOAR response playbooks (replacing the legacy rule-specific Slack alerts card).
  • Live Preview — Displays a real-time viewport simulation of how the modal or block page will render on the user's browser.

Global Cancel and Save Changes / Create Rule action buttons remain fixed at the bottom of the page across all tabs, allowing you to save changes at any point during configuration.

Basic Configuration

Rule Configuration

Message Content

Message Content

Supports **bold**, *italic*, and markdown lists. HTML tags <strong>, <em>, <ul>, <ol>, <li> are also accepted.

If additional languages are enabled (Settings → Languages), translation fields for each language appear below the English fields in this card.

Scrollable Policy & Versioning

For rules requiring explicit user agreement, you can configure scrollable policy agreements and version controls:

  • Scrollable Policy Content — Configured inside the Message Content card under the Configuration tab. Paste long-form acceptable-use policies or markdown text that employees must scroll through before the modal action buttons become active. Translations for this content can be managed on a per-language subtab in the same block.
  • Policy Version — Configured at the bottom of the English (Default) subtab inside the Message Content card under the Configuration tab. Incrementing the policy version on the English tab resets consent tracking globally, prompting employees who agreed to a prior version to re-acknowledge the policy on their next visit. All other translation tabs render an informational message referencing this global behavior.

Custom Alert Buttons (up to 3)

Each rule can display up to 3 custom action buttons in the alert modal. Click + Add Button to add a button. Buttons can be reordered with ▲ Up / ▼ Down controls.

Custom Alert Buttons (1/3)

Button #1
Machine-readable identifier used in webhooks and analytics.

Button Field Reference

FieldDescription
Button IDA machine-readable slug (e.g. btn_agree) used in webhook payloads and analytics. Auto-generated but can be customized. Must be unique within the rule.
Display ClassPrimary (Solid) — filled button using the primary brand color. Secondary (Outline) — outlined border button. Link (Text) — plain underlined text link style.
Action TypeControls what happens when the employee clicks the button (see table below).

Button Action Types

Action TypeWhat HappensJustification Captured?
link — Link to URLOpens a destination URL in a new tab. Use for "Learn More" or "Open IT Portal" buttons. A Destination URL field appears when this type is selected.No
submit_request — Submit a requestShows a text input where the employee enters a justification. The text is logged as the DLP event justification and sent to alert feeds and webhooks. A per-language Justification Placeholder field appears.Yes — required input before submission.
agree — Agree (Record Consent)Employee clicks to acknowledge the policy. Records the acknowledgment as the event outcome. No free-text input.No — acknowledgment is the record.
decline — Decline (Record Dissent)Employee explicitly declines the policy. Event is logged as declined. No free-text input.No

Targeting & Assignment

The Rule Targeting card (right column) controls which employees the rule applies to. Targets can be added or removed individually. The rule defaults to "All Staff Members (Global)."

Rule Targeting

Target this rule to specific parts of your organization. Adding a target restricts the rule to only those users.

All Staff Members (Global) Scope

Add Targeting Scope

Target Exclusions

Exclude specific staff members, groups, or organizational units (OUs) from being affected by this rule, even if they fall within the target scope above.

Assignment Type Reference

TypeDescriptionRequires
allRule applies to every enrolled user in the organization.Nothing — always available.
userRule applies to a single specific user identified by their email. Search from the enrolled users list.The user must be enrolled (appear in the Users list).
ouRule applies to all users in a specific Google Workspace Organizational Unit (e.g. /Engineering/US).Google Workspace Directory Sync must be active.
groupRule applies to all members of a specific Google Group.Google Workspace Directory Sync must be active.

Target Exclusions: You can define exceptions to your targeting using the same scopes (User, Group, or OU). For example, you can target a rule to all staff, but add an exception for a specific Google/O365 Group (such as "Senior Leadership" or "HR") or a specific OU path to prevent the rule from enforcing on those segments.

Automated Playbooks Tab

The Automated Playbooks tab replaces the legacy Slack alert routing. It allows you to associate multi-step response playbooks that trigger automatically when specific rule events fire (e.g., when the warning modal is displayed, when a user agrees or declines, when they click a specific custom button, or when they submit a justification request). You can add, activate, or delete associated playbooks directly within this tab.

Automated Playbooks

Configure response playbooks to trigger automatically when this rule is displayed, accepts/declines policy, clicks buttons, or submits bypass access requests.

Restricted Site Warning — Slack Alert
Trigger: On Display | Action: Slack Notification (#sec-alerts)
Active

Create Automated Playbook

Additional Settings (in Rule Configuration card)

The following additional fields are located in the Rule Configuration card itself (not a separate Advanced Settings card):

FieldLocationDescription
Effective Start DateRule Configuration cardOptional datetime. Rule will not trigger before this date/time. Leave blank for no start restriction.
Effective End DateRule Configuration cardOptional datetime. Rule automatically becomes inactive after this date. Useful for temporary policies.
Modal WidthRule Configuration cardSelect override modal width: Global Default, Small, Medium, or Large. Only active for modals.
Auto-translate alert contentMessage Content cardToggle. When on, Fantomo auto-generates translations for all enabled languages. Review before activating on compliance-critical rules.
Policy VersionMessage Content card (English tab)Integer starting at 1. Incrementing the version on the English tab resets consent tracking globally. Users who acknowledged a prior version will be re-prompted.

Saving the Rule

Two buttons appear at the bottom of the form: Cancel (discards changes) and Save Changes / Create Rule. There is no "Save as Draft" option — set State to Testing to create a non-enforcing draft.

Translations

If multi-language support is enabled (Settings → Languages), translation fields for each enabled language appear inside the Message Content card below the English fields. For each language you can customize:

  • Modal Title — Localized version of the alert modal heading.
  • Message Body — Localized alert body text.
  • Button Labels — Per-language labels for each custom button (configured inside the Custom Alert Buttons section, per button).
  • Justification Placeholder — For submit_request buttons, a per-language placeholder text for the text input field.

When Auto-translate is enabled, Fantomo pre-fills these fields automatically using machine translation. Review auto-translations for accuracy before activating, especially for legal or compliance-critical policy text.

Curated Domain Packs & Manual Overrides

When creating or editing a rule, if you select Domain Pack as the Match Type and pick a valid pack (e.g. AI Tools Pack or Personal Cloud Storage Pack), a Pack Management card is dynamically rendered inline inside the Configuration tab (positioned between the Rule Configuration and Message Content cards):

  • Automated Domain List — Displays the dynamically updated list of curated domains included in the selected pack, complete with an inline search bar and pagination controls.
  • Manual Overrides — Allows you to define custom domain overrides for the pack once the rule is created. You can enter a domain and classify it as Always Block (Add) to append a domain, or Always Allow (Exclude) to bypass a curated domain. This gives administrators fine-grained control over the pre-built packages.
Data Protection (DLP)

Rule Debugger

The Rule Debugger (route: /rules/debug) provides an interactive sandbox for testing Browser Alert Rules against URLs without deploying them to employee browsers. It is particularly useful for verifying domain matching logic and testing rule priorities before activating rules.

Interactive Rule Debugger

Enter a list of absolute URLs to test. The sandbox simulates how active rules process each navigation event.
Simulation Results
✓ AI Tool Data Submission Warning
Matches URL: https://chatgpt.com (Domain Pack: AI Tools Pack)
MATCH
✓ Restricted File Sharing Sites
Matches URL: https://wetransfer.com (Domain Match)
MATCH

Using the Debugger Effectively

  1. Verify URL Matching: Paste a list of URLs and click Run URL Simulation. Confirm that the intended rules trigger for the correct URLs.
  2. Check Priority Ordering: If multiple rules target a single domain, the debugger displays them in evaluation order based on their assigned priorities, helping you see which rule takes precedence.
  3. Validate Wildcard and Glob Matches: Test complex glob pattern rules or domain wildcard structures against specific subdomains to verify correct matching behavior.
Data Protection (DLP)

DLP Policy Settings

The DLP Policies settings page (Settings → DLP Policies) manages global security configurations for the browser extension's data protection engine, including DNS health routing and localized AI text scanning.

Global Security Configuration

Configure the following settings to control browser telemetry behavior:

Security Configurations

Off
Disable DNS checks
Silently Report
Log anomalies quietly
Log & Warn User
Warn on DNS spoofing
Log & Block Access
Block anomalous requests
Chrome Local AI Analysis (Gemini Nano)
Process input text locally in-browser using Chrome's built-in Gemini Nano AI model for enhanced context-aware pattern detection. Data never leaves the browser. Requires compatible Chrome versions.

DNS Diagnostics Log Console

Clicking Run DNS Diagnostic Test runs a live simulated client-side test. It opens an interactive diagnostics console box on the page detailing current connection checks (e.g. DoH endpoints, DNS resolver speeds, certificates checks, and captive portal state verification) to confirm if the DNS routing layer is secure.

Global (System) DLP Rules

Fantomo maintains pre-built pattern rules for standard sensitive data types. These rules use a 3-mode select dropdown (🟢 Enforced, 🟡 Test Mode, and ⚫ Disabled):

Rule NameCategoryPattern TypeStatus ModeActions
US Social Security Numbers (SSN)PIIRegex
PCI Credit Card Numbers (Luhn)FinancialsRegex + Luhn

Custom DLP Rules

Administrators can create custom regex patterns. If a rule specifies a Sample Test Case, a Copy test input button will render on the row, allowing administrators to copy the string to their clipboard to test the rule locally.

Add Custom DLP Rule

🔐 Security Posture Expansion: Custom DLP for Industry-Specific Data

Beyond common credentials and PII patterns, consider adding custom DLP rules for data types specific to your industry: Healthcare: NPI numbers, ICD-10 codes, MRN patterns. Financial services: CUSIP/ISIN identifiers, SWIFT/BIC codes. Legal: matter numbers, privilege markings. Technology: internal API endpoints, database connection strings. These industry-specific patterns often have no coverage in generic DLP tools but represent significant compliance exposure.

Settings & Integrations

General & MDM Settings

The Settings page (labeled "Settings" in the page heading; linked as "General & MDM" in the sidebar) is the primary configuration hub for your organization's identity, authentication method, browser extension deployment credentials, language support, and Shadow IT category governance. It is the first settings page you should configure during initial setup.

Authentication Card

Authentication

Controls how admins sign in to this dashboard.

Action Required: Transition to Google Sign-In

Fantomo now requires Google Sign-In for all organizations. Please enable it now to avoid service interruption. Existing local passwords will be disabled.

Google Sign-In
All users must sign in with their Google account. Local passwords are disabled.
Active
⚠️ Google Sign-In Migration Is Irreversible

Once you click Enable Google Sign-In and confirm the dialog, local email/password authentication is permanently disabled for all users in your organization. Users without a matching Google account will immediately lose access. The dialog warns explicitly: (1) All existing local passwords will be permanently removed. (2) Users must sign in with the Google account matching their registered email domain. (3) Users without qualifying Google accounts will lose access. (4) Password reset functionality will be permanently disabled. Ensure all admins have Google Workspace accounts before migrating.

Organization Card

Organization

Displayed in the sidebar, alert modals, and email notifications.
Read-only. Used in webhook payloads and API requests to identify your tenant.

Languages Card

Languages

Enable languages for end-user facing messages. Translations are auto-generated and can be manually edited per rule.

English en
Default
Spanish (Mexico) es-MX
Portuguese (Brazil) pt-BR
French fr

Enabling a language makes it available for rule translations in the Rule Editor. Once enabled, it cannot be disabled (to prevent breaking existing translations on deployed rules). English is the default and cannot be disabled.

Shadow IT Category Exclusions

This card displays all SaaS classification categories that Fantomo recognizes. Each category can be individually toggled to enable or disable Shadow IT detection for domains classified under it.

Shadow IT Category Exclusions

Toggle categories to enable or disable Shadow IT detection and reporting for domains classified under them.

Collaboration Tools
Slack, Notion, Monday.com, Asana, etc.
AI & LLM Tools
ChatGPT, Claude, Gemini, Perplexity, etc.
Cloud Storage
Dropbox, Box, WeTransfer, etc.
Financial Services
Banks, payment processors, investment platforms.
Government & Legal
Gov domains, court systems, compliance portals.

Categories toggled off (disabled) will not generate Shadow IT detection events, even if employees sign up for services in that category. This is useful for categories where detection would be noisy and low-risk (e.g. financial services, government sites). Keep high-risk categories like AI Tools and Cloud Storage enabled.

Extension Setup Card

Extension Setup

Configure your browser extension deployment. The API key below is used to authenticate the extension with your organization.

Read-only. This is the endpoint your MDM configuration references.
{
  "apiKey": "ftm_your_api_key_here",
  "apiBaseUrl": "https://api.fantomo.io",
  "userId": "${user.id}",
  "userEmail": "${user.email}",
  "syncIntervalMinutes": 5
}
Copy this JSON and paste it into your MDM's extension policy field. See the MDM deployment tabs below for platform-specific instructions.

Regenerate API Key

Click Regenerate API Key in the Extension Setup card header to immediately invalidate the current API key and generate a new one. This is a destructive action — all deployed browser extensions will stop syncing until they receive the new key via an updated MDM configuration profile. A confirmation dialog states exactly this before proceeding.

When to rotate the API key:

  • A current or former admin is suspected of misuse
  • The API key was accidentally exposed (committed to a repo, logged in plain text, etc.)
  • As part of a periodic key rotation policy (recommended annually)

After rotating, update your MDM configuration profile with the new key and force a device check-in to push the updated profile to all managed devices.

The MDM & Policy Deployment Guides section (tabs: Google Workspace, Jamf Pro, Iru, Fleet, Mosyle) is covered in detail in the Setup & MDM Deployment section.

Settings & Integrations

Users & Admins

The Users page (Settings → Users & Admins) manages all user accounts in your organization. This includes: admin portal accounts (Owner, Admin, Read Only) who log in to configure Fantomo, as well as auto-provisioned employee device profiles created automatically when browser extensions check in. Both types appear in the same table.

💡 InfoSec 101: Admin vs. Employee Users

Only people who need to configure and monitor Fantomo should be invited with admin roles (Owner / Admin / Read Only). Employees whose browsers are simply monitored by Fantomo appear as auto-provisioned users — they have no portal access. Keeping admin role assignments to the minimum necessary reduces the risk of a compromised admin account being used to disable security controls. Use Read Only for auditors and executives who need visibility without write access.

ℹ️ Understanding Employee Profiles

Employee profiles consolidate security configurations, registered device lists, active browser sessions, and network speed diagnostic signals. Standard employees appear as auto-provisioned rows here once their browser extension checks in. Administrators can also manually invite other operators with Owner, Admin, or Read Only roles to access this portal.

Users Table

UserRoleDevicesAlertsLast SeenActions
Owner 20 2 min ago
Admin 13 1 hr ago
Read Only 00 Never
Admin 17 2 weeks ago

User Status Values

StatusDescriptionPortal Access
ActiveUser has accepted their invitation and can log in.Full access based on role.
InvitedInvitation email sent but not yet accepted. Displayed as a blue badge beneath the email.None — pending acceptance.
AutoUser was auto-provisioned when a browser extension checked in without a known user email. Shown with a yellow badge. Click the user to assign a real email address and merge the device.None — no portal login; device telemetry only.
DisabledAccount has been manually deactivated by an Owner or Admin.None — blocked at login.

Auditing Individual Employee Profiles

Clicking on any employee's email in the Users table loads their dedicated Employee Details Page (route: /users/:id). This dashboard consolidates device telemetry, SaaS credentials, and browser network performance metrics into five primary areas:

1. Profile Controls

Allows administrators to review their system metadata, manage their role (if they are a portal admin), and edit preferred locale settings. You can also configure merge overrides here — useful if an employee accesses SaaS accounts using multiple legacy aliases or alternative domain emails.

2. Employee Key Performance Indicators (KPIs)

2
Registered Devices
3
Active Alerts
8
Shadow IT Detections
2 minutes ago
Last Check-in

3. Registered Devices Table

Logs all devices where the employee has checked in with the Fantomo browser extension active. This telemetry tracks browser and OS variations to audit patch levels:

Device IDOS VersionBrowserExtension VersionMemoryLast Active
DEV-MAC-88F92 macOS 14.5 (Sonoma) Chrome 125.0.2 1.4.2 16 GB 2 min ago
DEV-WIN-23A8C Windows 11 (23H2) Edge 124.0.1 1.4.0 8 GB 3 days ago

4. Detected SaaS Accounts

Audits all third-party application accounts and credentials associated with the employee. This list lists both extension logins and directory OAuth permissions, complete with administrative status controls:

ApplicationAuth TypeRisk LevelStatusLast Used
notion.so Google OAuth Low Active 1 hr ago
chatgpt.com Email/Password signup High Blocked 5 min ago

5. Network Speed Diagnostics

Monitors client-side latency metrics to debug performance or identify abnormal data routing latency. Administrators can filter these records by domain name:

Avg DNS: 24ms Avg TTFB: 88ms ISP: Comcast Cable
Target DomainDNS LookupTCP ConnectTTFBISPCountry
github.com 12 ms24 ms72 ms Comcast CableUnited States
slack.com 18 ms30 ms90 ms Comcast CableUnited States

Add User

Add User

Must match your organization's email domain. Free email providers (gmail.com, yahoo.com) are not accepted.

Role Capabilities Matrix

CapabilityOwnerAdminRead Only
View dashboards, logs, activity
Create / edit / delete rules
Manage integrations (Slack, Workspace, Webhooks)
Manage users & invite admins
Access billing & subscription settings
Rotate API key
Change authentication method
Delete organization

Disabling vs. Deleting Users

  • Disable — Immediately revokes portal access. The account record, associated audit log entries, and historical data are preserved. The user can be re-enabled later. Use this for temporary leave or investigations.
  • Delete — Permanently removes the admin account. Historical audit log entries referencing this user's actions are preserved (for compliance) but the account cannot be recovered. Use this after offboarding an admin who will not return.
⚠️ Disable Admin Accounts Before Offboarding

When an admin or IT staff member leaves the organization, disable their Fantomo admin account on or before their last day — before revoking their Google Workspace account. If their Google account is suspended first and Google Sign-In is the auth method, you may not be able to log in as them to perform the disable. Always disable in Fantomo first, then revoke Google access.

Settings & Integrations

Slack Integration

The Slack integration connects Fantomo to your organization's Slack workspace, enabling two capabilities: (1) routing security alerts to designated Slack channels for team visibility, and (2) sending automated direct messages (DMs) to employees when Shadow IT detections occur, requesting a business justification.

Connection Status Card

Slack Workspace Connection

Connected
Workspace
company-workspace
Team ID
T01ABCDEF23
Connected Since
2026-03-12
3
Alert Channels
7
Active Rules
142
Check-in DMs Sent

Connecting Slack for the First Time

If Slack is not yet connected, a Connect Slack button initiates the OAuth 2.0 authorization flow. You will be redirected to Slack's authorization page, where you must approve the permissions listed below. You must be a Slack Workspace Admin (or have a Workspace Admin approve on your behalf) to install the Fantomo app.

Slack App Permissions Required

Permission ScopeWhy It's Needed
chat:writePost alert notifications to channels.
im:writeOpen direct message channels to send employee outreach check-ins.
users:read & users:read.emailLook up employees by email address to send them DMs (matches Fantomo user records to Slack user IDs).
channels:read & groups:readList public and private channels so you can select alert routing destinations in the portal.

Rule Alert Routing

This table maps each Browser Alert Rule to a specific Slack channel. When a rule fires and an employee dismisses the alert, a notification is posted to the mapped channel.

Rule NameStateSlack Delivery Channel
AI Tool Data Submission Warning
Warns when data submitted to AI LLM tools
Active
Restricted File Sharing Sites
Custom rule for unapproved file sharing
Testing

The channel dropdown for each rule shows all channels synced from your Slack workspace. The first option is always No Slack Alerts (Disabled) — select this to suppress Slack notifications for that rule. Click Refresh Channel List if recently created channels don't appear.

Employee Outreach Check-ins

⚠️ Requires SaaS Management Add-on + Steady State

The Employee Outreach Check-ins card is only visible when the SaaS Management add-on is active on your plan. Additionally, the "Save Outreach Settings" button is disabled until the SaaS Inventory has been transitioned to Steady State. If either condition is not met, the card either does not appear or shows a blocking notice. See the SaaS Inventory section for how to transition to Steady State.

Employee Outreach Check-ins

Enable automatic outreach check-ins
When enabled, employees are automatically messaged when a new Shadow IT application is detected.
Check-in Outreach Channel

Danger Zone: Disconnect Workspace

At the bottom of the Slack settings page, a Danger Zone section contains the Disconnect Workspace button. Disconnecting Slack will: stop all alert channel routing (rules will still fire, but no Slack notifications are sent), disable outreach DM check-ins, and remove the Fantomo app from the Slack workspace. A confirmation dialog appears before any action is taken. Reconnecting requires going through the OAuth flow again and reconfiguring all channel routing mappings.

Settings & Integrations

Google Workspace Integration

Settings → Google Workspace manages the server-side connection between Fantomo and your Google Workspace tenant. This is the agentless detection tier — it requires no software on endpoints and instead uses a Service Account with Domain-Wide Delegation to read audit logs, directory data, and Gmail headers.

Connection Status

Google Workspace Connection

Active & Synced
Stored encrypted. Re-paste only if rotating the service account key.

Test Connection Handshake

Clicking Test Connection Handshake performs a live verification: Fantomo attempts to authenticate with the service account credentials against your Google Workspace tenant and make a test call to the Admin Reports API. Results are displayed inline — success or a specific error code indicating what's misconfigured (auth failure, DWD not granted, API not enabled in GCP, etc.).

Mail Scan Rules Tab

Visible once Google Workspace is connected and mail scanning is active. This tab manages the subject-line patterns used to detect SaaS signups from Gmail headers.

Active Subject Line Rules

CategoryMatch PatternScopeActions
signup Welcome to System Default Read-only
signup Confirm your email System Default Read-only
login_challenge New sign-in to System Default Read-only
signup Bienvenue chez Custom Override

Subject line rule categories: signup, login_challenge, password_reset, invitation. System Default rules are maintained by Fantomo and cover common English-language patterns. Custom Override rules extend coverage for non-English subject lines, industry-specific onboarding emails, or corrections to false-positive system patterns.

Sender Domain Mappings

Maps email sender domains to SaaS application domains. For example, if Notion sends signup emails from mail.notion.so, a sender mapping tells Fantomo that emails from mail.notion.so should be attributed to the application notion.so in the SaaS inventory.

Add Sender Domain Mapping

Allowlisted Senders

Suppresses mail scan detections for specific senders. Use this to prevent false positives from trusted vendors whose emails match signup patterns but don't represent actual shadow IT. Two types:

  • email — Exact sender email address (e.g. [email protected]).
  • domain — All emails from a sender domain (e.g. google.com to suppress all Google-originated emails).

OAuth App Mappings Tab

Visible when Google Workspace OAuth scanning is active. Since employees can authenticate to third-party services using their Google Workspace identity, Fantomo inspects active OAuth client ID tokens. This tab allows administrators to classify unrecognized client IDs and map them to their corresponding SaaS catalog applications.

Unclassified Client IDs Queue

When an employee signs in with Google to an application that is not yet mapped in your SaaS Inventory, the client ID is flagged as unclassified. Administrators must review this queue to map client IDs to the correct SaaS domains:

Client ID PrefixGoogle Scopes RequestedDetectionsAction
789123-ui88.apps.googleusercontent.com userinfo.profile, contacts.readonly 14

Add OAuth App Domain Mapping

Use this form to associate a client ID with a specific SaaS domain, automatically updating all active and future user records:

Add OAuth App Domain Mapping

Google Directory Sync Status

Shows the current Domain-Wide Delegation scopes authorized for Fantomo's service account, along with the status of the background directory sync cycle. The sync runs automatically every 4 hours, pulling Workspace groups, OUs, and OAuth grants.

Initial Setup Wizard

When Google Workspace is not yet connected, the page shows a 4-step setup wizard:

  1. Create Google Cloud Service Account — link to GCP Console, instructions for creating a service account and downloading the JSON key.
  2. Domain-Wide Delegation (DWD) — link to Google Admin Console, instructions for granting the service account the required OAuth scopes.
  3. Verify Gmail Safety Settings — guidance on ensuring Gmail API access is not blocked by Google Workspace safety settings.
  4. Enable Sync — enter your domain, paste the JSON key, optionally enable telemetry sharing, and click Test + Connect.
Settings & Integrations

Office 365 Integration

Settings → Workspace Sync manages the server-side connection between Fantomo and your Microsoft Office 365 tenant. This agentless detection tier retrieves user directories, audits Azure AD / Entra ID enterprise application consent permissions, and polls simulated Exchange Message Trace logs to detect SaaS subscriptions and shadow IT without endpoint software.

Connection Status

Microsoft Office 365 Connection

Active & Synced
Stored encrypted. Re-paste client secret only if rotating credentials.

Test Connection Handshake

Clicking Test Connection Handshake runs a live credentials check. Fantomo attempts to fetch an OAuth 2.0 access token from Entra ID (using client credentials grant flow) and verify permissions against the Graph API. Result feedback is shown inline.

Active Directory Sync Status

Displays the current Entra ID permission scopes authorized for Fantomo's App Registration, along with the status of the background directory sync. Sync runs automatically every 4 hours to pull Microsoft groups, OUs/members, and active delegated user permission grants.

Initial Setup Wizard

If Office 365 sync is not yet configured, the Settings tab presents a 4-step wizard:

  1. Create Azure AD App Registration — Guidance for registering a new multi-tenant or single-tenant application in the Microsoft Entra admin center.
  2. Configure Graph API Permissions — Instructions for granting the required Application permission scopes:
    • Directory.Read.All (to sync users and groups)
    • AuditLog.Read.All (to monitor Exchange logs and audit scopes)
    • DelegatedPermissionGrant.ReadWrite.All (to read and revoke third-party app consents)
  3. Generate Client Secret Credentials — Guidance on creating a new client secret under Certificates & Secrets and copying the value before it is obscured.
  4. Submit & Handshake Test — Input your Tenant ID, Client ID, and Client Secret, run the connection test, and activate the synchronization pipeline.
Settings & Integrations

Branding & Appearance

Settings → Branding & Appearance opens the Appearance Settings page, which customizes the browser warning modals that Fantomo displays to employees. Every visual element of the modal — colors, fonts, logo, shape, and footer text — can be adjusted to match your organization's brand identity. Consistent branding is critical: employees who recognize their company's design in a warning modal are far more likely to take it seriously than a generic unbranded alert.

💡 InfoSec 101: Branding as a Security Control

Phishing attacks frequently use fake browser alerts to trick employees. If your legitimate Fantomo warnings look identical to your organization's other security communications (same logo, same colors, same footer), employees develop a recognition pattern for authentic alerts. Additionally, the deploy mode (testing vs. production) system lets you preview all changes before they go live — preventing poorly configured modals from confusing employees.

Brand Identity

Brand Identity

Displayed in the modal header when no logo is uploaded, and in the footer.
Accepts PNG, GIF, JPG, SVG (not ICO). Max 500KB. Recommended: 200×60px transparent PNG.
Accepts PNG, GIF, JPG, SVG (not ICO). Max 100KB.

Color System

All color fields use a native color picker input. Values are saved as hex strings. The available color fields are:

Color System

Default: #6366F1
Default: #818CF8
Default: #FFFFFF
Default: #1E293B
Default: #6366F1
Default: #FFFFFF
Default: #94A3B8

Borders & Alerts Layout

Borders & Alerts Layout

Controls the border-radius of the modal container and buttons. Square = 0px radius. Rounded = standard 8px/16px. Extra Rounded = 16px/24px pill-like corners.
Organization-wide default width for warning modals. Individual rules can override this.
Testing mode restricts customized branding to admin sessions so you can preview changes safely before rolling out to all employees.

Typography

Typography

Default: Outfit. Applied to modal titles. Selecting a font automatically sets the Google Fonts URL.
Default: Inter. Applied to modal body text. Selecting a font automatically sets the Google Fonts URL.

Border Color Input — The Border Color picker dynamically renders inside the layout section only when the Border Width is set to a value greater than 0px (i.e. 1px, 2px, or 3px). If width is set to None (0px), the color selection input is hidden automatically from the settings form.

Default Modal Width — Configures the organization-wide default width for warning modals. Available sizes are Small (460px max width), Medium (50% of viewport width), and Large (80% of viewport width). Individual rules can override this layout option.

The Application Mode dropdown (inside the Borders & Alerts Layout card) controls rollout scope for appearance changes:

  • Testing (Admins Only) — Customized branding is only visible to admin sessions. Employee browsers continue using the previously saved configuration. Use this to preview changes before going live.
  • All Users — Branding changes are applied to all employee browser extensions. Rollout happens within 5 minutes of the next extension sync.

Click Save Appearance to persist all settings. A live preview panel on the right side of the page updates in real-time as you change values, reflecting exactly what the modal will look like with the current branding applied.

Settings & Integrations

Outbound Webhooks

Settings → Outbound Webhooks configures real-time HTTP POST callbacks that Fantomo sends to external systems when security events occur. Webhooks are the primary integration mechanism for connecting Fantomo to ITSM platforms (Jira, ServiceNow), SIEM systems (Splunk, Sentinel), Slack bots, and custom automation workflows.

Webhooks List

Outbound Webhooks

Configure real-time outbound webhooks to integrate with your ITSM platforms (e.g. Jira, Slack, ServiceNow).

Destination URLEventsStatusActions
https://jira.company.com/rest/webhooks/incoming license_request dlp_bypass
https://hooks.slack.com/services/T01/B01/abcdef shadow_it

Create / Edit Webhook Form

Configure New Webhook

Must be HTTPS. Maximum 2,048 characters. Fantomo will POST JSON to this endpoint when subscribed events fire.

HMAC Signature Signing (Optional)

Secure your incoming requests with a computed HMAC SHA-256 signature. Leave both fields blank to skip signing.

Max 255 characters. Keep this secret — it's your shared key.
Default: X-Fantomo-Signature. The HTTP header that will carry the HMAC digest.

Custom Static Headers (Optional)

Add static key-value headers to every request. Use for API key authentication on endpoints that require an additional authorization header.

Select which events trigger this webhook. At least one must be selected.

On-Portal Webhook Integration Sandbox

To assist developers in integrating external services, the bottom of the Webhook page features an interactive Webhook Integration Guide. This sandbox includes two tools:

  • Interactive Payload Visualizer — Clicking tabs for each event type (license_request, shadow_it, dlp_bypass, and offboarding_failure) displays a colorized, syntax-highlighted sample JSON payload schema. This matches the exact structure that Fantomo posts to your endpoint.
  • Signature Verification Code Helper — Displays a copyable Node.js Express code snippet (shown below) showing how to securely compute and verify the HMAC SHA-256 signature using constant-time comparison.

Event Payload Schemas

Every webhook dispatch wraps the event data in a standard envelope. All four event types share the same outer structure:

{
  "event_id": "8f3e5b72-9b24-4a6c-9c98-1e43d748f21e",  // UUID, unique per event
  "event_type": "license_request",                        // one of the four event types
  "org_id": "3c84e1b7-cd34-450f-a39c-f91d830b8d5a",      // your organization UUID
  "timestamp": "2026-06-08T01:05:00.000Z",               // ISO 8601 UTC
  "data": { ... }                                         // event-specific payload (see below)
}

license_request payload

{
  "event_type": "license_request",
  "data": {
    "alert_activation_id": "d16c59b2-38d5-4519-86ab-b0b3d6d5ef0a",
    "user_id": "6e2882a1-fa44-42b7-84bc-87c26fb4c4d5",
    "user_email": "[email protected]",
    "domain": "slack.com",
    "rule_id": "f3cbb031-15d2-430c-be4e-0a562efee120",
    "rule_name": "Unapproved Collaboration Tools Warning",
    "user_justification": "Need to communicate with external client workspace for Q3 deliverables.",
    "button_id": "req_button_1",
    "button_label": "Request Sandbox Access",
    "timestamp": "2026-06-08T01:04:59.000Z"
  }
}

shadow_it payload

{
  "event_type": "shadow_it",
  "data": {
    "user_id": "6e2882a1-fa44-42b7-84bc-87c26fb4c4d5",
    "user_email": "[email protected]",
    "domain": "zoom.us",
    "detection_type": "signup",
    "matched_pattern": "input[type=\"password\"]",
    "browser_name": "Chrome",
    "timestamp": "2026-06-08T01:09:59.000Z"
  }
}

dlp_bypass payload

{
  "event_type": "dlp_bypass",
  "data": {
    "log_id": "5b597cde-9a99-4d1a-b333-d9d1e57cfa45",
    "user_id": "6e2882a1-fa44-42b7-84bc-87c26fb4c4d5",
    "user_email": "[email protected]",
    "matched_rules": ["US Social Security Numbers", "PCI Credit Card Numbers"],
    "justification": "Uploading customer support database extract for debug analysis.",
    "target_domain": "customer-support-staging.com",
    "snippet_checksum": "a45f8e6c7d8b9e0f1a2b3c4d5e6f7a8b",  // SHA-256 of matched text
    "timestamp": "2026-06-08T01:11:59.000Z"
  }
}

offboarding_failure payload

{
  "event_type": "offboarding_failure",
  "data": {
    "task_id": "2c8f8bde-e129-4d34-b3ef-88d44e548231",
    "user_id": "71aef42d-2090-4da2-8de9-b1d22bfca422",
    "user_email": "[email protected]",
    "revocation_successes": 5,
    "revocation_errors": 3,
    "timestamp": "2026-06-08T01:14:59.000Z"
  }
}

HMAC Signature Verification

When a signing secret is configured, Fantomo computes an HMAC-SHA256 digest of the raw request body and sends it in the configured signature header. Your endpoint should verify this digest before processing the payload:

// Node.js Express — HMAC signature verification
import crypto from 'node:crypto';

function verifyWebhookSignature(req, secret) {
  // Get the signature from the configured header (default: X-Fantomo-Signature)
  const signature = req.headers['x-fantomo-signature'];
  if (!signature) return false;

  // Compute HMAC-SHA256 of the raw body string
  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(req.rawBody);  // Must be raw bytes, not parsed JSON
  const expectedSignature = hmac.digest('hex');

  // Use constant-time comparison to prevent timing attacks
  return crypto.timingSafeEqual(
    Buffer.from(signature, 'utf-8'),
    Buffer.from(expectedSignature, 'utf-8')
  );
}

// In your Express route handler:
app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
  if (!verifyWebhookSignature(req, process.env.WEBHOOK_SECRET)) {
    return res.status(401).json({ error: 'Invalid signature' });
  }
  const event = JSON.parse(req.body);
  // Handle event...
  res.status(200).json({ received: true });
});
⚠️ Always Verify Signatures in Production

An unverified webhook endpoint accepts payloads from anyone who can guess or discover your URL. An attacker could forge fake DLP bypass events to flood your ticketing system, or fake offboarding failures to trigger unauthorized account reinstatement. Always implement HMAC verification and return a 401 if verification fails.

Delivery Details

  • HTTP Method: POST
  • Content-Type: application/json
  • Timeout: Fantomo waits up to 10 seconds for a 2xx response before considering the delivery failed.
  • Retries: Failed deliveries are retried with exponential backoff.
  • Order: Events are delivered in approximately chronological order but delivery order is not guaranteed for concurrent events.
🔐 Security Posture Expansion: Webhook-Powered SOAR

A complete webhook-driven incident response pipeline: (1) dlp_bypass events → ServiceNow → auto-creates a P2 security incident, assigns to on-call analyst. (2) offboarding_failure events → PagerDuty → pages the IT on-call engineer immediately. (3) shadow_it events → Splunk HEC → ingested into SIEM for behavioral correlation. (4) license_request events → Slack → posted to #it-requests for rapid approval/denial workflow. Each integration reduces mean time to respond (MTTR) by eliminating manual monitoring steps.

Settings & Integrations

Billing & Plans

Settings → Billing & Plans manages your Fantomo subscription tier, active add-ons, payment method, and usage statistics. Only users with the Owner or Admin role can view this page.

Current Plan Card

Current Plan

Complimentary Custom Pricing
Plan
Fantomo Enterprise
active
Active Users (Last Month)
242
15 free · 227 billable
Estimated Next Charge
No charge (complimentary)
Custom billing contract terms apply
⚠️ Large Organization Scale Warning (200+ Active Users)

If your organization exceeds 200 active users, a warning banner appears prompting the administrator to contact Fantomo support for a custom enterprise scale agreement. At this scale, volume pricing discounts apply and custom invoicing profiles are configured.

Add Payment Method (Stripe SetupIntents)

To securely register your payment card, the billing portal embeds the Stripe SetupIntents interface directly inline. Clicking Add Payment Method opens this form, allowing card details to be validated and saved on file without external redirects. Billing charges are computed dynamically at the end of the monthly billing cycle based on the number of active billable users.

Manage Subscription (Stripe Portal)

Clicking Manage Subscription — which only appears when a payment method is on file and the account is not complimentary — opens the Stripe Customer Portal in a new tab. From there you can: update your payment method, download historical invoices, view upcoming invoice details, and cancel your subscription.

Add-ons

Fantomo's feature set is extended via add-ons. The Current Plan card shows your active add-ons with monthly prices. Available add-ons are listed below in a grid. Specific add-ons offered depend on your account configuration and are loaded dynamically — what you see may differ from any list shown here.

Example Add-on

$29/mo
Short description of what this add-on enables.

Active add-ons appear in the Current Plan card above with Deactivate / Reactivate controls.

Add-on Operations

  • Activate — Depending on the add-on, may redirect to a Stripe Checkout page for immediate payment, or activate immediately if the add-on is included in your plan tier.
  • Deactivate — Schedules deactivation at the end of the current billing period. You retain access until the period ends.
  • Reactivate — Re-enables a deactivated add-on immediately, resuming billing at the next cycle.

Alert Log Setting

An internal setting controls whether historical DLP alert records are retained. When disabled, new alerts are not stored long-term (the real-time dashboard still shows recent events). When enabled, all DLP alert history is retained for the duration configured by your plan. This setting is controlled via support or via the API endpoint /billing/settings/alert-log — it is not currently exposed as a toggle in the billing page UI.

🔐 Security Posture Expansion: Compliance Evidence and Log Retention

For SOC 2, ISO 27001, and HIPAA compliance audits, DLP event logs must typically be retained for 12 months minimum (some frameworks require 7 years for financial data). Enable the Alert Log Retention add-on to meet these requirements. Additionally, export periodic log snapshots to immutable storage (AWS S3 with Object Lock, Google Cloud Storage with Bucket Lock) to provide tamper-evident evidence that logs have not been altered — a common auditor request.

Security Program

InfoSec 101 Blueprint for SMBs

This section is a practical security program blueprint for small and medium-sized businesses (SMBs) that are adopting Fantomo as their first security tool. It maps Fantomo capabilities to industry frameworks, identifies gaps you'll need to fill with complementary tools, and provides a phased roadmap for building a complete security program over 12–24 months.

You do not need a CISO or security team to use this guide. You need someone with basic IT skills, the patience to work through each phase, and the organizational authority to enforce policy. That person might be you.

Phase 0: Foundations (Before Fantomo)

A security program cannot succeed if basic organizational hygiene is missing. Verify these prerequisites before investing in any security tooling:

FoundationWhy It MattersHow to Verify
Google Workspace (or Microsoft 365) as identity providerA centralized identity platform is the bedrock of access control. Without it, you cannot enforce centralized identity provider logins, cannot audit logins, and cannot do systematic offboarding.Every employee logs in to their corporate apps with their organization email and Google/Microsoft credentials — not personal accounts.
Multi-Factor Authentication (MFA) enforcedMFA prevents 99%+ of credential stuffing attacks. Without it, a single leaked password compromises an entire account.Google Workspace Admin Console → Security → 2-Step Verification → Enforcement: On for all users.
Password Manager policyEmployees using weak or reused passwords across SaaS tools is the #1 cause of credential-based breaches at SMBs.Provision a company password manager (1Password Teams, Bitwarden Business, or Google Password Manager via Workspace). Make it mandatory and fun — not optional.
Device management (MDM)Without MDM, you cannot enforce full-disk encryption, OS updates, or extension deployment.Check that every employee-issued device is enrolled in Jamf, Google Workspace MDM, or Intune. Verify enrollment in the MDM console.
Asset inventoryYou can't protect what you don't know exists. A basic asset inventory lists every device, its owner, OS version, and encryption status.Export your MDM device list. Supplement with a spreadsheet for non-managed devices (printers, network equipment).

Phase 1: Visibility (Months 1–3)

The first goal of any security program is visibility — understanding what's happening in your environment. Fantomo's primary value in this phase is discovery: you cannot govern what you cannot see.

  1. Deploy Fantomo's Google Workspace integration. Connect your service account and let it run for 2–4 weeks before taking action on the inventory. You want a baseline, not a knee-jerk reaction to the first discovery.
  2. Deploy the browser extension via MDM to all managed devices. Verify telemetry is flowing (check Browsing History for active users).
  3. Review the SaaS Inventory after 4 weeks. You will likely discover 30–100 applications your employees are using — many of which IT didn't know about. This is normal and not a crisis. Document everything.
  4. Classify applications into Approved / Under Review / Blocked based on your initial risk judgment. Don't block anything yet — just classify.
  5. Enable system DLP rules in Testing mode. Review the DLP log after 2 weeks to understand which patterns are generating matches and how frequently.

Phase 2: Basic Controls (Months 3–6)

With visibility established, begin enforcing boundaries on your highest-risk exposure areas.

  1. Block the 5 highest-risk applications identified in Phase 1. Focus on: unapproved AI tools receiving sensitive business data, personal cloud storage (Dropbox, WeTransfer) used for business files, and personal email services used for corporate communication.
  2. Enable DLP rules in Active mode for the highest-confidence patterns: SSN detection, credit card numbers, and AWS credential patterns. These have low false-positive rates and protect against the most common data types involved in breach notifications.
  3. Set up Slack integration and configure at least one alert routing channel (e.g. #security-alerts). This ensures the security team is notified in real-time without needing to check the portal constantly.
  4. Configure offboarding playbook. The next time any employee departs, run through Fantomo's offboarding workflow. This builds the habit and process before a high-pressure situation (angry termination, sudden resignation) demands it.
  5. Set up your first webhook. Even if it just posts to Slack or a simple logging endpoint, getting the integration plumbing working in Phase 2 means you can scale it later.

Phase 3: Compliance Alignment (Months 6–12)

Once controls are running, align them to the compliance framework most relevant to your industry. The two most common for SMBs are SOC 2 Type II (software/SaaS companies) and HIPAA (healthcare-adjacent businesses). This section maps to SOC 2.

Fantomo → SOC 2 Control Mapping

SOC 2 TSC ControlDescriptionFantomo CoverageGap / Supplement Needed
CC6.1Logical access controls protect information assets.Browser Alert Rules prevent unauthorized data uploads. OAuth audit limits third-party access.Supplement with: IAM (AWS/GCP), centralized identity provider logins (Google Workspace/Microsoft 365).
CC6.3User access is reviewed periodically and terminated promptly on departure.Offboarding workflow + failure alerts ensure access revocation is tracked.Supplement with: Quarterly access reviews in your identity provider; GitHub/Salesforce admin access reviews.
CC6.6Transmission of confidential information is protected.DLP rules prevent sensitive data upload to unapproved destinations. Alerts create audit evidence.Supplement with: Email DLP (Google Workspace DLP), endpoint encryption enforcement.
CC6.7Transmission and disclosure of confidential data is restricted.Browser Alert Rules with justification prompts create a record of every access boundary crossing.Supplement with: Data classification policy (which data is confidential vs. internal vs. public).
CC7.2System monitoring detects and responds to threats.Security Alerts feed + Admin Audit Log provide event monitoring and admin action immutability.Supplement with: SIEM integration (Splunk/Sentinel) for correlation, anomaly detection.
CC9.2Vendor risk is assessed before relationships are established.SaaS Inventory security posture ratings + approval workflow create a documented vendor review process.Supplement with: Formal vendor security questionnaire process (standardized CAIQ/SIG questionnaire).
PI1.2Personal information is collected consistent with the privacy notice.Fantomo's privacy-first design (domain-only telemetry, no content) supports minimal data collection claims.Supplement with: Privacy notice, data processing agreements (DPAs) with all SaaS vendors handling EU data.

Phase 4: Maturity & Integration (Months 12–24)

A mature security program integrates multiple specialized tools into a cohesive defense-in-depth architecture. Fantomo occupies the browser-layer and SaaS governance layer. Build out adjacent layers:

Identity & Access (IAM)

Google Workspace (or Microsoft 365) centralized directory logins. Enforce centralized logins for all approved SaaS applications so employees use their corporate directory credentials — never personal passwords or standalone logins — to access business tools. Fantomo's OAuth audit complements this by scanning and listing active OAuth grants.

Endpoint Detection & Response (EDR)

CrowdStrike Falcon Go, SentinelOne, or Microsoft Defender for Business. Detects malware, ransomware, and suspicious process behavior at the OS level. Fantomo's browser-layer DLP and EDR's host-layer coverage are complementary — each sees what the other can't.

Security Information & Event Management (SIEM)

Splunk, Microsoft Sentinel, or Elastic Security. Aggregates logs from Fantomo (via webhooks), your identity provider, cloud infrastructure, EDR, and network devices. Provides correlation, anomaly detection, and long-term forensic capability.

IT Service Management (ITSM)

Jira Service Management, ServiceNow, or Freshservice. Receives security incident tickets from Fantomo webhooks. Provides change management workflows, SLA tracking, and audit trails for remediation actions taken in response to security alerts.

Vulnerability Management

Tenable, Qualys, or GitHub Advanced Security (for code). Scans your infrastructure and application code for known vulnerabilities. Fantomo's SaaS inventory tells you which external services you're trusting — vulnerability data on those vendors completes the picture.

Security Awareness Training

KnowBe4, Proofpoint Security Awareness, or Curricula. Trains employees to recognize phishing, handle sensitive data, and understand security policies. Link to your security training portal from Fantomo browser alert modals — a "Learn More" button in a DLP warning can open directly to the relevant training module.

The Incident Response Minimum

Every organization needs a documented incident response plan before they have an incident — not during one. At minimum, document:

  1. Who to call. A contact list with: CISO/IT lead, legal counsel, cyber insurance carrier (get cyber insurance if you don't have it), and a forensics firm on retainer or a pre-approved incident response vendor.
  2. What counts as an incident. Define thresholds: a DLP bypass is a policy event; a DLP bypass combined with a large file transfer to an untrusted domain is a potential incident; confirmed exfiltration of PII to an outside party is a reportable breach under most privacy regulations.
  3. Evidence preservation. When a potential breach is detected, preserve Fantomo logs before anyone dismisses or deletes them. Screenshot the Security Alerts and DLP log. Export the Admin Audit Log for the relevant time period.
  4. Notification obligations. If your organization handles personal data, you likely have regulatory notification obligations (GDPR: 72 hours; CCPA: "expedient notice"; HIPAA: 60 days). Know your obligations before you need them.
  5. Post-incident review. After every incident (even minor ones), conduct a structured retrospective: what happened, what controls failed, what would we do differently. Update your Fantomo rules and playbooks based on lessons learned.

Security Metrics: What to Report to Leadership

Monthly security metrics establish a baseline and demonstrate program effectiveness to executives and boards. Pull these from Fantomo and present them on a one-page executive summary:

MetricSource in FantomoTarget (Mature Program)
Shadow IT detection count (30-day)Shadow IT LogDeclining trend quarter-over-quarter as inventory matures.
% of SaaS inventory with security posture ratedSaaS Inventory>90% reviewed within 90 days of detection.
DLP alert volume (30-day)Security AlertsStable or declining; investigate any sudden spikes.
Mean time to dismiss alerts (MTTD)Security Alerts timestamps<24 hours for all alerts.
Offboarding completion rateOffboardings100% — every departure fully processed before access expiry.
Unclassified OAuth client IDsThird-Party App Access<5 unclassified at any time (new ones processed within 7 days).
Extension enrollment rateDashboard → Active Users / Total headcount>95% of workforce enrolled.
✓ You're Building Something Real

If you've worked through this guide and configured each section of the Fantomo admin portal, you have implemented a genuinely meaningful security program. You can detect shadow IT, enforce data protection boundaries, audit SaaS access, automate employee offboarding, and respond to incidents with evidence. That puts you ahead of the majority of SMBs — most of whom have no security monitoring whatsoever until after their first breach. Keep iterating. Security is a journey, not a destination.