Loading...
Help Center / Getting Started / Messages App Overview

Messages App Overview

Messages App Overview

Private one-to-one and small-group messages that land in the recipient’s Inbox — asynchronous like email, governed on their own track, independently of your channels.


What is the Messages App?

Messages is the platform’s asynchronous, inbox-resident person-to-person channel. You send a coworker, manager, or small group a private note; it lands in their Inbox and waits; they read and reply on their own time; it stays as a record. It is deliberately distinct from Chat, the synchronous real-time messenger — the two coexist the way email and instant messaging do.

Because Messages is a first-class app rather than a hidden toggle, admins govern it on its own track: whether private messaging is allowed at all, who can start a conversation, whether files can be attached, and how long history is retained — all independently of channels, broadcasts, and announcements.

Core Value Proposition:

  • ✉️ Asynchronous by design — Send-and-forget; the message waits in the Inbox until the recipient reads it, like email
  • 📥 One Inbox — Private messages live in the same unified Inbox as notifications and broadcasts, not a separate app
  • 🛡️ Governed on its own track — Turn private messaging on, off, or restrict who can start it — separately from your channels
  • 🗂️ Compliance-ready retention — Set a per-organization retention window for message history, independent of channel retention

Key Concepts (How It Works)

If you only read one section, read this — it explains the model behind the screens, and the distinctions people get wrong.

Messages (async) vs Chat (sync) — they are two different apps

This is the single most important thing to understand. MangoApps has two person-to-person channels, and they are intentionally kept separate:

  Messages (this app) Chat
Modality Asynchronous — inbox-resident, like email Synchronous — real-time messenger
Feel Send now, read/reply later; it’s a record Live back-and-forth
Presence / typing / “who’s online” ❌ No — by design ✅ Yes
Home The unified Inbox (Messages folder) The Chat messenger
Governed by The Messages app (messages) The Chat app

So “DM” belongs to Chat. The async surface is Messages. If you want to see whether someone is online and have a live conversation, that’s Chat. If you want to leave someone a private note they’ll pick up later, that’s Messages. Under the hood a message you have open updates without a manual refresh (delivery rides Action Cable), but Messages deliberately has no presence indicators, no typing indicators, and no live “seen-while-you-watch” receipts — those are Chat’s job.

Where you actually read and send messages: the Inbox, not the app page

Employees do not read or send messages at /apps/messages. That page is an admin-only management surface (usage analytics + governance settings). Everyone reads and sends in the unified Inbox’s “Messages” folder (/inbox?folder=messages), where each conversation opens in a side panel with a scrollable history and a compose box at the bottom.

Two things enforce this split:

  • The Messages app tile is hidden from non-admins (they don’t manage the app, so it isn’t shown to them).
  • If a non-admin navigates directly to /apps/messages, they are redirected to the Inbox Messages folder — their actual messages — rather than a dead-end.

So “open the Messages app” means two different things depending on who you are: for an employee it’s the Inbox folder; for an admin it’s the dashboard.

What makes someone an admin here (who sees the app page)

The Messages app page (dashboard + settings) is surfaced only to people who manage the app: a business admin (or above), or a user who has been made the per-app Messages administrator. Everyone else uses messaging entirely through the Inbox.

Note this is separate from who can use messaging. Any member with the app enabled can send and receive messages in the Inbox — messaging itself is not role-gated by default. Admin status only governs who can see the analytics and change the settings.

What determines who can start a message

Starting a new conversation is governed by the “Who can start a message” setting:

  • Anyone (default) — every member can open a new thread.
  • Admins & managers only — only managers (anyone with at least one direct report) and admins can open a new thread.

Crucially, this gate applies only to starting a new conversation. Replying to an existing thread is always allowed, regardless of the setting — so restricting who can initiate never traps someone mid-conversation.

The app’s on/off is the master switch; the four settings refine it

Don’t confuse the two levels of control:

  • App enabled/disabled is the master on/off. When Messages is disabled for a business, the Inbox Messages folder disappears and new messages/replies are blocked platform-wide.
  • The four governance settings only refine behavior when the app is on: Group messages (allow small-group threads, not just 1:1), Attachments (allow files and voice notes), Who can start a message, and Retention (days).

1:1 threads are unique; group threads cap at 10

  • A one-on-one thread is idempotent — opening a message with the same person reuses your existing thread instead of creating a duplicate. You’ll never have two parallel 1:1 threads with the same coworker.
  • A group thread holds up to 10 participants (including you). For anything bigger or longer-running, use a Workspace or a Chat channel.

Archive and read state are per-participant, not global

  • Archiving a conversation hides it from your list only — it does not archive it for the other people. A new message resurfaces the conversation for everyone who had archived it, matching standard messenger behavior. (There is no way for one person to hide a thread from everyone else.)
  • Read state is tracked per participant: opening a thread marks it read for you and updates your unread badge. Because Messages is async, a read receipt renders when you next open the thread — it is not broadcast live while you watch.

Retention is governed separately from channels

The Retention (days) setting auto-removes messages older than N days (0 = keep forever). This runs daily and is governed independently of channel retention — you can keep message history for a different length of time than your channels, which is exactly the control regulated and frontline organizations need. In v1 the purge is a reversible soft-delete: purged messages drop out of every view and unread count while thread structure stays intact.


At a Glance

📊 Active Users 🎛️ Governance Controls 🔗 Surfaces 📱 Mobile Ready
[X]+ organizations 4 admin settings Inbox · Composer · Directory · API ✅ Yes

Perfect For:

  • 🏢 Any employee — quietly message a coworker, manager, or small group from anywhere in the platform, and pick it up in one Inbox
  • 🛡️ Tenant & app admins — decide whether private messaging is allowed at all, and if so, who can start a conversation and how long history is kept
  • 📋 Compliance / HR (regulated & frontline) — disable ungoverned private back-channels, or retain message history on its own track for recordkeeping and investigations

How It Works

Message Flow

┌───────────────────────────────────────────────────────────────────────────────┐
│                              MESSAGE FLOW (ASYNC)                              │
├───────────────────────────────────────────────────────────────────────────────┤
│                                                                               │
│   ┌──────────────┐      ┌──────────────┐      ┌──────────────┐                │
│   │  PICK 1+     │ ──▶  │   THREAD     │ ──▶  │   MESSAGE    │                │
│   │  RECIPIENTS  │      │  CREATED     │      │   POSTED     │                │
│   │ (typeahead)  │      │ (1:1 reused  │      │ (body + @    │                │
│   │              │      │  if it exists│      │  mentions +  │                │
│   │              │      │  · group ≤10)│      │  attachments)│                │
│   └──────────────┘      └──────────────┘      └──────┬───────┘                │
│                                                      │                        │
│              ┌───────────────────────────────────────┼───────────────┐        │
│              ▼                       ▼                ▼               ▼        │
│      ┌──────────────┐       ┌──────────────┐  ┌──────────────┐ ┌───────────┐  │
│      │  LANDS IN    │       │   @MENTION   │  │  UNREAD      │ │ LIVE PUSH │  │
│      │  RECIPIENT'S │       │ NOTIFICATION │  │  BADGE ON    │ │ TO OPEN   │  │
│      │  INBOX       │       │ (platform_dm │  │  THEIR INBOX │ │ THREADS   │  │
│      │  (Messages)  │       │  _mention)   │  │              │ │(ActionCable)│ │
│      └──────────────┘       └──────────────┘  └──────────────┘ └───────────┘  │
│                                                                               │
└───────────────────────────────────────────────────────────────────────────────┘

Where Conversations Live

                          ┌─────────────────────┐
                          │    UNIFIED INBOX    │
                          │      /inbox         │
                          └──────────┬──────────┘
                                     │
            ┌────────────────────────┼────────────────────────┐
            ▼                        ▼                        ▼
   ┌────────────────┐       ┌────────────────┐       ┌────────────────┐
   │  Notifications │       │    MESSAGES    │       │   Broadcasts   │
   │   & Actions    │       │  (this app)    │       │   & Digests    │
   └────────────────┘       └───────┬────────┘       └────────────────┘
                                    │
                                    ▼
                       ┌────────────────────────┐
                       │  Side Panel (offcanvas)│
                       │  • Thread header        │
                       │  • Scrollable history   │
                       │  • Compose at the bottom│
                       └────────────────────────┘

   ADMIN ONLY:  /apps/messages  →  Dashboard (analytics) + Settings (governance)

Key Features

✉️ 1:1 and Small-Group Messages

Private correspondence with one person or a small group.

Feature Description
One-on-one threads Idempotent — opening a message with the same person reuses your existing thread, never a duplicate
Group threads Start a group with 2+ recipients; capped at 10 participants per thread
Multi-recipient picker Typeahead search of people in your organization — pick one for 1:1, two or more for a group
Optional group title Group threads can carry a title; otherwise the name is derived from the participants
Thread context Threads can be tagged with their origin (e.g. a workspace) so a message keeps its context

Use Case: From a coworker’s profile, click Send a message. A drawer opens with them pre-filled; type your note and send. If you already have a 1:1 with that person, the existing thread is reused so the whole history stays in one place.

💡 Pro Tip: Keep group threads under the 10-person cap for quick huddles. For a larger group or longer-running work, move to a Workspace or a Chat channel instead.


💬 Rich Messaging

Feature Description
@mentions Mention a participant in your message; they get an Inbox notification with a preview of what you said
File attachments Attach files to a message (Drive-backed), when Attachments are enabled for your organization
Voice notes Record and attach a voice note that plays inline in the thread (also gated by the Attachments setting)
Edit your own Authors can edit their own messages; an “(edited)” marker records the change
Delete your own Authors can delete their own messages; deletions are soft (history is preserved for audit)
Date dividers “Today” / “Yesterday” / dated markers group the conversation over time

Use Case: Drop a photo into a message with @manager, add a quick voice note, and post it. Your manager gets an Inbox notification plus — if they have the thread open — a live push, and picks it up whenever they’re ready.


📥 Unified Inbox Experience

Messages live inside the unified Inbox — there is no separate messaging app for end users.

Behavior Description
Messages folder Lists all your conversations, sorted by most recent activity, with pagination
Side-panel reader Clicking a conversation opens a sticky-bottom chat layout in an offcanvas side panel
Auto-open a thread A link to a specific conversation opens it directly in the side panel
Unread pills + badge Per-conversation unread counts and a global unread badge in the Inbox header
Read on open Opening a conversation marks it read and updates your unread count
Search Inbox search matches conversations by participant name/email or message text
Archive Archive a conversation to clear it from your list; a new message brings it back

🎯 Message From Anywhere

Conversations can be started from multiple places in the product, so you don’t have to hunt for the Inbox first:

  • New Message button — at the top of the Inbox Messages folder
  • Composer drawer — a Turbo offcanvas drawer with the recipient typeahead and an optional first message, so the conversation opens already started
  • Profile / directory / org-chart — a Send a message action on people surfaces (distinct from Chat’s live “Chat” action)
  • In-context — a message can be tagged with the workspace or record it was started from

🛡️ Governance & Admin Controls

Messages is governed on its own track — four settings, each with a real runtime effect (no “dead toggles”).

Setting What it does
App enabled/disabled Master on/off. When off, the Inbox Messages folder disappears and messaging is blocked org-wide
Group messages Allow small-group (up to 10) threads, not just one-to-one
Attachments Allow files and voice notes in messages (when off, attachments are rejected, not silently dropped)
Who can start a message Anyone or Admins & managers only — replying to an existing thread is always allowed
Retention (days) Auto-remove messages older than N days; 0 = keep forever; runs daily; separate from channel retention

Use Case: During a compliance review, an admin sets Messages to Admins & managers only and a 90-day retention window — without touching channels or broadcasts. Existing conversations keep working; only starting new threads is restricted, and history rolls off on its own schedule.

💡 Pro Tip: Reach the governance settings from Apps → Messages → Settings, or from Admin → General Settings → Messages. The app’s enabled state is the master switch; the four settings only refine behavior while it’s on.


📊 Admin Dashboard & Analytics

The /apps/messages dashboard (admin-only) gives leaders an at-a-glance view of private-messaging usage.

Usage metrics:

  • Messages sent (all time, excluding deleted)
  • Last 30 days message volume
  • Conversations (1:1 and group threads)
  • Active (30d) — threads with activity in the last 30 days
  • Participants — unique senders
  • Reactions — emoji reactions on messages

Trend: a 30-day activity chart of daily message volume, plus a governance summary card showing the current state of all four settings at a glance.


🔒 Security & Tenant Isolation

Layer Enforcement
Business scoping Threads, messages, and participants are all tenant-scoped — data never crosses organizations
Recipient validation The composer filters recipients to people in your organization; cross-organization messages aren’t possible
Partial-match guard If any picked recipient can’t be resolved, the whole send is stopped rather than quietly dropping people
Participant gate You can only post to a conversation you’re a participant in
Author-only edit/delete You can only edit or delete your own messages
Soft delete + audit Deleted messages keep a tombstone for audit; retention purges are reversible in v1

🔗 REST API

Messages exposes a token-authenticated REST API for programmatic access, backed by the same service layer as the UI (so governance, mentions, and delivery all apply):

Endpoint Capability
List messages Paginated conversation history (newest first), with attachments and voice notes preloaded
Compose Post a message with text and file attachments (multipart)
Edit Update your own message
Delete Soft-delete your own message

User Roles & Permissions

Role Capabilities
Employee Read/send messages in the Inbox; start 1:1 or group threads (subject to Who can start); @mention, attach files/voice notes; edit/delete own messages; archive conversations
Manager Same as Employee. When Who can start is restricted to “Admins & managers only,” managers retain the ability to start new threads
HR / Admin Everything above, plus the Messages app page: usage analytics dashboard and the four governance settings
Per-app Messages admin A non-admin explicitly granted app-admin for Messages — can see the dashboard and manage settings

Access notes:

  • The Messages app tile and dashboard are shown only to business admins (or above) and per-app Messages admins.
  • Using messaging (Inbox) is open to any member while the app is enabled — it is not role-gated by default.
  • Who can start a new thread is the one behavior an admin can restrict by role (Anyone vs Admins & managers).

How We Compare

Modeling private messaging as its own governed surface — separable from channels — is where Messages differentiates. Governance facts for competitors below were verified against their official documentation (July 2026).

Capability MangoApps Workforce Microsoft Teams Slack Google Chat
1:1 + small-group private messages
Private messages in a unified Inbox (with notifications & broadcasts)
Org-wide switch to disable private messaging while keeping channels
Restrict who can start a private conversation
Retention for private messages set separately from channels
Built into an HR / Workforce platform (not a standalone tool)

Legend: ✅ Included · ❌ Not natively available · ⚡ Limited / Enterprise-tier / group-scoped only

How to read this:

  • Microsoft Teams is the proof point that a dedicated private-chat off-switch is a real, supported pattern: an org-wide messaging policy can disable private chat while channel messaging keeps working.
  • Slack has no single org-wide switch to disable all internal DMs; it offers group-scoped Information Barriers (Enterprise) and controls for external (Slack Connect) DMs, but not a blanket internal off-switch.
  • Google Chat treats DMs, group messages, and spaces as largely all-or-nothing — the tradeoff Messages explicitly avoids.

Why MangoApps Workforce?

  • 📥 One Inbox — private messages sit alongside notifications and broadcasts, not in a separate app
  • 🛡️ Governed on its own track — turn messaging on, off, restrict who starts it, and retain it — all independently of your channels
  • 🤖 AI-native platform — Messages is one app in a unified Workforce platform, not a bolt-on messenger

Getting Started

For Employees

  1. Open Inbox from the rail
  2. Switch to the Messages folder
  3. Click New Message, search a name or email, pick one or more recipients, and send
  4. Click any conversation to open it in the side panel; reply from the compose box at the bottom

For Managers

  1. Same flow as employees — messaging isn’t role-gated
  2. Use group messages (up to 10 people) for quick huddles outside a workspace
  3. If Who can start is restricted, you retain the ability to open new threads

For Administrators

  1. Confirm Messages is enabled for your organization (Apps Marketplace, or Admin → General Settings → Messages)
  2. Open Apps → Messages to see the usage dashboard
  3. Click Settings to configure Group messages, Attachments, Who can start a message, and Retention (days)
  4. Review the 30-day activity trend and governance summary periodically

Best Practices

  • ✅ Use Messages for private, person-to-person notes you don’t need answered instantly — reach for Chat when you want a live, synchronous conversation
  • @mention people so they get an Inbox notification, not just a passive thread update
  • ✅ Keep groups under the 10-participant cap — move bigger or longer-running work to a Workspace or Chat channel
  • ✅ Admins: set Who can start a message to match your culture — “Anyone” for open orgs, “Admins & managers only” to prevent ungoverned back-channels
  • ✅ Admins in regulated/frontline settings: set a Retention window appropriate to your recordkeeping obligations — it’s governed separately from channels

Frequently Asked Questions

Q: What’s the difference between Messages and Chat?
A: Messages is asynchronous — like email, it lands in the recipient’s Inbox and waits for them to read and reply on their own time, with no presence or typing indicators. Chat is the synchronous real-time messenger (live back-and-forth, “who’s online”). They’re two separate apps, and both are kept. “DM” belongs to Chat.

Q: Where do I actually read and send my messages?
A: In the unified Inbox, in the Messages folder. The /apps/messages page is an admin-only dashboard for analytics and settings — if you’re not an admin and go there, you’re redirected to your Inbox.

Q: How many people can I add to a group message?
A: Up to 10 participants, including yourself. For a larger group, use a Workspace or a Chat channel.

Q: Can I message someone in another organization?
A: No. The recipient picker is scoped to people in your own organization, and any unresolved recipient stops the send — cross-organization messages aren’t possible.

Q: If an admin restricts who can start messages, can I still reply?
A: Yes. The “Who can start a message” setting only limits starting a new conversation. Replying to an existing thread is always allowed.

Q: Can I edit or delete a message after sending?
A: Yes — but only your own. Edits show an “(edited)” marker; deletes are soft (a tombstone is kept for audit).

Q: What happens to old messages under a retention window?
A: If an admin sets Retention to N days, messages older than N days are automatically removed daily (0 = keep forever). It’s governed separately from channel retention.



Messages keeps private one-to-one and small-group conversations in the same Inbox as everything else that needs your attention — asynchronous, private, and governed on their own track.
</content>
</invoke>