Skip to main content

Chat, Assistant & Moderation

Resgrid includes a realtime chat system — direct messages, group chats, department and station channels, and per-incident channels — plus an Assistant (chatbot) that answers questions and takes actions in plain language, and a moderation console for administrators. Chat is available on the web and in all four mobile apps (Responder, Unit, Dispatch, Incident Command) with the same channels and history.

Feature flag: Chat.System (free for all plans; used for staged rollout). If chat is missing, ask your administrator or Resgrid support to enable it.

Chat

Where to find it

  • Chat bubble at the bottom-right of every web page opens a floating chat panel.
  • Profile dropdown → Chat opens the full-page chat.
  • ✨ Assistant button next to the chat bubble opens the Assistant drawer.
  • Department dropdown → Chat Moderation (department and group administrators).

Channels

Channel typeWho is in itCreated by
Department channelEveryone in the departmentAutomatically
Station / group channelsMembers of that station or groupAutomatically for every group
Direct messagesYou and one other member — or a unit (the unit's crew receives it)Anyone
Group chatsAn ad-hoc set of membersAnyone
Custom channelsRules by group, role or user (any rule matching admits the member)Administrators
Incident channelsEveryone dispatched to a call; plus one channel per command-board lane and a Command channel restricted to the Incident Commander and active incident role holdersAutomatically on call creation; archived on close
AssistantYou and the AssistantAutomatically

Identities: people, units ("Engine 6" — the human sender is always recorded for audit), the Incident Commander role, and the Assistant.

Messaging features

  • Text, emoji, images (attachments are scanned), GIFs (safe-for-work rating enforced), link previews, shared locations.
  • Threads (reply in thread, optionally also send to channel), reactions, @mentions, pins.
  • Urgent messages with per-user acknowledgement — a unit audience expands to its crew; any crew member's acknowledgement satisfies the unit. Urgent messages override mute when the department setting allows.
  • Read / delivered indicators, typing and presence.
  • Push notifications follow the per-app routing matrix: mentions, DMs and urgent messages push; channel chatter does not push to a channel you have open on screen.
  • Muting per channel; message editing with history; moderator deletion leaves a tombstone.

The Assistant

The Assistant is a conversational helper inside chat (and, when configured, over SMS and other messaging platforms). It understands commands such as "set me responding", "who is on shift tonight?", "what calls are active?", "page Station 2", and — when allowed — "dispatch Engine 1 to the structure fire on Pine Ridge". Anything it does not recognise as a command is answered by a guard-railed language model that only has access to your department's data through Resgrid's own permissions.

The Assistant conversation is text only: attachments, reactions, pins and threads are disabled there.

Assistant settings

Department dropdown → Assistant (administrators):

SettingMeaning
Enable AssistantAllow members of this department to use the Assistant.
Allowed platformsComma-separated: WebChat, SmsTwilio, SmsSignalWire, Discord, Slack, Telegram, WhatsApp, Teams, Signal — or * for all.
Allow dispatch via AssistantAuthorized users may create or dispatch calls through it.
Confirm status changesRequire an explicit confirmation before destructive or status-changing actions.
Confirm phone linkingRequire a one-time Reply YES before linking an SMS number to a matching account.
Proactive notificationsLet the Assistant push calls and reminders to linked users.
Messages / user / minute, Messages / dept / minuteRate limits (blank = system default).
Department AI / LLM providerOptional OpenAI-compatible endpoint, model and API key so the Assistant runs on your provider. The key is encrypted at rest and never displayed.

Assistant settings

Moderation

Department dropdown → Chat Moderation. Department administrators see the whole department; group administrators see their group's channels.

Chat moderation

TabWhat it does
RequestsPending reports from members (reason: inappropriate content, harassment, spam, sensitive information, policy violation, other). Open one to see the item, the original evidence (retained even if the author edits or deletes), and the audit trail. Remove content or Complete — no action, optionally with a note sent to the reporters.
ReportsSearch new and completed requests by the user who added the content or who reported it, content type and date.
Chat controlsMute or ban a user in a channel, lock / unlock or archive a channel, delete messages. Every action is written to an immutable moderation log mirrored to the department audit log.
Chat settingsAllow image attachments, allow GIFs, allow location sharing, urgent messages override mute, Assistant enabled, message retention (days, 0 = forever), maximum attachment size (MB).
Chat exportsRequest a ZIP export (JSON + CSV transcripts including identities, edit history and the moderation log) for a date range — for records requests, HR or legal. Downloads are audited.

Members report a message from its menu (Report for moderation) and can check the report's status afterwards. Reports can also be raised on internal messages, call notes and call images.

Records integration

Selected incident-channel messages can be captured as evidence on a Record (see Records → Evidence) — the capture is a checksummed snapshot, so later edits or deletions do not change what was preserved.

Setup examples

DepartmentSuggested setup
Volunteer fireKeep department + station channels; encourage DMs to units for on-scene coordination; retention 365 days; Assistant enabled with Confirm status changes on.
EMSDisable image attachments in channels where PHI could appear, or enrol in ADP; retention 30 days; incident channels for handoff notes.
Emergency management / EOCCustom channels per ESF with role rules; urgent messages for activations; export transcripts after each activation for the after-action file.
Security / businessCustom channels per client site by group rule; GIFs off; moderation delegated to site supervisors as group admins.

Technical reference

ItemValue
ControllersChatController (Index; Chatbot redirects to Index), ModerationController, ChatbotSettingsController
Web componentsrg-chat, rg-assistant, rg-chat-page, rg-chatbot, rg-chat-moderation (Areas/User/Apps)
Feature flagsChat.System; Chatbot.TwilioTextIntegration routes inbound SMS through the Assistant pipeline
RealtimeEventing hub ChatEvent (RabbitMQ topic); presence TTL configurable in ChatConfig
APIapi/v4/Chat/*, api/v4/Chatbot/SendChatMessage
WorkersChatbot message logic, retention purge, export ZIP builder
DataMigrations M0104–M0109; ChatModerationActions mirrored to AuditLog
Designint-Coordination/docs/architecture/chat-system-design.md