Messages (admin view)
Messaging is the in-app direct-message and group-chat surface that members use to talk to each other in real time. It carries DMs, custom group chats, and a set of automatically-created chats that mirror your org's structure (one per chapter, one per pledge class, one for the executive board, one per region). This page covers what an admin can configure and what is intentionally not yet wired up.
What an admin actually configures
There is no admin chat moderation queue, no admin search across DMs, and no admin "delete this conversation" tool. The org-level messaging surface has two configurable areas:
- Auto-chat toggles — whether the platform automatically creates and maintains group chats for chapters, pledge classes, the executive board, and regions.
- Attachment policy — the maximum size and the allowed MIME types for files members can attach to messages.
Everything else (sending, reading, reacting, sharing files) happens at the member level on Messages.
Open the messaging settings
Messaging configuration is exposed via the org settings API but the panel is not currently rendered on a settings page in v0.62.1. The configuration model is fully wired and the API endpoint is live; the panel component exists in the codebase but isn't mounted on the org settings page. In practice this means:
- The defaults below apply silently to every org with messaging enabled.
- To change a default for your org, ask your platform admin to update the messaging settings row for your organization directly, or wait for the panel to ship in a future release.
If you have heard messaging configuration mentioned and expected a UI, the practical answer for v0.62.1 is "the toggles exist in the data model but you can't flip them yourself."
The four auto-chat toggles
Each toggle, when on, creates and maintains a single named group chat for that scope and keeps its membership in sync with the underlying org data.
Pledge class chats
When on, the platform creates one group chat per pledge class as the class is set up. Every member of that class is added automatically; new pledges joining the class are added on the next sync. Useful for a class that wants a single thread without having to invite each member by hand.
Executive board chat
When on, the platform creates one group chat for the chapter's executive board. Membership tracks the officer roster — when an officer is promoted, they're added; when they step down or transition, they're removed. New officers see history from the time they join.
Chapter chats
When on, the platform creates one group chat per chapter, with every member of that chapter added. New members joining the chapter are added automatically.
Region chats
When on, the platform creates one group chat per region, with every member of every chapter in that region added.
All four toggles default to off in v0.62.1. Turning a toggle on creates the chats and adds members; turning a toggle off does not delete the existing chats — they remain, but the platform stops adding new members as the org evolves.
Attachment policy
Two knobs:
- Maximum attachment size (MB). Defaults to 10 MB. Setting a higher value lets members attach larger files; setting a lower value blocks files above the cap at upload time.
- Allowed MIME types. A list of MIME types members can attach. An empty list means "allow all common types" — image/jpeg, image/png, image/gif, application/pdf, and common document formats. Set the list explicitly to lock down attachments to, say, image only.
What members see
Members see Messages in their sidebar. The page shows:
- A conversation list on the left with unread badges and last-message previews.
- A thread view on the right with the active conversation's messages, organized chronologically.
- A composer at the bottom of the thread with text input, attachment picker, and emoji reaction picker.
- A new conversation modal for starting a fresh DM or group chat.
Members can:
- Send text messages and file attachments.
- React to messages with emoji.
- Reply inline to a specific message (threaded replies).
- See typing indicators when another member is composing.
- See read receipts when their message is read.
- Mute a conversation so they stop getting notifications for it (the conversation row carries a
is_mutedfield on the per-member side).
What is not in the member UI in v0.62.1:
- No "edit this message" action. The
edited_atfield exists on the message model, but there is no editor surface. - No "delete this message for me" or "delete for everyone" action. The
is_deletedflag exists; no UI exposes it. - No per-message reporting / flag-to-admin flow.
- No org-level retention or legal-hold settings. Messages are retained until manually deleted (which no UI currently offers) or until a chapter or member is removed.
Members can leave a group chat themselves (the left_at field on ConversationMember records when), and starting a new DM with someone who is in the same org always works.
Messages page showing the conversation list, an active thread, the composer, and a typing indicator
Mobile differences
Messaging is built mobile-first. On phones the layout collapses to a single column — the conversation list is the default view, tapping a conversation pushes the thread on top. Real-time delivery uses the same WebSocket connection as on desktop. Push notifications go through the per-user device tokens configured on iOS and Android.
The attachment picker on phones is the native image/file picker. Camera-roll selection works; system file picker works for documents.
What chapter officers see that you don't
Chapter officers use messaging exactly like a regular member. They do not get a chapter-officer moderation view, they cannot read other members' DMs, and they cannot delete messages on behalf of members. If a member reports harassment in a DM to an officer, the officer's job is to escalate to the national admin and to chapter discipline channels — not to take action inside the messaging surface.
Errors and edge cases
- A member can't attach a file. Check the attachment policy. The file size cap defaults to 10 MB; files larger than that are rejected on upload. If your org has a custom MIME allowlist, files of other types are rejected.
- Auto-chat is on but new members aren't getting added. Sync runs on member state changes. If a member's status changed but the auto-chat membership didn't update, ask a platform admin to inspect the membership-sync logs. Recent state changes generally propagate within a minute.
- A group chat exists but is now stale (the auto-chat toggle was turned off). Turning off an auto-chat toggle does not delete the existing chat. The chat continues to exist with its current membership; new members will not be added. Members can leave it themselves.
- Messages from a removed member still show in history. A removed member's messages are not auto-deleted from conversations. The sender becomes a "Deleted account" reference; message text remains.
Troubleshooting
- "A new pledge class wants their own auto-created chat but I can't find the toggle." The auto-chat panel isn't currently mounted in the org settings UI. Reach your platform admin to set
auto_chat_pledge_class = truefor your org's messaging settings row. - "A member says they're getting messages from a group they should have been removed from." Check the conversation's member list; the
left_atfield is set when a member leaves. If their row is still active, have them tap Leave Chat in the conversation header. - "A member is reporting harassment in DMs." There is no in-product reporting flow in v0.62.1. Treat it like an offline complaint — collect screenshots, follow your standards-board or judicial process, and remove the offending member's access via the membership tools if appropriate.
- "Read receipts seem unreliable." Read receipts are sent over WebSocket when the recipient renders the message in their viewport. If the recipient is on a flaky connection, the receipt may take time to arrive or fail entirely. This is expected.
What's deliberately not built
- No admin-side messaging configuration UI. The panel component exists in the codebase but is not currently mounted on the org settings page. To change defaults, work with a platform admin until the panel ships.
- No per-user message mute, edit, delete, or "delete for everyone" controls in the member UI, despite supporting model fields.
- No message retention or legal-hold policies.
- No admin search across DMs or group chats.
- No "broadcast to all members" message type — use bulletins for that.
- No threaded conversations beyond inline reply-to (no Slack-style sidebar threads).
Related
- Module: Messaging
- Module enablement — to turn the module on or off for your org
- Permissions matrix
Last verified against v0.62.1 (2026-05-11).