Messages
Private one-to-one and small-group messages that land in the recipient's Inbox — asynchronous, like email, governed on their own track.
MangoApps
Overview
Messages brings private one-to-one and small-group correspondence to MangoApps Workforce as a first-class, separately-governed surface — the asynchronous, inbox-resident channel that complements real-time Chat. Users message a teammate, manager, or small group from anywhere in the platform: the Inbox's Messages folder, the user directory, the org chart, or a performance review. Threads carry rich text, @mentions, file attachments, and voice notes; deliver live over Action Cable; and track read state per participant. Because messages are governed on their own track, admins decide whether private messaging is allowed at all, who can start a conversation, and how long history is retained — independently of channels and announcements. That separation matches how Microsoft Teams and Slack treat private messaging for compliance, and gives regulated and frontline organizations the control to disable ungoverned back-channels or retain message history for eDiscovery without touching the rest of their communications.
Highlights
Capabilities
Conversations
-
One-to-one messages Auto-deduped per pair — starting a message with someone you already message reopens the existing thread (ThreadService#find_or_create_one_on_one).
-
Small-group messages Up to 10 participants per thread (GROUP_PARTICIPANT_LIMIT); admin-toggleable via group_dms_enabled.
-
@mentions Mention parsing notifies the mentioned participant (notification_type: platform_dm_mention).
-
Message edit and delete Author-only; delete is soft (deleted_at) so read/unread accounting and audit survive.
-
Voice notes Record-and-send voice messages transcribed via Whisper (VoiceTranscript).
Delivery & Discovery
-
Live delivery via Action Cable Platform::DirectMessageChannel broadcasts new messages to thread participants in real time.
-
Per-participant read state last_read_at per participant drives accurate unread badges — independent of the Notification read flag.
-
Unified Inbox folder The Inbox 'Messages' folder lists every active thread with search across participants and message bodies.
-
Cross-platform entry points 'Message this person' from the user directory, org chart, and EPMS self-assessment.
Files & Attachments
-
File attachments Drive-backed attachments per message; admin-toggleable via file_uploads_enabled.
-
Voice note transcription Audio attachments are transcribed asynchronously (Whisper).
Admin & Governance
-
Enable / disable messages org-wide The app's enabled state is the master switch — disable messages while keeping channels (Teams 'No Private Chats' parity).
-
Restrict who can start a message who_can_initiate (all / admins+managers) — enforced in ThreadService.
-
Retention window retention_days auto-purge, governed separately from channel retention.
-
Information barriers (who-can't-message-whom) Purview / Slack Information Barriers parity — post-v1.
Limits & Specs
-
Conversation types: One-to-one and small-group (up to 10 participants)
-
Real-time transport: Action Cable (platform WebSocket)
-
Message storage: PostgreSQL (platform_direct_message* tables, tenant-isolated)
-
Attachments: Drive-backed files + Whisper-transcribed voice notes
-
Default retention: Forever by default; per-tenant retention window configurable
-
Primary surface: The unified Inbox → Messages folder
-
Pricing: Included with MangoApps Workforce
Use cases
Resources
FAQ
Messages owns private one-to-one and small-group conversations (the Platform::DirectMessage primitive) that appear in your unified Inbox and hang off the user directory, org chart, and performance reviews. The Chat app owns real-time channels and group rooms. Splitting them lets an admin govern private messages independently of public channels — disable messages while keeping channels, or vice-versa.
Primarily in the unified Inbox under the 'Messages' folder, which lists every active thread with search. You can also start a message from the user directory, the org chart, and an EPMS self-assessment. New conversations open in a composer drawer.
Yes. Disabling the Messages app for a tenant turns off private messages everywhere — the Inbox folder hides, the 'message this person' buttons disappear, and the composer is blocked — without affecting channels or announcements. This mirrors Microsoft Teams' 'No Private Chats' messaging policy.
No. Messages is included with MangoApps Workforce as a platform-included capability — it is not metered and not sold as a standalone line.
Yes. Messages live in PostgreSQL (platform_direct_message* tables) under the same business-scoping and tenant isolation as the rest of the platform. A message-only retention window and information-barrier controls are on the roadmap for organizations with stricter compliance needs.