Team Messages
Send and receive real-time internal messages with your sales team directly within the CRM context.
Overview
Team Messages in SalesOS provides a built-in real-time communication layer that keeps your sales team connected without leaving the CRM. Unlike standalone messaging tools, Team Messages is deeply integrated with your CRM data, allowing conversations to flow naturally alongside deals, accounts, and contacts with full context preserved.
Every message can be linked to a CRM record, making it easy to find relevant discussions when reviewing a deal's history or preparing for a client meeting. This contextual approach eliminates the information fragmentation that occurs when sales conversations happen across email, Slack, and other disconnected tools.
Direct Messages
One-on-one messaging provides private communication between two team members with the full context of your CRM environment.
Starting a Conversation
There are multiple entry points for direct messaging:
- From the Messages panel: Click the compose icon and search for a team member by name.
- From a user's profile: Click the message icon next to any team member's name in the org directory.
- From a deal record: Click the message icon on any team member listed in the deal team panel to start a contextual conversation linked to that deal.
Conversation Features
| Feature | Description |
|---|---|
| Real-time delivery | Messages appear instantly via WebSocket connection |
| Read receipts | See when your message has been viewed |
| Typing indicators | Know when the other person is composing a response |
| Message editing | Edit sent messages within a 15-minute window |
| Message deletion | Delete messages (shows "message deleted" placeholder) |
| Emoji reactions | React to messages with emoji without cluttering the thread |
| Reply threading | Reply to a specific message to maintain context in busy conversations |
Offline Handling
When a recipient is offline:
- Messages are queued and delivered upon their next connection.
- Unread message count appears on the Messages icon in the navigation.
- Notifications are dispatched based on the recipient's preference settings (push, email, or both).
Group Channels
Channels enable team-wide or topic-specific communication for groups of any size.
Channel Types
| Type | Visibility | Use Case |
|---|---|---|
| Public | Discoverable by all org members | Team announcements, general discussion |
| Private | Invite-only, hidden from directory | Sensitive deal strategy, management discussions |
| Deal-linked | Auto-created for deal team members | Collaboration on specific opportunities |
| Account-linked | Auto-created for account team | Coordination on key accounts |
Creating a Channel
- Navigate to Messages > Channels.
- Click New Channel.
- Enter a channel name and description.
- Select channel type (Public or Private).
- Optionally link to a CRM record (deal, account, or project).
- Add initial members (or leave open for public channels).
- Click Create.
Channel Management
Channel owners and admins can:
- Add or remove members
- Change channel name and description
- Archive channels that are no longer active
- Pin important messages to the channel header
- Set channel-level notification overrides
- Transfer ownership to another member
Auto-Created Channels
SalesOS can automatically create channels based on CRM events:
- Deal channels: Created when a deal reaches a configurable stage, automatically including the deal team.
- Account channels: Created for strategic accounts, including the full account team.
- Team channels: Created when new teams are formed in the org structure.
Configure auto-creation rules at Settings > Messaging > Auto-Channels.
Contextual Messaging
The defining feature of Team Messages is the ability to send and receive messages with full CRM context attached.
Sending Contextual Messages
When you start a message from within a record (deal, account, contact, quote), the system automatically:
- Links the message to that record.
- Displays a context card showing the record name, type, and key details.
- Makes the conversation discoverable from the record's activity feed.
- Allows recipients to click through to the referenced record.
Context Card Display
Context cards appear inline with the message and include:
| Record Type | Card Shows |
|---|---|
| Deal | Deal name, stage, amount, close date, probability |
| Account | Account name, industry, owner, health score |
| Contact | Contact name, title, company, last activity |
| Quote | Quote number, total, status, expiration |
| Task | Task title, due date, priority, assignee |
Linking Context After the Fact
If a conversation naturally evolves to reference a CRM record, you can retroactively link context:
- Click the Link icon in the message composer.
- Search for the record by name or ID.
- Select the record to attach as context.
- The context card appears in the message thread for all participants.
Finding Contextual Conversations
From any CRM record, the Conversations tab shows all messages that have been linked to that record, providing a complete communication history alongside the formal activity timeline.
Mentions and Notifications
The @mention system ensures the right people see important messages without requiring everyone to monitor every channel.
Mention Types
| Syntax | Behavior |
|---|---|
| @username | Notifies a specific user |
| @here | Notifies all currently online channel members |
| @channel | Notifies all channel members regardless of online status |
| @role:managers | Notifies all users with a specific role |
| @team:enterprise | Notifies all members of a named team |
Smart Mentions
SalesOS suggests relevant people to mention based on context:
- When discussing a deal, it suggests the deal team members.
- When referencing an account, it suggests the account owner and team.
- When asking about a quote, it suggests the quote creator and approvers.
Notification Routing
Each mention generates a notification routed according to the recipient's preferences:
- In-app badge: Always shown (unread count on Messages icon).
- Desktop push: Configurable per channel or conversation.
- Mobile push: Configurable with quiet hours support.
- Email digest: Batched notifications for less time-sensitive channels.
Message Formatting
Team Messages supports rich formatting to make communications clear and scannable.
Supported Formatting
| Format | Syntax | Result |
|---|---|---|
| Bold | **text** | text |
| Italic | _text_ | text |
| Strikethrough | ~~text~~ | |
| Code inline | `code` | code |
| Code block | ```code``` | Formatted code block |
| Bulleted list | - item | Bulleted list |
| Numbered list | 1. item | Numbered list |
| Heading | ## text | Section heading |
| Quote | > text | Indented quote block |
Links and Embeds
- URLs are automatically converted to clickable links with preview cards.
- CRM record links (pasted from the address bar) render as rich context cards.
- Image links display inline previews.
- Video links show thumbnails with play indicators.
File Attachments
Attach files directly to messages:
- Drag and drop files into the message composer.
- Click the attachment icon to browse local files.
- Maximum file size: 25 MB per attachment.
- Supported preview types: images, PDFs, spreadsheets, documents.
- Files are stored securely and accessible only to conversation participants.
Pinned Messages and Bookmarks
Important information can be surfaced and saved for easy reference.
Pinning Messages
Channel owners and admins can pin messages to make them visible at the top of the channel:
- Click the three-dot menu on any message.
- Select Pin to Channel.
- Pinned messages appear in a dedicated panel accessible via the pin icon in the channel header.
- Maximum of 50 pinned messages per channel.
Personal Bookmarks
Any user can bookmark messages for their own reference:
- Click the bookmark icon on any message.
- Access all bookmarks from Messages > Bookmarks.
- Bookmarks are private and visible only to you.
- Organize bookmarks with tags for easy retrieval.
Search Across History
Full-text search spans all messages you have access to, with filters to narrow results quickly.
Search Capabilities
| Feature | Description |
|---|---|
| Full-text search | Searches message content, file names, and context card data |
| User filter | Show only messages from a specific sender |
| Channel filter | Scope search to specific channels or DMs |
| Date range | Limit results to a time period |
| Has:attachment | Find messages with file attachments |
| Has:link | Find messages containing URLs |
| In:record | Find messages linked to a specific CRM record |
Search Results
Results display with surrounding context (messages before and after the match) and a Jump to button that takes you to the message in its original conversation thread with full history.
Presence Indicators
Real-time presence shows team availability at a glance.
Status Types
| Indicator | Meaning |
|---|---|
| Green dot | Active (currently using SalesOS) |
| Yellow dot | Away (idle for 5+ minutes) |
| Red dot | Do Not Disturb (notifications suppressed) |
| Gray dot | Offline |
| Calendar icon | In a meeting (synced from calendar integration) |
Custom Status
Users can set custom status messages to provide additional context:
- "In client meetings until 3 PM"
- "Working remotely - async responses"
- "On PTO - back Monday"
Custom statuses appear next to the user's name in messages and the team directory.
Availability Schedule
Configure your working hours so the system automatically sets your status:
- Active during configured hours.
- Automatically switches to away/offline outside hours.
- Respects timezone settings for distributed teams.
Integration with External Tools
Team Messages syncs with popular communication platforms to prevent context switching and information silos.
Slack Integration
| Capability | Description |
|---|---|
| Channel mirroring | Mirror SalesOS channels to Slack channels (bidirectional) |
| Notification forwarding | Route SalesOS mentions to Slack DMs |
| CRM context in Slack | Shared messages include rich CRM context cards in Slack |
| Slash commands | Use /salesos in Slack to search CRM and share records |
Microsoft Teams Integration
| Capability | Description |
|---|---|
| Teams channel sync | Sync SalesOS channels with Teams channels |
| Adaptive cards | CRM record context displayed as Teams adaptive cards |
| Bot interaction | Query CRM data via Teams bot without switching apps |
| Meeting integration | Link Teams meetings to deal conversations |
Configuration
Set up external integrations at Settings > Integrations > Messaging:
- Authenticate with your Slack workspace or Microsoft Teams tenant.
- Map SalesOS channels to external channels.
- Configure sync direction (one-way or bidirectional).
- Set which message types sync (all messages, mentions only, or messages with CRM context).
Notification Preferences
Granular notification controls ensure team members receive relevant alerts without being overwhelmed.
Global Preferences
| Setting | Options |
|---|---|
| Desktop notifications | All messages, mentions only, nothing |
| Mobile push | All messages, mentions only, nothing |
| Email digest | Real-time, hourly, daily, weekly, never |
| Sound | Enable/disable notification sounds |
| Quiet hours | Set time ranges where notifications are suppressed |
Per-Channel Overrides
Each channel can have its own notification level:
- All activity: Notified on every message.
- Mentions only: Notified only when directly mentioned.
- Nothing: Channel is muted (still accessible, no notifications).
Do Not Disturb
Activate DND mode to suppress all notifications:
- Set duration (30 min, 1 hour, 2 hours, until tomorrow, custom).
- Urgent messages from designated senders can optionally break through DND.
- Scheduled DND can be configured to activate automatically (e.g., during focus time blocks).
Message Retention and Compliance
Team Messages supports organizational policies for message retention and compliance.
Retention Policies
| Policy | Description |
|---|---|
| Default retention | Messages retained indefinitely (configurable) |
| Auto-delete | Messages older than X days are automatically removed |
| Legal hold | Prevent deletion of messages for specified users or channels during litigation |
| Export requirement | All messages exportable for e-discovery |
Compliance Features
- Message archival: All messages are archived in compliance storage regardless of user deletion.
- Legal hold: Place specific users or channels on legal hold to prevent data destruction.
- DLP scanning: Optional content scanning for sensitive data (credit card numbers, SSNs, etc.).
- Export for e-discovery: Bulk export of messages with metadata for legal proceedings.
Admin Controls
Administrators can:
- View any public channel's messages for compliance purposes.
- Export message history for specific users or date ranges.
- Set organization-wide retention policies.
- Configure content policies (blocked words, file type restrictions).
Best Practices
-
Use contextual messaging by default. Whenever discussing a deal, account, or contact, start the message from within that record. This builds a searchable communication history attached to CRM data.
-
Create channels for deal teams, not individual deals. For most organizations, auto-created deal channels work well for complex enterprise deals, but creating channels for every deal leads to channel sprawl. Reserve auto-channels for deals above a value threshold.
-
Establish channel naming conventions. Use prefixes like
deal-,account-,team-, ortopic-to make channels easily searchable and their purpose immediately clear. -
Configure notification levels intentionally. Encourage team members to set per-channel notification preferences during their first week. Default to "mentions only" for high-volume channels to prevent notification fatigue.
-
Pin important decisions and agreements. When a conversation reaches a conclusion or decision, pin that message. This creates an easily accessible record of what was decided without requiring participants to scroll through history.
-
Use @mentions judiciously. Reserve @channel and @here for genuinely important announcements. Overuse trains people to ignore notifications, defeating the purpose of real-time communication.
-
Integrate rather than duplicate. If your team already uses Slack or Teams heavily, use the bidirectional sync rather than asking them to check two messaging platforms. Meet people where they already work.
-
Set retention policies before scaling. Configure your message retention and compliance settings early. Changing policies retroactively creates gaps in compliance coverage and can cause confusion about what is preserved.
-
Leverage search before asking. Encourage team members to search message history before asking questions that may have already been answered. The full-text search with CRM context makes this highly effective.
-
Review and archive inactive channels quarterly. Dead channels add noise to the channel list. Archive channels for closed deals, completed projects, or dissolved teams to keep the workspace clean while preserving history.