Portals
Umbrella surface for every public-facing portal — catalog, identity & recovery, audit log, and analytics across all app-owned portals.
Overview
Every OneMango app with a public-facing surface — Job Board's Candidate Portal, Field Service's Customer Portal, eSignature's kiosk, Drive's share links — manages that surface on its own. None of them can show you all the others. Portals is the place that does.
The Catalog lists every portal's status, owning app, and a live preview. An admin turns any portal on or off right there — availability follows the owning app's license, and where a portal is also switched in its own app (the careers site, Field Service's Customer Portal, Shared moments) the two are the same switch. Identity & Recovery sets the one rate-limit and retention policy shared by every portal on the OTP / magic-link layer, backed by a searchable audit log that stores identifiers only as one-way hashes. Branding and a verified custom domain apply once, to every branded portal.
Traffic Analytics rolls up visits across the portals wired into it. An admin-gated Ask AI agent answers status and audit questions read-only, so admins stop piecing the answer together app by app.
Manage every public-facing portal across your apps from one place — a cross-app catalog with live preview and on/off control, a shared OTP and magic-link recovery layer with a searchable audit log, and cross-portal traffic analytics.
Highlights
Capabilities
Portal Catalog & Control
-
Cross-app catalog of every public portal (34 types across 13 categories)
-
Enable / disable any portal from one place (PublicPortalConfiguration registry)
-
Availability gated by each portal's owning-app license
-
Status, owning app, category, and public URL per row
-
One-click live preview of each portal
-
Filter the catalog by category, status, or keyword
Traffic Analytics
-
Cross-portal visitor dashboard: page views, unique visitors, sessions
-
Bounce rate and pages per session (from identifiable visitor sessions)
-
Device breakdown (desktop / mobile / tablet)
-
Top pages across all portals
-
Per-portal drill-down analytics
-
Realtime active-visitor stats
-
CSV export of the full analytics dashboard
Identity & Recovery
-
Unified OTP + magic-link recovery layer shared by those portals
-
Sliding-window rate limiting per identifier per portal
-
Configurable rate-limit window and max attempts
-
30-day effectiveness signals (sent / consumed / failed / rate-limited)
Recovery Audit & Security
-
Searchable audit log over every recovery event
-
Filter by portal, event, identifier hash, IP, and date range
-
SHA-256 identifier hashing — no plaintext email/phone stored
-
IP and user-agent capture per event
-
CSV export of filtered results
-
Automatic per-business retention pruning (PruneAuditJob)
-
Repeat-failure IP feed and identifiers with the most flagged events
-
Cross-portal abuse detection (one identifier hitting many portals)
Recovery Analytics
-
Nightly cross-portal recovery rollup (DailyRollupJob)
-
Trend charts: requested / sent / consumed / failed / rate-limited
-
Per-portal totals and unique-identifier counts per window
Branding & Custom Domains
-
Business-wide portal branding: logo, favicon, background image
-
Primary / secondary colors, header colors, header + footer text
-
Google-font selection (primary + secondary)
-
Custom header/footer HTML (sanitized); a stylesheet saved earlier can be removed, new CSS is not edited here
-
Live image preview while editing
-
Branding version history with one-click revert-to-defaults
-
Custom domain mappings: the two DNS records to add, with copy buttons and live state
-
HTTPS certificate issued, renewed and served automatically; the domain turns on once it is issued
-
Domain activate / deactivate, and a daily check that its DNS still points at us
AI Agent (Ask AI)
-
Admin agent: recovery snapshot, portal status, visitor traffic, anomalies, audit search
-
Admin-gated — members never see the agent's tools
Limits & Specs
-
Portals in catalog: 34 across 13 categories
-
Rate-limit window: 60 min default (5–1,440, configurable)
-
Max recovery attempts: 5 per window per identifier (1–20, configurable). Each attempt records two audit rows — the request and its outcome — and both count, so the enforced budget is ceil(max ÷ 2): 3 attempts at the default of 5.
-
Audit retention: 180 days default (7–3,650, configurable)
-
Audit CSV export cap: 10,000 rows
-
Access: Admins, Super Admins & Portals app admins
Use cases
Resources
FAQ
Mostly. Each Catalog row opens or closes its portal, and only portals whose owning app (Job Board, Field Service, Drive, eSignature, etc.) is licensed can be switched. Some portals are also switched in their own app — the careers site in Job Board, the Customer Portal in Field Service, Shared moments in Recognitions, Contests and Training — and that setting and the Catalog row are the same switch, so a change in either place shows in both. Some portals open with their app until you switch them off here, and others also need a setting in their own app, which the row names. Licensing always lives with the app.
Three business-wide settings for the shared OTP / magic-link recovery layer: (1) the rate-limit window and max attempts per identifier; (2) the recovery abuse alert threshold (flagged events per hour); and (3) how long recovery audit events are retained. Whether a given portal uses a magic-link or an OTP code is fixed by its owning app, not a Portals setting. They apply to every portal on that shared layer — Offboarding's former-employee portal, Field Service's customer portal and Job Board's candidate portal.
Every recovery event (requested, sent, failed, rate-limited, consumed, invalid-token) is logged with a timestamp, IP, user-agent, and a SHA-256 hash of the identifier — never plaintext email or phone. Retention is configurable (default 180 days) and enforced by an automatic pruning job, and you can export filtered results to CSV (up to 10,000 rows). For SOC 2 / HIPAA-style reviews this is generally sufficient; check specifics with your compliance team.
Yes. Set a business-wide logo, favicon, background image, colors, Google fonts, header/footer text and header/footer HTML — changes apply immediately to every branded portal, with version history and one-click revert. You can also use your own domain: add the hostname, then add the two DNS records it shows — one proves the domain is yours, the other points it at us. Its HTTPS certificate is issued and renewed for you, and the domain turns on by itself once the certificate is issued.
Traffic Analytics measures visitors — page views, unique visitors, sessions, bounce rate, devices, and top pages across your public portals, in realtime and per portal. Recovery Analytics measures the login-recovery flow — nightly rollups of requested / sent / consumed / failed / rate-limited counts. One is about who's visiting; the other is about how the OTP / magic-link layer is performing.
Yes. The Portals agent lives in the Ask AI sidebar and answers questions like "How is portal recovery doing this week?", "Which portals are enabled?", or "Any rate-limit hits in the last 24 hours?" It's read-only and admin-gated — members never see its tools — and an admin can turn it off per business.
Probably not yet. The umbrella earns its keep once you're running several public-facing portals and want one place for cross-portal traffic, recovery telemetry, audit, branding, and domains. With a single portal, the owning app's built-in settings are usually enough.
Portals needs a license — ask your MangoApps account team. Once it is licensed, an admin turns it on for your business under Admin → Apps → All Apps; it is off until then.