Twilio作为一对多短信对话的代理



我正在为顾问构建一个小型短信服务。他希望他的客户能够向单个Twilio号码发送短信,并将其转发到他自己的电话号码。当他回复时,他希望回复看起来像是来自Twilio号码(从而隐藏他的个人号码),并最终通过一个Twilio号码代理SMS通信来维护多个对话。我想我可以使用会话来做到这一点,但我不完全确定如何实现它?

有什么好的方法吗?

这里是《Twilio Evangelist》

这实际上有点棘手,但您有几个选择。主要问题是,您需要从Twilio号码向顾问发送SMS消息,但这可能包含多个对话。Twilio将保留会话/cookie等,但只有两个数字是唯一的。由于SMS不允许您添加任何额外的元数据,因此您需要考虑一些变通方法。

这里的主要问题是真正的用户体验-如果顾问收到客户的实际号码的短信并通过短信回复,那么短信将发送给客户,而不是Twilio。此时,顾问"泄露"了他们的直接手机号码。

让我们看一下单个客户的消息流:

客户向Twilio代理号码发送短信:

Customer -> Twilio Number -> Consultant

然后顾问回复Twilio号码,它被转发到:

Consultant -> Twilio Number -> Customer

这很好。可以通过Twilio的号码在咨询师的电话上进行对话。当顾问回复时,您的应用程序只是充当代理,并将消息转发给客户。

当您添加第二个客户时,顾问很难知道消息来自谁。因为从顾问的角度来看,它们都来自同一个Twilio Number !

Customer1 -> Twilio Number -> Consultant
Customer2 -> Twilio Number -> Consultant

然后回复:

Consultant -> Twilio Number -> ??

当顾问回复时,您将消息发送给哪个客户?他在回应哪段对话?这里有两个选项:

1多个数字

客户发送给顾问的短信使用一个号码,但发送给客户时使用多个不同的号码作为发送号码。所以客户只有一个号码,但顾问有很多不同的号码,每个客户一个。如果顾问有数百个客户,这可能会有点贵,即使是每个月1美元!

2 Pin码

在每条短信前加上一个标识客户端的pin号。那么<ID> <Message>。然后,当顾问回复时,他们指定他们正在回复的对话的<ID>。但这并不是最好的用户体验,并且会使跟踪消息线程变得有点棘手。

3应用

这是我最喜欢的解决方案,但需要更多的工作。为他们制作网页或手机原生应用,使用推送通知连接设备和Twilio。这允许您在原始的From/to号码上无缝地连接会话,而不必添加额外的数据来代理会话。它还允许顾问保存客户的数量,因为他可能会收到一张带有手机号码的名片,SMS消息可能会假设他已将该号码添加到他的手机中。这也意味着他可以从任何地方访问这些短信,他不再被束缚在自己的手机上!它可以在平板电脑/笔记本电脑/台式机/任何设备上运行!

这是一个相当棘手的问题,因为SMS是无状态的。Twilio确实保留状态,但这仅对每对数字是唯一的,单个对(from/to)不能有多个会话状态。

我希望这对你有帮助!

最新更新