预订确认和后续提醒来自同一个号码时更容易辨认。如果号码改变,接收者可能会看到一个没有之前上下文的独立对话。
为什么要保持同一个发送号码?
复用发送号码有助于接收者识别对话,也能让回复发送到同一个号码。
手机通常按发送者分组短信。轮换号码可能会将同一业务对话分散到多个消息线程中。
回复会发送到客户所回复的那条消息上的号码。更换出站号码不会将对旧消息的回复重定向到新号码。在接收者仍可能使用该线程期间,继续监听该号码。
退订消息也是如此。发送到旧号码的 STOP 即使在你开始使用新号码发送后仍需处理。STOP 关键词介绍了 Bird 如何限定该抑制的作用范围。
如何在 Bird 中保持固定发送号码?
在每次自由文本发送时通过 from 复用已分配的发送号码。为每个接收者保存该分配关系。
Bird 的自由文本请求需要 from。该值必须标识你的工作区所拥有的发送号码。如果是电话号码,需包含国家代码,例如 +15557654321。
省略 from 会返回 HTTP 422 SMSNoEligibleSender。使用未拥有的号码也会返回相同错误。使用未注册的字母数字发送者会返回 422 SMSSenderNotConfigured。发送前验证分配关系,以免已释放的号码中断对话。
messaging_profile_id 字段不提供发送号码池功能:Bird 会以 422 SMSUnsupportedFeature 拒绝该请求。发送端点记录了这些字段。
应该存储和检查什么?
为每个接收者保存一个发送号码。复用前验证它是否仍然可用。
对于新接收者,选择一个你拥有且被允许向该目的地发送的号码。在发送并发消息之前保存该选择,避免两个任务为同一个人分配不同的号码。
对于已有接收者,在发送号码仍归你所有且符合条件时复用该分配。如果你释放了该号码或其目的地权限发生变化,请明确选择一个替代号码。
为某个市场指定专用发送号码可以简化分配,因为每个接收者使用同一个可用号码。但如果你停用该号码,仍需处理变更。
模板发送会保留分配关系吗?
模板发送会自动选择发送号码,因此你无法通过 from 强制使用已保存的分配。
Bird 会拒绝同时传入 from 和 template。模板路径会为目的地选择发送号码,并在消息的 from 字段中返回所选值。
保存对话时使用该返回值。不要假设它与你上次自由文本发送时的号码一致。模板指南介绍了模板提供哪些值。
发送号码的可用性优先于连续性:被分配但不被允许向某目的地发送的号码无法在该目的地复用。发送者类型介绍了这些限制。
更换号码后回复会怎样?
对旧消息的回复仍会发送到旧号码。
如果你仍拥有旧号码,在过渡期间保持其入站处理处于活跃状态。重建对话时包含两个号码的消息。MO 和 MT 解释了为什么入站回复有自己独立的消息记录。
在使用替代号码发送之前,将退订记录纳入你的发送决策。Bird 的发送者级别抑制不会自动变为工作区范围的偏好设置。新号码不能成为继续向已要求停止的人发送消息的途径。
简而言之
稳定的发送号码让对话更容易辨认。
复用同一号码有助于接收者找到之前的消息,也能让回复始终发送到同一个目的地。
你的应用程序负责保存分配关系。
Bird 自由文本发送需要 from,因此请保存每个接收者对应的发送号码。
模板发送会自动选择发送号码。
Bird 会拒绝同时传入 from 和 template。不要假设模板发送会沿用你保存的分配关系。
更换发送号码需要入站处理方案。
接收者可能回复旧消息线程,因此在过渡期间要继续处理那些回复和退订请求。