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:
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.
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 Type | Collected? | Details |
|---|---|---|
| Domain names visited | Yes | The hostname only (e.g. notion.so). Not the full URL path, query string, or page content. |
| Email subject lines | Yes (headers only) | Gmail metadata headers for SaaS signup/login detection. Not email body content. |
| OAuth grant scopes | Yes | The list of permissions a third-party app has been granted by an employee's Google account. |
| DLP match snippets | Checksum only | When a DLP rule fires, a one-way hash of the matched text is logged — never the raw sensitive data itself. |
| Full page content | Never | Fantomo does not read, store, or transmit page HTML, page text, or user-typed content (except pattern matching which stays local). |
| Passwords or credentials | Never | Password fields are explicitly excluded from all DLP scanning. |
| Network traffic content | Never | Fantomo is not a proxy. It does not intercept, decrypt, or inspect TLS traffic. |
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
| Role | What They Can Do | Typical Assignment |
|---|---|---|
| Owner | Full access — billing, delete org, rotate API keys, all settings. | CTO, IT Director, primary account holder. |
| Admin | Read-write settings — rules, integrations, playbooks, user management (cannot access billing or rotate keys). | Security analyst, IT administrator. |
| Read Only | View all dashboards, logs, and telemetry. Cannot change any configuration. | Auditor, compliance officer, CISO observer. |
| User | Standard employee — no admin portal access. | General workforce enrolled via extension. |
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:
- 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.
- Field-by-Field Reference — what every input does, its data type, valid values, and sensible defaults.
- InfoSec 101 Context — why this feature exists, what threats it addresses, and how it fits into a broader security program.
- Best Practices — opinionated recommendations based on common deployment patterns.
- Integration Expansions — how to connect this feature to external tools (SIEM, ITSM, MDM, etc.) to strengthen your overall security posture.
- 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.
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.
Understanding Each Metric
| KPI | Definition | Health Signal |
|---|---|---|
| Page Views Today | Total 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 Today | Count 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 Detections | Count 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. |
| Alerts | Total 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. |
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
- 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.
- Review Recent Shadow IT — classify any new SaaS platforms in your inventory before the end of the day.
- Spot-check Active Users against expected headcount. If it's significantly lower than a normal workday, check extension deployment status in your MDM console.
- Review any Slack notifications from triggered browser alert rules — these appear in the channels you have configured under Slack Integration → Rule Alert Routing.
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.
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 DoneTask 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.
- 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.
- 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.
- Open the Google Workspace Admin Console. Navigate to Security → API Controls → Manage Domain-Wide Delegation.
- 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 - 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.
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.
- Navigate to your Google Workspace Admin Console.
- Go to Devices → Chrome → Apps & extensions → Users & browsers.
- Select your target Organizational Unit (OU) in the left sidebar.
- Click the yellow + button at the bottom-right and select Add from Chrome Web Store.
- Search for "Fantomo" or paste the extension ID, then click Select.
- In the right-hand panel, set Installation policy to Force install.
- Under Policy for extensions, paste the JSON configuration from your Settings → General & MDM page. Chrome resolves
${user.email}and${user.id}automatically. - 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.
- 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).
- In the Fantomo Admin Portal, open Browsing History. The test machine's domain visits should appear within 2–5 minutes.
- 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. - 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
apiBaseUrlis correct and not blocked by a firewall.
Troubleshooting Extension Deployment
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Extension not appearing in Chrome | MDM profile not applied to device | Force a device check-in in your MDM console. Verify device is in the correct OU/blueprint/group. |
| Extension icon grayed out | API URL unreachable or incorrect API key | Check that apiBaseUrl is correct and port is open. Verify API key matches what's shown in Settings → General & MDM. |
| No users appearing in portal | User email token not resolving | Verify 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 user | Installed as optional, not forced | Return to your MDM console and change Installation Policy to Force install. For .mobileconfig deployments, ensure PayloadRemovalDisallowed is true. |
| Wrong user email mapping | Shared or unassigned devices | Ensure 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.
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.
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.
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 | — |
Column Reference
| Column | Description |
|---|---|
| Checkbox | Select 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. |
| User | The email address of the employee whose browser extension generated the event. Click to open the user detail page. |
| Rule | The name of the Browser Alert Rule that fired. Click to open the rule editor for that rule. |
| Domain | The domain where the DLP rule was triggered (e.g. the site the employee was uploading to or pasting data into). |
| Action | The enforcement type of the rule that fired — modal_dismissable, modal_non_dismissable, or block. |
| Response | Unreviewed — alert has not been acted on. Shown in red. Reviewed — admin has dismissed this alert. |
| Timestamp | When 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.
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.
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
| Problem | Resolution |
|---|---|
| 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 notifications | Check that the rule has an active associated Slack Notification playbook. Verify the Fantomo Slack app is still installed in your workspace. |
| Alert justification is blank | The 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/day | Consider 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. |
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.
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")
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.
| # | Domain | Category | Detections | Users | Last 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 |
Column Reference
| Column | Description |
|---|---|
| Domain | The hostname detected (e.g. notion.so). Click the row to drill down into individual event records. |
| Category | SaaS classification category assigned to this domain (e.g. Collaboration, AI Tools, Cloud Storage). Used for filtering. |
| Detections | Total signup/login events across all users for this domain in the selected date range. |
| Users | Count of unique employees who have generated at least one detection for this domain. |
| Last Seen | Timestamp 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
| Type | Source | What It Means |
|---|---|---|
| signup | Browser extension | Extension detected a new account registration form submission (password field + email field in a registration context). |
| login | Browser extension or mail scan | Employee authenticated to an existing account. Indicates active use of a potentially unapproved service. |
| login_challenge | Gmail mail scan | A two-factor authentication or device approval email was received, indicating a new-device login to an external service. |
| password_reset | Gmail mail scan | A password reset email was received for an external SaaS account, detected via subject-line pattern matching. |
Responding to Shadow IT Detections
- Note the domain from the detection event. Search the SaaS Inventory for that domain. If it already exists, verify its approval status.
- 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).
- If the domain should be Approved: set status to Approved. Future detections from this domain will be suppressed from the alert queue.
- 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.
- 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.
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.
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.
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.
| # | Domain | Category | Page Views | Sessions | Users | Last Seen |
|---|---|---|---|---|---|---|
| 1 | mail.google.com | 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.
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.
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:
What Is Measured
| KPI | Description | Why It Matters for Security |
|---|---|---|
| Avg DNS Lookup | Average 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 Handshake | Average 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 TTFB | Average 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 Samples | Total 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. |
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:
| Column | Description |
|---|---|
| Domain | The 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 Breakdown | A 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 Timing | Sum of DNS + TCP + TTFB in ms. Color-coded: green (< 200 ms), amber (200–400 ms), red (> 400 ms). |
| Samples | Number of individual measurements contributing to this row's averages. |
| Last Active | Time 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.
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.
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
| Action | Entity | User | Time |
|---|---|---|---|
| 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 Code | Description |
|---|---|
rule.created | A new Browser Alert Rule was created. |
rule.updated | An existing rule was modified (fields, state, targeting). |
rule.deleted | A rule was permanently deleted. |
user.invited | A new admin user was invited to the organization. |
user.deactivated | An admin user account was disabled. |
user.reactivated | A previously disabled admin account was re-enabled. |
user.deleted | An admin user was permanently removed. |
api_key.rotated | The organization API key was regenerated. All extensions must be updated with the new key. |
org.settings.updated | Organization name, auth method, or other core settings changed. |
webhook.created | A new outbound webhook was configured. |
webhook.updated | A webhook configuration was modified. |
webhook.deleted | A webhook was removed. |
workspace.connected | Google Workspace integration was established. |
playbook.created | A new automation playbook was created or installed from a template. |
alert.dismissed | One 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.
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.
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.
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.
| Employee | Domain | Detection Type | Sent Via | Sent At | Status |
|---|---|---|---|---|---|
| [email protected] | figma.com |
signup | Slack DM | Today 09:15 | Pending |
| [email protected] | monday.com |
login | 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 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
| Application | Status | Users | Owner | Posture | Last Seen | Monthly 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
| Status | Meaning | Effect on Detection | When to Use |
|---|---|---|---|
| Approved | Sanctioned 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. |
| Unapproved | Detected 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 Review | Actively 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. |
| Blocked | Prohibited 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.
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.
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
/Engineeringmatches 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 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.
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.
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.
| Application | User | Risk | First Granted | Last Used | Actions |
|---|---|---|---|---|---|
|
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).
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.
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.
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.
| Domain | M365 Check | GWS Check | Why It Matters |
|---|---|---|---|
| Identity | Unified Conditional Access Policies | Enforce 2-Step Verification (2SV) | Blocks credential stuffing and password-based attacks by requiring MFA. |
| 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:
- Drift Detected: The system identifies that the actual tenant setting no longer matches the expected security baseline.
- Audit Logged: A compliance warning is logged in the Fantomo Admin Audit Log.
- Notifications Fired: Real-time alerts are sent to connected Slack channels and an incident is raised.
- ITSM Integration: If enabled, a high-priority ticket is automatically created in connected PSA tools (like ConnectWise Manage or Autotask) for tracking and remediation.
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.
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
| Status | Meaning | Action Required |
|---|---|---|
| pending | The 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_progress | Revocation actions are currently running or some apps require manual verification. | Monitor status and manually verify any apps that cannot be programmatically revoked. |
| completed | All identified OAuth grants and tracked accounts have been successfully revoked. | No further action required. The record is archived as compliance evidence. |
| cancelled | The 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"
}
}
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).
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.
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.
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
ActiveAI Tool Detection Response
ActivePlaybook Editor
New Playbook
Steps
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.
- Trigger Configuration: Select
New App in Categoryand configure the Category ID toAI Tools. - Step 1: Set App Status: Action
set_app_statuswith valueunder_review. This keeps the application flagged in the inventory while we wait. - Step 2: Send Employee Check-in: Action
send_questionviaSlack DM.
Message TextHi {{user_name}}, we noticed you signed up for {{app_name}} ({{domain}}). Corporate policy requires employee justification. Why are you using this tool? - Step 3: Wait for Response: Action
wait_for_responsewithtimeout_daysset to3. 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.
- 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}}
BodyEmployee {{user_name}} ({{user_email}}) registered for {{app_name}} but failed to submit a business justification within the 3-day cooldown period. - Step 5: Set App Status (Fallback Block): Action
set_app_statuswith valueblocked. 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.
- Trigger Configuration: Select
Employee Response(employee_response) as the trigger. - Step 1: Slack Alert: Action
slack_adminto post in the#security-approvalschannel.
Slack Template📢 SaaS Justification Submitted by {{user_name}} ({{user_email}}) for *{{app_name}}*:
>_Reason: "{{employee_note}}"_
>_Classification choice: "{{response_value}}"_ - Step 2: Email IT Admin: Action
email_admin.
Subject[Justification Submitted] {{app_name}} - {{user_email}}
BodyHello 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.
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.
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.
Dropbox was listed in a data breach disclosure. 3 employees in your inventory use this service. Review their accounts and consider credential resets.
A high-severity vulnerability was publicly disclosed for this vendor. Monitor for patches and review the vendor's security advisory.
Signal Types
| Type | What It Means | Recommended Response |
|---|---|---|
| Data Breach | The 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. |
| Vulnerability | A 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. |
| Acquisition | The 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
| Severity | Indicator | Description |
|---|---|---|
| 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. |
| Low | ⚪ | Informational. 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.
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.
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.
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
| User | Matched Rules | Target Destination | Justification Report | Checksum Hash | Logged 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
| Column | Description |
|---|---|
| User | Email of the employee whose browser extension recorded the event. |
| Matched Rules | The name(s) of the DLP rules that matched. Multiple rules can fire simultaneously if the submitted content matches more than one pattern. |
| Target Destination | The domain of the website or endpoint the employee was submitting data to at the time of the match. |
| Justification Report | The verbatim text entered by the employee in the justification prompt. Empty for silent-log events or hard-block dismissals without justification. |
| Checksum Hash | SHA-256 cryptographic checksum of the matched data payload to verify file integrity and prevent data tampering in audit reports. |
| Logged At | Timestamp 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.
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.
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
| 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
| Column | Description |
|---|---|
| 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. |
| Checkbox | Select rules via checkboxes to run bulk state operations: Pause Selected (sets checked rules to Disabled) and Activate Selected (sets checked rules to Enforced). |
| Rule Name | Clickable — opens the Rule Editor for that rule. System rules open in read-only view. |
| Match Type | domain — 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"). |
| Action | The 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). |
| Frequency | How 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. |
| State | Rule execution mode: 🟢 Enforced (live and warning active), 🟡 Test Mode (logs events but displays no modals), ⚫ Disabled (inactive). |
| Priority | Numeric 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 Icon | Located in the top right, links directly to the global DLP Policy Settings page. |
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.
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
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 Field Reference
| Field | Description |
|---|---|
| Button ID | A 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 Class | Primary (Solid) — filled button using the primary brand color. Secondary (Outline) — outlined border button. Link (Text) — plain underlined text link style. |
| Action Type | Controls what happens when the employee clicks the button (see table below). |
Button Action Types
| Action Type | What Happens | Justification Captured? |
|---|---|---|
link — Link to URL | Opens 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 request | Shows 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.
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
| Type | Description | Requires |
|---|---|---|
all | Rule applies to every enrolled user in the organization. | Nothing — always available. |
user | Rule 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). |
ou | Rule applies to all users in a specific Google Workspace Organizational Unit (e.g. /Engineering/US). | Google Workspace Directory Sync must be active. |
group | Rule 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.
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):
| Field | Location | Description |
|---|---|---|
| Effective Start Date | Rule Configuration card | Optional datetime. Rule will not trigger before this date/time. Leave blank for no start restriction. |
| Effective End Date | Rule Configuration card | Optional datetime. Rule automatically becomes inactive after this date. Useful for temporary policies. |
| Modal Width | Rule Configuration card | Select override modal width: Global Default, Small, Medium, or Large. Only active for modals. |
| Auto-translate alert content | Message Content card | Toggle. When on, Fantomo auto-generates translations for all enabled languages. Review before activating on compliance-critical rules. |
| Policy Version | Message 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_requestbuttons, 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.
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
Using the Debugger Effectively
- Verify URL Matching: Paste a list of URLs and click Run URL Simulation. Confirm that the intended rules trigger for the correct URLs.
- 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.
- Validate Wildcard and Glob Matches: Test complex glob pattern rules or domain wildcard structures against specific subdomains to verify correct matching behavior.
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
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 Name | Category | Pattern Type | Status Mode | Actions |
|---|---|---|---|---|
| US Social Security Numbers (SSN) | PII | Regex | ||
| PCI Credit Card Numbers (Luhn) | Financials | Regex + 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
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.
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.
Fantomo now requires Google Sign-In for all organizations. Please enable it now to avoid service interruption. Existing local passwords will be disabled.
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
Languages Card
Languages
Enable languages for end-user facing messages. Translations are auto-generated and can be manually edited per rule.
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.
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.
{
"apiKey": "ftm_your_api_key_here",
"apiBaseUrl": "https://api.fantomo.io",
"userId": "${user.id}",
"userEmail": "${user.email}",
"syncIntervalMinutes": 5
}
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.
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.
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.
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
| User | Role | Devices | Alerts | Last Seen | Actions |
|---|---|---|---|---|---|
|
[email protected]
Active
|
Owner | 2 | 0 | 2 min ago | |
|
[email protected]
Active
|
Admin | 1 | 3 | 1 hr ago | |
|
[email protected]
Invited
|
Read Only | 0 | 0 | Never | |
|
[email protected]
Disabled
|
Admin | 1 | 7 | 2 weeks ago |
User Status Values
| Status | Description | Portal Access |
|---|---|---|
| Active | User has accepted their invitation and can log in. | Full access based on role. |
| Invited | Invitation email sent but not yet accepted. Displayed as a blue badge beneath the email. | None — pending acceptance. |
| Auto | User 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. |
| Disabled | Account 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)
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 ID | OS Version | Browser | Extension Version | Memory | Last 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:
| Application | Auth Type | Risk Level | Status | Last 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:
| Target Domain | DNS Lookup | TCP Connect | TTFB | ISP | Country |
|---|---|---|---|---|---|
| github.com | 12 ms | 24 ms | 72 ms | Comcast Cable | United States |
| slack.com | 18 ms | 30 ms | 90 ms | Comcast Cable | United States |
Add User
Add User
Role Capabilities Matrix
| Capability | Owner | Admin | Read 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.
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.
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
ConnectedConnecting 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 Scope | Why It's Needed |
|---|---|
chat:write | Post alert notifications to channels. |
im:write | Open direct message channels to send employee outreach check-ins. |
users:read & users:read.email | Look up employees by email address to send them DMs (matches Fantomo user records to Slack user IDs). |
channels:read & groups:read | List 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 Name | State | Slack 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
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
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.
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 & SyncedTest 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
| Category | Match Pattern | Scope | Actions |
|---|---|---|---|
| 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.comto 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 Prefix | Google Scopes Requested | Detections | Action |
|---|---|---|---|
| 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:
- Create Google Cloud Service Account — link to GCP Console, instructions for creating a service account and downloading the JSON key.
- Domain-Wide Delegation (DWD) — link to Google Admin Console, instructions for granting the service account the required OAuth scopes.
- Verify Gmail Safety Settings — guidance on ensuring Gmail API access is not blocked by Google Workspace safety settings.
- Enable Sync — enter your domain, paste the JSON key, optionally enable telemetry sharing, and click Test + Connect.
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 & SyncedTest 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:
- Create Azure AD App Registration — Guidance for registering a new multi-tenant or single-tenant application in the Microsoft Entra admin center.
- 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)
- Generate Client Secret Credentials — Guidance on creating a new client secret under Certificates & Secrets and copying the value before it is obscured.
- Submit & Handshake Test — Input your Tenant ID, Client ID, and Client Secret, run the connection test, and activate the synchronization pipeline.
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.
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
Color System
All color fields use a native color picker input. Values are saved as hex strings. The available color fields are:
Color System
Borders & Alerts Layout
Borders & Alerts Layout
Typography
Typography
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.
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 URL | Events | Status | Actions |
|---|---|---|---|
| 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
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, andoffboarding_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 });
});
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.
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.
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
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
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.
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.
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:
| Foundation | Why It Matters | How to Verify |
|---|---|---|
| Google Workspace (or Microsoft 365) as identity provider | A 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) enforced | MFA 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 policy | Employees 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 inventory | You 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.
- 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.
- Deploy the browser extension via MDM to all managed devices. Verify telemetry is flowing (check Browsing History for active users).
- 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.
- Classify applications into Approved / Under Review / Blocked based on your initial risk judgment. Don't block anything yet — just classify.
- 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.
- 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.
- 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.
- 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. - 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.
- 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 Control | Description | Fantomo Coverage | Gap / Supplement Needed |
|---|---|---|---|
| CC6.1 | Logical 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.3 | User 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.6 | Transmission 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.7 | Transmission 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.2 | System 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.2 | Vendor 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.2 | Personal 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:
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.
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.
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.
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.
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.
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:
- 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.
- 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.
- 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.
- 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.
- 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:
| Metric | Source in Fantomo | Target (Mature Program) |
|---|---|---|
| Shadow IT detection count (30-day) | Shadow IT Log | Declining trend quarter-over-quarter as inventory matures. |
| % of SaaS inventory with security posture rated | SaaS Inventory | >90% reviewed within 90 days of detection. |
| DLP alert volume (30-day) | Security Alerts | Stable or declining; investigate any sudden spikes. |
| Mean time to dismiss alerts (MTTD) | Security Alerts timestamps | <24 hours for all alerts. |
| Offboarding completion rate | Offboardings | 100% — every departure fully processed before access expiry. |
| Unclassified OAuth client IDs | Third-Party App Access | <5 unclassified at any time (new ones processed within 7 days). |
| Extension enrollment rate | Dashboard → Active Users / Total headcount | >95% of workforce enrolled. |
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.