Channel Types
Hazel Chat supports five distinct channel types, each designed for specific use cases:Public Channels
Open to all organization members. Perfect for team-wide discussions, announcements, and general topics.
Private Channels
Invitation-only channels with restricted access. Ideal for sensitive discussions or specific project teams.
Thread Channels
Focused conversations spawned from specific messages. Keeps detailed discussions organized.
Direct Messages
One-on-one conversations between two users. Private and personal communication.
Group Messages
Multi-person direct conversations. Like group DMs in other platforms.
Creating Channels
Public and Private Channels
Create a new channel:- Click the + button next to “Channels” in the sidebar (or press Cmd/Ctrl+Shift+N)
- Enter a channel name (e.g., “engineering” or “marketing”)
- Select channel type: Public or Private
- Optionally add an icon emoji
- Optionally assign to a channel section
- Choose whether to add all organization members automatically
- Click Create Channel
Channel names should be descriptive and lowercase. They appear with a # prefix in the interface (e.g., #engineering).
Direct Messages
Start a direct message conversation:- Click New Message in the sidebar (or press Cmd/Ctrl+K then select a user)
- Select a user from the organization
- The system checks if a DM already exists:
- If yes, navigate to the existing conversation
- If no, create a new single DM channel
single channel type.
Group Direct Messages
Create a group conversation:- Click New Message and select multiple users
- Optionally provide a group name
- A
directtype channel is created with all participants
Thread Channels
Thread channels are created automatically when you start a thread on a message. See Messaging - Message Threads for details.Channel Management
Channel Settings
Access channel settings by clicking the channel name in the header: General Settings:- Edit channel name
- Change channel icon
- Update channel description
- Delete the channel (admins only)
- View all channel members
- Add new members to private channels
- Remove members from channels
- Manage member permissions
- Create webhooks for incoming messages
- Configure bot access
- Set up external integrations (GitHub, RSS)
Channel Sections
Organize channels into sections for better navigation:- Create a section in the sidebar (e.g., “Projects”, “Teams”)
- Assign channels to sections when creating them
- Drag and drop channels between sections
- Collapse/expand sections to manage sidebar space
Channel sections are personal to each user. Your section organization doesn’t affect other team members.
Channel Membership
Joining Channels
Public Channels:- Browse discoverable channels in the sidebar
- Click Join to become a member
- Automatically added to your channel list
- Must be invited by an existing member
- Accept invitation to join
- Cannot see private channels you’re not a member of
- When creating a channel, optionally add all organization members
- New organization members don’t auto-join existing channels
Leaving Channels
- Open channel settings
- Click Leave Channel
- Confirm your choice
Channel Features
Favorites
Mark important channels as favorites:- Right-click a channel in the sidebar
- Select Add to Favorites
- Favorited channels appear in a dedicated section at the top
Muting Channels
Reduce noise from busy channels:- Right-click a channel or open settings
- Toggle Mute Channel
- You’ll still see new messages but won’t receive notifications
Hiding Channels
Temporarily hide channels from your sidebar:- Right-click a channel
- Select Hide Channel
- The channel disappears from your list but you remain a member
- Unhide via channel settings or search
Pinned Messages
Pin important messages in any channel:- Hover over a message and click Pin
- Pinned messages appear in the channel sidebar
- Quick access to important information
Channel Notifications
Each channel member has an individual notification counter:- Increments with each new message
- Decrements when messages are viewed
- Resets to zero when you scroll to the latest message
- Appears as a badge on the channel in the sidebar
Discoverable Channels
Public channels appear in the Browse Channels section:- Shows all public channels in the organization
- Displays member count and description
- One-click join functionality
- Search to find specific channels
Parent and Child Channels
Channels can have a parent-child relationship:- Set
parentChannelIdwhen creating a channel - Child channels appear nested under parents
- Thread channels automatically set their parent
- Useful for organizing related topics
Technical Details
Channel Data Model
Each channel includes:id- Unique channel identifiername- Channel display nameicon- Optional emoji icontype- Channel type (public/private/thread/direct/single)organizationId- Parent organizationparentChannelId- Optional parent channelsectionId- Optional section assignmentcreatedAt- Creation timestampupdatedAt- Last update timestampdeletedAt- Soft delete timestamp
Channel Member Data
Channel membership tracks:id- Membership record IDchannelId- Associated channeluserId- Member user IDisHidden- Hidden from sidebarisMuted- Notifications suppressedisFavorite- Favorited statuslastSeenMessageId- Last viewed messagenotificationCount- Unread message countjoinedAt- Membership timestamp
Permissions
Channel operations require appropriate permissions:- Create channels - Organization member
- Update channels - Channel member or admin
- Delete channels - Organization admin/owner
- Add members - Channel members (for private channels)
- Remove members - Admin or the member themselves
AI Thread Naming
Thread channels can generate intelligent names:- Uses the ThreadNamingWorkflow via Effect Cluster
- Analyzes original message and thread context
- Generates descriptive 3-6 word names
- Handles AI provider errors gracefully
- Falls back to generic names if AI unavailable