Communication
"The single biggest problem in communication is the illusion that it has taken place." — George Bernard Shaw
I live and die by Slack. This isn't a lecture on why async matters — you already know. It's the actual setup: shortcuts, slash commands, channel naming, Workflow Builder, notification tuning — the stuff that turns Slack from a slot machine into a tool that runs 80% of your client comms for you. One rule first: write it once, properly. Async means over-communicating in writing instead of "hopping on a call," and everything below makes that writing fast.

Slack keyboard shortcuts that earn their keep
SlackIf you're reaching for the mouse, you're slow. These are the ones I hit a hundred times a day — learn five and you'll feel the difference by lunch:
Cmd/Ctrl + K Jump to any channel or DM (the only nav you need)
Cmd/Ctrl + T Quick switcher / search
Cmd/Ctrl + Shift + K Open your DMs list
Cmd/Ctrl + Shift + A All unreads in one view (triage everything fast)
Cmd/Ctrl + . Toggle the right-hand pane
Cmd/Ctrl + [ / ] History back / forward (like a browser)
Up arrow Edit your last message
E Edit a hovered message
T Open the thread on a hovered message
Cmd/Ctrl + Shift + \ Add a reaction emoji to the hovered message
Esc Mark current channel read
Shift + Esc Mark EVERYTHING read (the bankruptcy button)Cmd+K is the whole game. Stop scrolling the sidebar — type the channel name and Enter. Once it's muscle memory you'll navigate a 200-channel workspace faster than someone with 5.
And format inline — don't open the toolbar. Wrap text as you type:
*bold* → bold (this is your ASK — bold it)
_italic_ → italic
~strike~ → strikethrough
`code` → inline code
``` → start a code block (then Shift+Enter)
> quote → blockquote
Shift + Enter → new line WITHOUT sendingChannel naming as a system
A workspace lives or dies on its naming convention. Prefix everything so channels sort themselves and Cmd+K becomes a filter — pick prefixes and never break them:
#client-acme-general one per client, the default home
#client-acme-ads big topic? own channel
#client-acme-reporting
#proj-q3-rebrand internal projects
#team-ops internal ops / admin
#team-wins culture / morale
#ext-acme-shared Slack Connect with a client (ext- = outsiders here)
#zzz-archive-acme done? rename with zzz- so it sinks to the bottom- client- / proj- / team- / ext- — four prefixes cover almost everything. Type "client-" in Cmd+K and every client channel appears.
- One channel = one topic; set its topic + description on day one (purpose, who's responsible, where the doc lives). Cheap to create, expensive to untangle later.
- Threads, always — reply in the thread, never inline, or the channel's unreadable within a day. Tick "Also send to channel" only when the whole channel truly needs it.
ext- on every Slack Connect / shared channel is non-negotiable. It's a visual seatbelt — you instantly know outsiders can read this one, so you never paste an internal rant into a client's channel.
Slash commands you'll actually use
Run actions straight from the message box — status, reminders, focus — without leaving the keyboard:
/remind me to send Acme report Friday 9am
/remind #client-acme-ads "pull weekend spend" every weekday at 8am
/dnd 90 minutes focus block — mutes everything
/status :headphones: heads down till 2 set status + emoji
/away flip to away
/who list everyone in this channel
/shrug ¯\_(ツ)_/¯ (you'll use it more than you'd admit)
/collapse hide all inline images/gifs to read faster/remind is an underrated to-do list. "/remind me to follow up with Acme in 3 days" and it's out of your head and into Slack. I fire off a dozen a day instead of keeping a mental list.
Canned replies with text snippets
Typing the same message a third time? You're doing it wrong. Onboarding steps, your access-request walkthrough, the weekly-update skeleton — save them once, trigger them with a few keystrokes:
Raycast / espanso snippet examples:
;onboard → full client onboarding + access-request message
;wupdate → "*This week:* … *Moved:* … *Next:* …" skeleton
;hours → "I batch Slack 10am / 2pm / 5pm, reply within a day"
;access → step-by-step "how to give me Google Ads access"Pair snippets with AI: keep the template as the skeleton, then ask Claude to personalise the specifics per client. Template = speed, AI = the human touch.
Workflow Builder — Slack does the work
Slack Workflow Builder (free, built in)Almost nobody touches this and it's the most powerful thing in Slack — zero-code automation of channel routines. Use it to replace the recurring messages and intake questions you'd otherwise type by hand:
- Scheduled prompt: every Monday 9am, post "Drop your weekly update 👇" into each client channel. You never chase anyone again.
- Request form: a "New design request" shortcut opens a form (what / when / link), then posts a tidy, structured message into #team-ops. No more half-formed asks.
- Onboarding flow: triggered when someone joins #client-acme-general — auto-DMs them the access steps and SOP links.
- Emoji trigger: react ✅ on a request and a workflow logs it to a Google Sheet / posts a confirmation. Reactions become buttons.
The form-to-channel workflow is the sleeper. It forces structured input — you stop getting "can you do a thing by soon-ish?" and start getting a clean brief every time.
Notification tuning — kill the firehose
Default Slack is a slot machine, and the whole point of async dies the second you let it ping you for everything. Tune it once, properly:
- Global: Preferences → Notifications → "Direct messages, mentions & keywords" ONLY. Never "all new messages."
- Per channel: notification bell → Mute or @mentions only. Mute aggressively — you can still read it on your schedule.
- Keywords: add your name variants, client names, and "urgent" / "blocker" so the important stuff finds you even in muted channels.
- Schedule notifications (e.g. 9am–6pm) so Slack goes dark after hours; /dnd for focus blocks. Turn OFF unread badges for muted channels and "replies to threads I'm not in" — both are noise.
If Slack interrupts you, you configured it wrong. Real urgency = a phone call. Everything in Slack can wait until your next batch — reply 2–3 times a day and protect the gaps.
Emoji as a protocol
Emoji aren't decoration — they're a status system that kills a hundred "got it" messages a day. Agree on four and enforce them: 👀 seen it, I'm on it · ✅ done / approved · 🙏 thanks, no reply needed · 🔄 in progress, will update.
Slack clips & Loom — show, don't type
Slack clips (built-in) + LoomSome things are just faster to show — a dashboard walkthrough, a "why this campaign's tanking," an SOP handoff. Slack's clip recorder (the camera/mic icon in the message box) is criminally underused: fire a 60-second clip right in the thread. Loom is the heavier-duty version — shareable link, viewer analytics, 1.5x playback, and the killer feature: auto transcripts you paste straight into AI to generate an SOP. Use it for client walkthroughs ("here's your month, here's what I changed and why"), contractor handoffs (record once, reuse forever), and feedback/bug reports (point at the screen instead of describing pixels).
Keep them short. A 3-minute Loom gets watched; a 25-minute one is a meeting you recorded and nobody finishes. Then drop the transcript into Claude: "turn this into a numbered SOP." The doc writes itself.
Meetings: the 25-minute default
I'm not anti-meeting, I'm anti-pointless-meeting — the status read-out should've been a Slack message. Reserve live time for real back-and-forth (kickoffs, hard decisions, sticky strategy), and make it earn its slot:
- Agenda in the invite, or it doesn't happen. No agenda, no meeting.
- Default to 25 minutes, not 60 — work expands to fill the time. Change your calendar's default event length and never look back.
- End with who-does-what-by-when, posted in the client's Slack channel before anyone leaves.
Before accepting any meeting, ask: could this be a Loom or a message? Half the time it's yes, and you just reclaimed an hour.
Client cadence — boring on purpose
Clients don't want more meetings — they want to feel informed and trust you've got it handled. You buy that trust with a predictable cadence: same update, same format, same day. Boring means they never have to chase you:
- Weekly written update (your ;wupdate snippet): what I did, what it moved, what's next. Three lines is fine.
- Monthly report: an auto-generated dashboard plus a 3-min Loom walking through it.
- One stated channel + response time up front. A client who knows you reply within a day stops pinging within the hour.
The fastest way to lose a client isn't bad results — it's silence. Tell them before they notice. Proactive bad news beats reactive good news every time.
Communication isn't the soft skill people think it is. For a solo operator it's pure leverage — set up your tools once so the writing is fast, then buy back your week.