Skip to main content

Slack Conventions

Slack is EGI's primary internal communication tool. These conventions ensure channels stay organized, searchable, and useful as the team and project count grows.

Channel Naming Conventions

All channel names use lowercase with hyphens. Prefixes indicate the channel's purpose.

PrefixFormatPurposeExample
#project-#project-[name]Internal work for a specific project#project-life-central
#client-#client-[name]Slack Connect channel shared with a client#client-acme-corp
#team-#team-[function]Functional team discussions#team-engineering, #team-design
#cross-#cross-[company]-[company]Cross-company coordination#cross-egi-anchor
#ops-#ops-[system]Automated alerts and operational feeds#ops-deployments, #ops-alerts
#general--Company-wide announcements and general discussion--
#random--Non-work conversation--

Naming Rules

  • Use the shortest unambiguous project or client name (e.g., #project-plc not #project-project-life-central)
  • Never include dates or version numbers in channel names
  • Archive channels when a project is complete or a client engagement ends; do not delete them

Required Channels Per Project

Every active project must have the following channels created at kickoff:

  1. #project-[name] -- Internal engineering and design discussion
  2. #client-[name] -- Shared channel with the client (Slack Connect)
  3. #ops-[name]-deploys -- Automated deployment notifications for the project (optional for internal-only projects)

If the project involves a handoff to Anchor MSP, create #cross-[name]-handoff at the start of the handoff phase.

Mentions and Notifications

@here vs @channel

MentionUse WhenEffect
@hereYou need attention from people currently online in the channelNotifies only active members
@channelThe message is critical and everyone in the channel must see it, regardless of online statusNotifies all members, including those with notifications paused

Rules:

  • Default to @here for most situations
  • @channel is reserved for production incidents, urgent blockers, and time-sensitive announcements
  • Never use @channel in #general or #random without leadership approval
  • For individual attention, tag the person directly (e.g., @elliott)

@team Mentions

Use Slack user groups for team-level pings:

  • @egi-engineering -- All EGI engineers
  • @egi-leads -- Project and team leads
  • @anchor-ops -- Anchor MSP operations team

Thread Etiquette

  1. Always reply in threads. Top-level messages in a channel should be new topics only. All follow-up discussion belongs in the thread.
  2. Use "Also send to channel" sparingly -- only when the reply contains a resolution or decision that everyone in the channel needs to see.
  3. Summarize long threads. If a thread exceeds 15 messages, post a top-level summary with the key decision or outcome and link back to the thread.
  4. Do not start new threads to continue an existing conversation. Find the original thread and continue there.

Bot Integrations

The following bots post automated updates to designated channels. Do not mute these channels if you are on the relevant project.

BotChannel(s)What It Posts
GitHub#ops-[name]-deploys, #project-[name]PR opened, merged, CI status, review requests
Vercel#ops-[name]-deploysDeployment started, succeeded, failed, preview URLs
PostHog#ops-alertsThreshold alerts, anomaly detection, funnel breakdowns
Uptime / Monitoring#ops-alertsDowntime alerts, SSL expiry warnings, health check failures
SuiteDash#client-[name] (optional)New client messages or file uploads

Managing Bot Noise

  • Configure bots to post only actionable events (e.g., filter out draft PR updates)
  • Use Slack channel-level notification overrides if a bot channel is too noisy for your workflow
  • Review bot configurations quarterly and remove integrations that are no longer relevant

Status Conventions

Set your Slack status to communicate availability clearly.

Status EmojiMeaningExpected Response Time
No status setAvailable, working normallyStandard (within 2 hours)
📆 (Calendar)In a meetingAfter the meeting ends
🎧 (Headphones)Deep focus / heads-down workWithin 4 hours or after focus block ends
🌴 (Palm tree)Out of office / PTONot expected to respond; check back on return date
🏠 (House)Working remotely (if relevant)Standard (within 2 hours)
🤒 (Sick)Out sickNot expected to respond

Status Rules

  • Update your status before you become unavailable, not after
  • Include a return time or date when possible (e.g., "In meetings until 2 PM")
  • Clear your status when you are available again

Channel Lifecycle

  1. Creation: Project lead creates required channels at project kickoff and sets the channel topic and description
  2. Active use: Follow all conventions above during the project
  3. Archival: Within 2 weeks of project completion or client disengagement, archive the channel. Post a final message linking to the project retrospective or handoff documentation before archiving
  4. Retrieval: Archived channels are searchable. If a project is reactivated, unarchive the original channel rather than creating a new one

Do's and Don'ts

Do:

  • Pin important messages (project briefs, key decisions, environment URLs)
  • Use emoji reactions to acknowledge messages without cluttering the thread (e.g., for "done", 👀 for "looking into it")
  • Keep file sharing in Slack to quick references only; permanent files belong in SuiteDash or the project repository

Don't:

  • Send messages that say only "Hi" or "Hey" and wait for a response; include your question or context in the first message
  • Use Slack for formal approvals or contractual communication
  • Create private channels for project work unless there is a specific confidentiality requirement approved by a lead