clickSomo

渠道

从同一张图出发,四种触达方式

提醒走短信,因为人们几分钟内就会看。故事走电子邮件,因为它有空间。轻拍肩膀走推送。值得贴一张邮票的客户会收到打印并邮寄的东西。一条消息用哪种渠道是节点的属性——而不是你需要购买、学习并维护的另一个工具的属性。

电子邮件

从你的文档渲染成电子邮件客户端真正想要的样子:表格、内联 CSS、不为 Outlook 使用 flex 或 grid、深色模式安全的配色,以及自动生成的纯文本替代版本。

带 List-Unsubscribe-Post 的一键退订,正如 RFC 8058 以及如今各大收件箱服务商所要求的。发布时还有大小检查,因为 Gmail 会在约 102 KB 处截断,而被截断的消息会把你的退订链接藏在没人看到的那部分末尾。

SMS

适合必须今天就被读到的消息:明天的预约、周日截止的优惠。简短,而且几乎立刻被阅读——这正是它绝不能被滥用的原因。

细分在发送前计数。GSM-7 给你 160 个字符;一个表情符号、一个弯引号或扩展表之外的波兰语变音符号,会把整条消息切换到 UCS-2,每段 70 个字符,你以为花一段的消息现在要花三段。你在发送前就能看到这个数字,而不是在账单上。STOP 及其等价指令在服务内部会被遵守,因为在大多数市场这是法律要求,而不是一个功能。

推送

带 VAPID 密钥和 RFC 8291 载荷加密的 Web Push,iOS 走 APNs,Android 走 FCM,对已经连接的应用还有基于套接字的应用内通道。

设备注册表为每个联系人、每个应用、每个端点保存一行,来自服务商的 410 或 404 会立即清除该行。从不清理的令牌会悄悄毒害你的送达率,并让之后的每一次测量都不准——这正是为什么清理比发送更重要。

印刷信件

同一份创意文档,通过打印 CSS 渲染成 PDF,填写地址并邮寄。给周年纪念、高价值客户、不读电子邮件的受众——也给那个所有人都挤在收件箱里、而你的东西躺在门垫上的时刻。

它是一个普通节点。同样的等待排在它前面,同样的目标检查可以取消它,同样的同意账本决定你到底能不能发送它。

自带发送渠道

ClickSomo 刻意且永久地不运行邮件服务器。你连接一个发件身份:一个绑定到某种发送方式的地址。它要么是你自己的 SMTP 邮箱——包括你的主机已经提供的那种——要么是你已经在付费的服务商,比如 SendGrid。

一个项目可以持有多个。一个邮箱用于事务性邮件,一个服务商用于批量发送,漏斗节点选择使用哪一个。每个身份都有自己的速率上限,因为小邮箱的上限很低,猛打它会让账户被停用,而不只是被限速。

系统不会允许你打破一条规则:群发流量绝不从被标记为事务性的域名发出。如果登录邮件和收据通过某个域名发出,就不能在那里创建群发身份。一次糟糕的营销活动——无论来自你还是任何人——都不应能拖垮你自己的密码重置邮件。

由此带来的结果,也正是关键所在:没有捆绑的单封邮件成本,因为根本没有可捆绑的东西。你的信誉只属于你自己,不会与陌生人共享。

连接邮箱发件人身份
  • 1地址与主机主机、端口、凭据、TLS 模式,以及由你设定的发送速率上限。
  • 2DNS 已检查你所需的 SPF、DKIM 和 DMARC 记录,随后进行验证——之后还会复查,因为一旦有人整理区域文件,记录就可能悄悄变化。
  • 3回信路径指向一个真实邮箱,用于接收、解析并分类退信通知。SMTP 没有 webhook;这正是小型发件人获得真正退信处理的方式。
  • !已拒绝在标记为事务性的域名上创建群发身份。现在只是一行策略,日后却是一场无法挽回的混乱。

你的地址你的信誉无加价

四种接入方式。消息会自动选择最合适的一种。

真正有用的部分

一套统一的投递词汇,无论消息由哪家服务商承载

每家服务商报告投递的方式都不同。SendGrid 通过签名的 JSON webhook 推送数据。普通 SMTP 账户则什么都不推送,其退信以供人阅读的电子邮件形式到达。两者都会在向上游传递之前被规范化为相同的十一种事件。

事件词汇表我们自己的,而非服务商的
  • 1排队中 · 已发送 · 已送达 · 已延迟消息的进展,用一套在所有服务商那里含义一致的词语来描述。
  • 2open · click点击事件附带 URL。机器人流量在报告中单独区分,而不是被隐藏。
  • 3软退信 · 硬退信 · 投诉硬退信和投诉都会写入抑制列表,且是永久性的。
  • 4unsubscribe · failed退订会在所有地方同时生效,包括发送服务内部。
  • i为什么这很重要更换服务商不会影响上游的任何东西——报表不会变,细分不会变,漏斗条件也不会变。服务商的“方言”止步于门口。

短信和推送使用相同的事件

发送出错时会发生什么

重试采用指数退避,最终进入死信队列,而不是无声无息。服务商返回的 4xx 会被重试;而表示消息不可接受的 5xx 则不会,因为无休止地重试正是账户被封禁的原因。

抑制列表不仅在发送服务内部执行,也在这里执行,因此更换服务商无法让你两年前抑制的地址死灰复燃。而且每个身份都有并发限制,大型营销活动会针对小邮箱自行调节节奏,而不是在最初三十秒内将其淹没。

刻意不构建的部分:我们不自建邮件传输代理,不提供专用 IP 池,不做预热调度器,也不做反馈循环注册。这些是实实在在的工作,理应由信誉承担风险的一方来完成——你的服务商,或你自己的邮箱。在这里构建它们意味着把你的发送与陌生人混在一起,而这正是本设计拒绝做的事。