Two Spouts
The Renaissance Marketer
Chapter 7 of 15

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.

Communication — gif

Slack keyboard shortcuts that earn their keep

Slack

If 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 sending

Channel 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

a text expander (Raycast snippets / espanso / TextExpander)

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:

  1. Scheduled prompt: every Monday 9am, post "Drop your weekly update 👇" into each client channel. You never chase anyone again.
  2. 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.
  3. Onboarding flow: triggered when someone joins #client-acme-general — auto-DMs them the access steps and SOP links.
  4. 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) + Loom

Some 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:

  1. Agenda in the invite, or it doesn't happen. No agenda, no meeting.
  2. Default to 25 minutes, not 60 — work expands to fill the time. Change your calendar's default event length and never look back.
  3. 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.

Sweet, you’ve completed this section! 🥳 Move on to the next section on spreadsheets.