Loading...
Help Center / Getting Started / Personal Agent Overview

Personal Agent Overview

Personal Agent Overview

An AI agent that searches your own bookmarks, drafts, tasks, and inbox β€” hard-scoped to your account so the agent literally cannot see another user’s personal data.


What is the Personal Agent?

Personal Agent is a platform-tier AI agent that lives inside Ask AI. It answers questions about the asking user’s personal data β€” bookmarks, drafts, assigned tasks, inbox β€” using the same natural language interface as every other agent. Reads are on by default; writes (bookmarking, editing notes, marking notifications read) are an admin-controlled toggle so cautious organizations can roll the agent out gradually.

Core Value Proposition:

  • πŸ”’ Privacy by Construction β€” Every tool query filters by the asking user’s user_id. The agent has no parameter for β€œanother user” β€” it cannot leak across accounts.
  • ⚑ One Agent, Four Personal Surfaces β€” Bookmarks, drafts, my-tasks, inbox all answered through one conversation, no app-switching
  • 🀝 Cross-App by Design β€” Searches across 10 bookmarkable record types (workspace messages, comments, tasks, wikis, policies, SOPs, library items, site pages, recognitions, jobs)
  • πŸŽ›οΈ Admin Governance β€” Per-business writes toggle, per-user daily action cap, full audit trail through the existing AutonomousAction framework

At a Glance

πŸ”— Personal Surfaces ⏱️ Setup Time πŸ”’ Privacy Model πŸ“± Mobile Ready
4 (bookmarks, drafts, tasks, inbox) 0 minutes (auto-enabled) Per-user, per-business βœ… Via Ask AI

Perfect For:

  • πŸ‘€ Any employee β€” quickly recall something they saved, see what’s on their plate, summarize their inbox without clicking around
  • πŸ§‘β€πŸ’Ό Power users β€” bookmark, edit notes, and mark inbox read via natural language (when admin enables writes)
  • πŸ›‘οΈ Privacy-cautious admins β€” ship AI value without exposing cross-user data; per-user cap keeps any single account from running away

How It Works

Personal Agent Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       PERSONAL AGENT QUERY FLOW                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚ USER ASKS    β”‚       β”‚ ASK AI ROUTER    β”‚       β”‚ PATTERN MATCH β”‚    β”‚
β”‚  β”‚ "my bookmark β”‚ ────▢ β”‚ Stage 0 patterns β”‚ ────▢ β”‚  :app_personalβ”‚    β”‚
β”‚  β”‚  about X"    β”‚       β”‚ + KNN + LLM      β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚            β”‚
β”‚                                                            β–Ό            β”‚
β”‚                                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                                                   β”‚ PERSONAL AGENT   β”‚  β”‚
β”‚                                                   β”‚ scoped to user   β”‚  β”‚
β”‚                                                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                            β”‚            β”‚
β”‚                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                              β–Ό                             β–Ό         β–Ό  β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                    β”‚ READ TOOL        β”‚  β”‚ WRITE TOOL   β”‚ β”‚ BLOCKED β”‚  β”‚
β”‚                    β”‚ (always avail.)  β”‚  β”‚ (gated)      β”‚ β”‚ if cap  β”‚  β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                             β”‚                   β”‚                       β”‚
β”‚                             β–Ό                   β–Ό                       β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚                    β”‚ Result returned  β”‚  β”‚ AutonomousActiβ”‚              β”‚
β”‚                    β”‚ to user          β”‚  β”‚ on logged    β”‚              β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Personal Data Surfaces

                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚ PERSONAL AGENT  β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚ scoped to current_user
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β–Ό              β–Ό              β–Ό              β–Ό              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Bookmarks β”‚  β”‚ Drafts  β”‚  β”‚ My Tasks β”‚  β”‚  Inbox   β”‚  β”‚ AutonomousActβ”‚
β”‚ (10 types)β”‚  β”‚         β”‚  β”‚          β”‚  β”‚ (Notif.) β”‚  β”‚ (audit trail)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Features

πŸ” Search My Bookmarks

The most common entry point. Finds saved items by title and note text, with optional record-type filter.

Capability Description
Title search Substring match against the polymorphic record’s display label
Note search Same query also searches the user’s inline note on each bookmark
Type filter Restrict to one of 10 bookmarkable types (WorkspaceMessage, Wiki, HrPolicy, Sop, etc.)
Smart ordering Filter applies BEFORE limit, so matches outside the recent-N window aren’t lost
Truncation hint Returns a truncated: flag when the search-load cap (2000 most-recent) fires, so the agent can suggest narrowing by type

Use Case: User asks β€œWhat did I bookmark about onboarding?” β†’ agent searches title + notes for β€œonboarding” across all their saved items and returns the matches as clickable links.

πŸ’‘ Pro Tip: Add a note to your bookmarks (<details> β†’ β€œAdd note” on /bookmarks) and the agent’s search will match that note text too β€” useful for tagging your saves with context the original record doesn’t have.


πŸ“ List My Drafts

Surfaces unfinished workspace messages and comments saved via the platform’s auto-draft mechanism.

Capability Description
Recent drafts Most-recently-edited drafts across the platform
Kind filter Optional β€” filter by draft kind (workspace_message, workspace_message_comment, etc.)
Body preview First 160 chars of the draft, plus context type/id and last-edit timestamp

Use Case: β€œWhat was I working on?” β†’ agent lists their unfinished drafts so they can pick up where they left off.


βœ… List My Tasks

Tasks assigned to the user, with status and due-window filters.

Capability Description
Status filter open (default), overdue, completed, or all
Due-window filter Only tasks with due_at within N days
Workspace context Each task includes its workspace_id if it belongs to one
Smart sort Ordered by due_at ascending (NULLs last), then created_at descending

Use Case: β€œAre any of my tasks overdue?” β†’ agent returns the past-due list ordered by how late they are.


πŸ“¬ Summarize My Inbox

A quick read on what needs attention without opening the inbox.

Capability Description
Unread count Total unread notifications in the visible inbox
Action-required count Notifications with action_required: true and not yet completed
Recent items Top N (default 10, max 50) most-recent unread, with title, kind, and timestamp
Visibility filter Respects archived/snoozed/expired states (uses the inbox_visible scope)

Use Case: β€œWhat’s in my inbox?” β†’ agent returns counts + recent unread so the user can prioritize before opening it.


✏️ Write Actions (Admin-Enabled)

Four write tools become available when an admin flips the writes_enabled toggle. Each routes through the platform’s risky-tool confirmation framework β€” users see a β€œconfirm” prompt before the action executes.

Tool What it does
bookmark_record Save a record on the user’s behalf, optionally with a note. Updates the note if the record is already bookmarked.
remove_bookmark Delete one of the user’s bookmarks by id
update_bookmark_note Change the note on an existing bookmark (or clear it with empty string)
mark_inbox_read Mark specific notifications read, or all=true to clear the entire unread queue

Use Case: A user reading a long policy says β€œBookmark this for me with a note: relevant for Q3 audit” β†’ the agent saves the bookmark with the note attached after the user confirms.

πŸ’‘ Pro Tip: When you ask the agent to bookmark something already bookmarked, the agent updates the note in place rather than creating a duplicate. The bookmark uniqueness constraint (per user + record) enforces this at the database layer.


πŸ›‘οΈ Per-User Daily Write Cap

Admins set a maximum number of write actions a single user’s Personal Agent can perform per 24-hour window. Reads don’t count against the cap.

Setting Description
Default 50 writes per user per day
Range 0 (unlimited) to 1000
Scope Per user, not business-wide β€” one user’s heavy day doesn’t block their colleagues
Reset At midnight in the business’s timezone
Storage Counted via AutonomousAction rows with domain='personal' and user_id = the asking user

Use Case: Admin sets cap to 5 during initial rollout. If a user asks the agent to mark every notification read after a backlog, the agent stops at 5 and tells the user the cap was reached.


πŸ” Audit Trail

Every successful write logs an AutonomousAction with domain='personal', capability=<tool_name>, user_id, business_id, and executed_at. Note text is stripped from logged args so personal note bodies don’t end up in audit rows.

Field What’s captured
domain Always 'personal'
capability Tool name (bookmark_record, update_bookmark_note, mark_inbox_read, remove_bookmark)
user_id Who triggered the action
action_data Tool args minus note text
result_data Tool result (id, action verb)
idempotency_key Includes a per-write nonce so repeated same-capability writes don’t collide

Use Case: Admin reviews /admin/automation-hub/activity filtered by domain='personal' to see every write the agent has made business-wide.


Routing β€” How the Agent Knows to Fire

The agent uses three routing layers (in priority order) so common β€œmy X” queries don’t drift to other agents:

  1. PATTERN_KILLS (Stage 0) β€” Hard-coded regex like /\bmy\s+bookmarks?\b/i route directly to :app_personal before any classifier runs. Ordered ABOVE :app_employee_data patterns so β€œmy bookmarks” doesn’t leak into employee-profile queries.
  2. HIGH_PRECISION_PATTERNS (Stage 1) β€” Broader patterns for β€œwhat did I bookmark”, β€œwhat’s on my plate today”, β€œare any of my tasks overdue”.
  3. KNN classifier + LLM fallback (Stage 2/3) β€” 36 example questions in the :personal training corpus power semantic similarity matching for queries that don’t match a pattern.

User Roles & Permissions

Role Capabilities
Any signed-in user Read tools when business has the agent enabled. Writes also available when admin has flipped the writes toggle and the user is under the daily cap.
HR / Admin Same as above, plus the agent’s settings page in the App Gallery: enable/disable, allow writes, set the per-user daily cap.
Account-level opt-out Any user can disable AI for their account in Account Settings β†’ AI Preferences. This disables Personal Agent (and every other agent) for that user only.

The agent never accepts a target user_id parameter β€” even an admin’s Personal Agent only sees their own data, not their reports’.


How We Compare

How Personal Agent compares to β€œpersonal AI” features in major collaboration platforms:

Feature MangoApps Workforce Personal Agent Microsoft Copilot (M365) Google Gemini for Workspace Slack AI
Search saved items / bookmarks βœ… ⚑ ⚑ βœ…
Search across 10+ record types βœ… βœ… βœ… ⚑
**Hard-scoped to current user (no cross-user) ** βœ… βœ… βœ… βœ…
List my unfinished drafts βœ… ⚑ ❌ ❌
Summarize my inbox / unread βœ… βœ… βœ… βœ…
List my tasks / to-dos βœ… βœ… ⚑ ⚑
Admin writes-on/off toggle βœ… ⚑ ⚑ ⚑
Per-user daily action cap βœ… ❌ ❌ ❌
Note text stripped from audit logs βœ… ⚑ ⚑ ⚑
Legend: βœ… Included ❌ Not Available ⚑ Limited / partial / paid add-on

Why MangoApps Workforce?

  • πŸ”— Single platform context β€” One agent searches across messages, todos, wikis, policies, SOPs, libraries, sites, recognitions, and jobs without hopping between separate β€œsaved” inboxes
  • πŸ›‘οΈ Privacy primitives baked in β€” Hard scoping to user_id, per-user cap, audit trail, note text scrubbed before logging β€” no add-on required
  • πŸ’° Included with the platform β€” No per-seat AI add-on; if your business has Ask AI enabled, Personal Agent is one toggle away

Getting Started

For Employees

  1. Open Ask AI from the top nav
  2. Type a β€œmy X” query: β€œShow me my bookmarks”, β€œWhat’s in my inbox?”, β€œAre any of my tasks overdue?”
  3. Or @personal to mention the agent explicitly
  4. Click any returned record’s link to jump to it

For Administrators

  1. Open /admin/app_marketplace/personal-agent (App Gallery β†’ search β€œPersonal Agent”)
  2. Toggle Enable Personal Agent (defaults to on for new businesses)
  3. Optionally toggle Allow write actions (defaults to off β€” opt-in)
  4. Set the Per-user daily write cap (default 50; set to 0 for unlimited)
  5. Save. Activity shows up in /admin/automation-hub/activity filtered by domain=personal

Best Practices

  • βœ… Add notes to important bookmarks β€” they become searchable by the agent
  • βœ… Roll out writes gradually β€” start with writes_enabled: false, see read traffic in audit logs, then enable writes when you’re comfortable
  • βœ… Set a conservative cap during rollout β€” e.g., 5 writes/user/day for the first two weeks, then raise it
  • βœ… Use specific phrasing β€” β€œmy bookmarks about onboarding” routes faster than β€œthings I saved related to new hires” (though both work via the LLM fallback)
  • βœ… Don’t enable for kiosk-mode users β€” the per-user cap prevents abuse but the agent still consumes API tokens; account-level AI opt-out keeps shared kiosks quiet

Frequently Asked Questions

Q: Can the Personal Agent see my manager’s bookmarks or anyone else’s data?
A: No. Every tool query is hard-coded to filter by the asking user’s user_id, and the tools have no parameter for a target user id. Even an admin’s Personal Agent only returns their own data.

Q: What happens when I ask the agent to do something while writes are disabled?
A: The agent returns a friendly message: β€œWrite actions are disabled for this business by an administrator.” Reads (search, list, summarize) continue to work without the toggle.

Q: How does the per-user daily cap work?
A: Each successful write logs an AutonomousAction with domain='personal' and the user’s id. Before each write, the agent counts today’s actions for the user; if the count is at or above the cap, the write is rejected with β€œYou’ve reached today’s Personal Agent write limit (X). The cap resets at midnight.”

Q: Where do bookmarks come from?
A: Click the πŸ”– icon next to any supported record’s title (messages, comments, tasks, wikis, policies, SOPs, library items, site pages, recognitions, jobs). The agent then searches across all of them.

Q: How do I disable the agent for my own account?
A: Account Settings β†’ AI Preferences β†’ master AI toggle off. This disables Personal Agent (and every other agent) for your account only β€” the business-level toggle is unaffected.

Q: Where can I see what the agent has done?
A: Admins see all Personal Agent writes in /admin/automation-hub/activity filtered by domain='personal'. Each row includes the user, the tool, the args (minus note text), and the result.



Personal AI, scoped to your account. Search. Bookmark. Catch up. Done.

Ask AI Product Advisor

Hi! I'm the MangoApps Product Advisor. I can help you with:

  • Understanding our 40+ workplace apps
  • Finding the right solution for your needs
  • Answering questions about pricing and features
  • Pointing you to free tools you can try right now

What would you like to know?