Send
The Moment Before You Hit Send
Every important communication has a moment — the pause before it goes. The proposal to the
client who could change your year. The message to the person who needs to hear something
difficult. The campaign to ten thousand people. The apology that could repair or ruin a
relationship.
In that moment, most people are asking: is this good enough?
The better question is: will this do what I need it to do?
This skill answers that question. Then it helps you send with confidence.
The Send Readiness Framework
SEND_READINESS = {
"purpose_check": {
"question": "What do I need to happen as a result of this communication",
"answers": ["Recipient takes a specific action",
"Recipient has specific information",
"Recipient feels a specific way",
"Relationship advances or repairs"],
"test": "Does every element of this message serve the stated purpose.
If not, it should not be there."
},
"recipient_check": {
"questions": ["Who exactly is reading this",
"What do they already know",
"What do they care about",
"What objection will they have",
"What do I need them to do after reading"],
"principle": "Write for the reader you have, not the reader you wish you had"
},
"clarity_check": {
"test": "Read only the first sentence. Is the purpose immediately clear?",
"test_2": "Read only the last sentence. Is the ask or next step unmistakable?",
"test_3": "Could this be misunderstood? If yes, how, and how do you prevent it?"
}
}
Communication Type Protocols
SEND_PROTOCOLS = {
"high_stakes_email": {
"before_sending": [
"Reply-all check — is everyone on this thread meant to see this",
"Attachment confirmed — never write 'see attached' without attaching",
"Tone check — read aloud to hear how it sounds",
"Subject line — does it accurately represent the content",
"24-hour rule — for anything written in anger, wait 24 hours"
],
"checklist": """
def pre_send_audit(email):
checks = {
"correct_recipient": verify_to_cc_bcc(email),
"attachment_present": "attached" not in email.body or email.has_attachment,
"clear_subject": len(email.subject) > 5 and is_descriptive(email.subject),
"single_ask": count_requests(email.body) <= 1,
"appropriate_tone": not contains_words(email.body, TONE_RED_FLAGS),
"no_sensitive_data": not contains_pii_or_confidential(email.body)
}
return all(checks.values()), checks
"""
},
"difficult_message": {
"principles": ["Direct does not mean harsh — clarity is kindness",
"One difficult message per communication — do not stack",
"Private channel for personal or sensitive content",
"Written record for professional accountability"],
"structure": ["Context — what this is about",
"The specific situation or behavior",
"The impact",
"What you need going forward",
"Invitation to respond"],
"not_this": ["Email to avoid a conversation that needs to happen in person",
"Group message for individual feedback",
"Passive framing that obscures the actual message"]
},
"mass_send": {
"before_sending_to_list": [
"Test send to yourself first — always",
"Check all merge fields resolve correctly",
"Mobile preview — 60%+ of email is read on mobile",
"Unsubscribe link present and functional",
"Sending domain authenticated — SPF, DKIM, DMARC",
"Send time optimized for recipient timezone"
],
"send_time_intelligence": """
OPTIMAL_SEND_TIMES = {
"B2B_email": "Tuesday-Thursday, 9-11am recipient local time",
"B2C_email": "Tuesday-Thursday, 7-9pm recipient local time",
"newsletters": "Tuesday or Thursday morning",
"transactional": "Immediately — delay reduces conversion",
"cold_outreach": "Tuesday-Thursday, 8-9am — before inbox fills"
}
"""
},
"file_send": {
"before_sending": [
"File opens correctly — do not assume",
"Permissions set correctly — not edit when view is appropriate",
"Version is final — not draft_v3_FINAL_actual_final",
"File size appropriate for channel — large files to cloud storage, not attachment",
"Sensitive data redacted if going outside organization"
]
}
}
Automation and Workflows
SEND_AUTOMATION = {
"when_to_automate": {
"good_candidates": ["Confirmation emails after form submission",
"Follow-up sequences with time delays",
"Recurring reports and digests",
"Payment reminders",
"Onboarding sequences"],
"bad_candidates": ["Responses requiring judgment",
"Sensitive communications",
"Anything where being wrong is costly"]
},
"sequence_design": """
def design_send_sequence(goal, audience):
sequence = []
sequence.append(Email(
timing="immediately",
purpose="deliver_value_or_confirm_action",
cta="single_clear_next_step"
))
sequence.append(Email(
timing="day_3",
purpose="provide_additional_value",
cta="softer_secondary_ask"
))
sequence.append(Email(
timing="day_7",
purpose="last_touch_before_exit",
cta="direct_ask_or_breakup_email"
))
return sequence
# 3 emails is enough for most sequences — more is diminishing returns
""",
"deliverability": {
"warm_up": "New domains need gradual volume increase over 4-6 weeks",
"list_hygiene": "Remove bounces and unengaged subscribers — protects sender reputation",
"engagement": "High open rates protect deliverability — send to engaged segments first"
}
}
Damage Control
SENT_THE_WRONG_THING = {
"recall_reality": "Email recall works rarely and only within same organization.
Assume it cannot be recalled.",
"immediate_steps": ["Assess who received it and what they saw",
"Send correction promptly — delay makes it worse",
"Own the error directly — do not bury the correction"],
"correction_template": {
"subject": "Correction: [Original subject]",
"opening": "I sent an email earlier today that contained [error].
The correct information is [correction]. I apologize for any confusion."
},
"data_breach": "If sensitive data was sent to wrong recipient — notify IT and privacy
officer immediately. Most jurisdictions have notification requirements."
}
Quality Check Before Delivering
- - [ ] Purpose of communication is explicit and single
- [ ] Recipient confirmed including reply-all risk
- [ ] Tone appropriate for relationship and content
- [ ] Single clear call to action
- [ ] Attachment present if referenced
- [ ] Sensitive data check completed
- [ ] Send time optimized for mass sends
- [ ] Test send completed before list send
发送
点击发送前的那一刻
每一次重要的沟通都有一个时刻——发送前的停顿。给可能改变你一年业绩的客户的提案。给需要听到某些艰难话语的人的消息。面向一万人的营销活动。可能修复或毁掉一段关系的道歉。
在那个时刻,大多数人会问:这够好了吗?
更好的问题是:这能实现我需要它实现的目标吗?
这项技能回答了这个问题。然后它帮助你自信地发送。
发送就绪框架
SEND_READINESS = {
目的检查: {
问题: 我希望这次沟通产生什么结果,
答案: [收件人采取特定行动,
收件人获得特定信息,
收件人产生特定感受,
关系得到推进或修复],
检验: 这条消息的每个元素是否都服务于所述目的。
如果不是,它就不应该存在。
},
收件人检查: {
问题: [阅读这条消息的究竟是谁,
他们已经知道什么,
他们关心什么,
他们会有什么反对意见,
我需要他们在阅读后做什么],
原则: 为你实际拥有的读者写作,而不是你希望拥有的读者
},
清晰度检查: {
检验: 只读第一句话。目的是否立即清晰?,
检验_2: 只读最后一句话。请求或下一步行动是否明确无误?,
检验_3: 这会被误解吗?如果是,如何被误解,以及如何预防?
}
}
沟通类型协议
SEND_PROTOCOLS = {
高风险邮件: {
发送前: [
回复所有人检查——这个线程上的每个人是否都应该看到这条消息,
确认附件——永远不要写了见附件却没有附件,
语气检查——大声朗读以感受其效果,
主题行——是否准确反映内容,
24小时规则——对于愤怒时写的任何内容,等待24小时
],
检查清单:
def 发送前审计(email):
检查 = {
正确收件人: 验证收件人抄送_密送(email),
附件存在: attached not in email.body or email.has_attachment,
清晰主题: len(email.subject) > 5 and is_descriptive(email.subject),
单一请求: count_requests(email.body) <= 1,
适当语气: not containswords(email.body, TONERED_FLAGS),
无敏感数据: not containspiior_confidential(email.body)
}
return all(检查.values()), 检查
},
困难消息: {
原则: [直接不等于苛刻——清晰是善意,
每次沟通只传达一条困难消息——不要叠加,
个人或敏感内容使用私密渠道,
专业问责保留书面记录],
结构: [背景——这是关于什么,
具体情况或行为,
影响,
你需要的后续行动,
邀请回复],
不要这样做: [用邮件代替需要当面进行的对话,
用群发消息传达个人反馈,
用被动措辞掩盖实际信息]
},
群发: {
发送给列表前: [
先给自己发送测试——永远如此,
检查所有合并字段是否正确解析,
移动端预览——60%以上的邮件在移动端阅读,
退订链接存在且功能正常,
发送域名已认证——SPF, DKIM, DMARC,
发送时间针对收件人时区优化
],
发送时间智能:
最佳发送时间 = {
B2B邮件: 周二至周四,收件人当地时间上午9-11点,
B2C邮件: 周二至周四,收件人当地时间晚上7-9点,
新闻通讯: 周二或周四上午,
事务性邮件: 立即发送——延迟会降低转化率,
冷启动外联: 周二至周四,上午8-9点——在收件箱被填满之前
}
},
文件发送: {
发送前: [
文件能正常打开——不要假设,
权限设置正确——需要查看权限时不要设置为编辑权限,
版本是最终版——不是draftv3FINALactualfinal,
文件大小适合渠道——大文件使用云存储,不要用附件,
如果发送到组织外部,敏感数据已脱敏
]
}
}
自动化与工作流
SEND_AUTOMATION = {
何时自动化: {
好的候选: [表单提交后的确认邮件,
带时间延迟的跟进序列,
定期报告和摘要,
付款提醒,
入职引导序列],
不好的候选: [需要判断的回复,
敏感沟通,
任何出错代价高昂的事情]
},
序列设计:
def 设计发送序列(目标, 受众):
序列 = []
序列.append(邮件(
时间=立即,
目的=传递价值或确认行动,
行动号召=单一明确的下一步
))
序列.append(邮件(
时间=第3天,
目的=提供额外价值,
行动号召=较温和的次要请求
))
序列.append(邮件(
时间=第7天,
目的=退出前的最后一次接触,
行动号召=直接请求或分手邮件
))
return 序列
# 大多数序列3封邮件就足够了——更多邮件收益递减
,
送达率: {
预热: 新域名需要在4-6周内逐步增加发送量,
列表卫生: 移除退信和未参与订阅者——保护发件人声誉,
参与度: 高打开率保护送达率——先发送给活跃用户群
}
}
危机处理
发错了东西 = {
撤回现实: 邮件撤回很少有效,且仅限同一组织内。
假设它无法被撤回。,
立即步骤: [评估谁收到了以及他们看到了什么,
迅速发送更正——延迟会让情况更糟,
直接承认错误——不要掩盖更正],
更正模板: {
主题: 更正:[原始主题],
开头: 我今天早些时候发送了一封包含[错误]的邮件。
正确信息是[更正]。对造成的困惑表示歉意。
},
数据泄露: 如果敏感数据被发送给了错误的收件人——立即通知IT和隐私官。
大多数司法管辖区有通知要求。
}
发送前的质量检查
- - [ ] 沟通目的明确且单一
- [ ] 收件人已确认,包括回复所有人的风险
- [ ] 语气适合关系和内容
- [ ] 单一明确的行动号召
- [ ] 如果提及附件,附件已存在
- [ ] 敏感数据检查已完成
- [ ] 群发时发送时间已优化
- [ ] 列表发送前已完成测试发送