Async communication principles
  • Lead with context: the reader doesn't have your mental state — set the scene in the first sentence
  • One ask per message: multiple requests buried in one email get partial answers
  • Set a deadline: "when you have time" means never — "by Thursday" gets a response
  • Separate FYI from requests: state clearly whether a reply is expected

Opening Lines

  • Following up on our conversation from [yesterday / the sprint planningˆ]…
    Most natural async opener — references shared context
  • As discussed in our last meeting, I wanted to confirm…
    Connects to a prior sync — creates a paper trail
  • I wanted to reach out regarding [the deployment timeline / the open ticket].
    Formal but not stiff — use for cross-team emails
  • Quick update on [the migration / our investigation]:…
    "Quick update" sets correct expectations for a short message
  • Looping in [name] who will be taking this forward.
    Handoff opener — adds recipient and clarifies ownership
  • Just to keep everyone in the loop:…
    Informal broadcast opener for status updates to a team

Making Requests

  • Could you please review the attached PR / doc by [Friday]?
    Polite request + clear deadline
  • I'd appreciate it if you could share your feedback before the meeting.
    Soft request — good for optional or low-urgency asks
  • Would it be possible to get this deployed to staging by end of day?
    Hedged request that still communicates urgency
  • When you have a moment, could you take a look at [issue #123]?
    Lowest pressure phrasing — for non-blocking requests
  • I need your sign-off on this before we can proceed.
    Clear blocker — don't hedge when approval is genuinely required
  • Can you confirm whether [the API keys have been rotated]?
    Yes/no request — ask directly to get a direct answer

Declining & Pushing Back

  • Unfortunately, this falls outside the current sprint scope — can we add it to the backlog?
    Declines and offers an alternative in one sentence
  • We'd need to adjust the timeline or reduce scope to accommodate this.
    Classic scope/schedule/quality trade-off framing
  • I'd suggest deprioritizing this for now — here's my reasoning:…
    Disagrees professionally and backs it up
  • I have concerns about [the approach / the timeline] — could we discuss before we commit?
    Raises a flag without blocking — proposes a sync
  • That's not something our team owns — you'd want to reach out to [team / person].
    Clear redirect — avoids absorbing work that isn't yours
  • I want to make sure we're aligned on the priority — is this more urgent than [X]?
    Forces an explicit prioritization conversation

Closing Lines

  • Let me know if you have any questions or need more context.
    Standard professional close — always safe
  • Happy to jump on a call if it's easier to discuss this live.
    Offers sync when async is getting complex
  • Looking forward to your feedback.
    Warm close for review / approval requests
  • Please let me know if you need anything else from my side.
    Signals you're done and hands the ball over
  • I'll follow up by [day / time] if I haven't heard back.
    Sets a follow-up expectation — reduces ambiguity
  • Thanks for your time on this — much appreciated.
    Warm, genuine close for longer requests or difficult asks

Status Updates & Async Reports

  • Status: 🟢 On track / 🟡 At risk / 🔴 Blocked
    Traffic light format — instantly scannable for managers
  • Progress this week: [what was done]. Next steps: [what's next]. Blockers: [none / …].
    Three-part async status template — complete and concise
  • ETA remains [Friday] — no change to the timeline.
    Proactive no-news update — confirms nothing changed
  • We're behind by [X] — here's the revised plan:…
    Lead with the bad news, follow with the recovery plan
  • No action needed — this is for visibility only.
    Sets expectation that no reply is required
  • Action required by [name] by [date]:…
    Explicit call-to-action — use when someone must do something