我正在为顾问建立一个小型短信服务。他希望他的客户能够将短信发送到一个Twilio号码,并将他们转发到他自己的电话号码。当他做出回应时,他希望响应看起来来自Twilio号码(以便隐藏他的个人号码),并最终通过代表SMS通信的单个Twilio号码保持多个对话。我想我可以使用会话来做到这一点,但我不完全确定如何实现它?
关于好方法的任何想法?
答案 0 :(得分:8)
Twilio Evangelist在这里。
这实际上有点棘手,但你有几个选择。主要问题是您需要将来自Twilio号码的SMS消息发送给顾问,但这可能包含多个会话。 Twilio will keep the session/cookies etc,但仅限于两个数字。由于SMS没有任何允许您添加任何额外元数据的内容,因此您需要查看一些解决方法。
这里的主要问题是用户体验 - 如果顾问从客户的实际号码收到短信并通过短信回复,短信将发送给客户,而不是Twilio。此时,顾问'泄露了'他们的直接手机号码。
让我们通过单个客户了解消息流:
客户向Twilio代理号码发送短信:
Customer -> Twilio Number -> Consultant
然后顾问回复Twilio号码,并转发:
Consultant -> Twilio Number -> Customer
这很好。可以通过Twilio号码在顾问电话上进行对话。当顾问回复时,您的应用程序只是充当代理,并将消息转发给客户。
当您添加第二个客户时,顾问很难知道该消息来自谁。因为他们都是从顾问的角度来看来自相同的Twilio号码!
Customer1 -> Twilio Number -> Consultant
Customer2 -> Twilio Number -> Consultant
然后回复:
Consultant -> Twilio Number -> ??
当顾问回复时,您将邮件发送给哪个客户?他回应了哪个对话?有几种选择:
1个多个号码
客户使用单个号码向顾问发送短信,但在客户发送时使用多个不同的号码作为起始号码。因此,客户只有一个号码,但顾问有许多不同的号码,每个客户一个号码。如果顾问有数百个客户,即使每个月1美元,这可能会有点贵!
2个PIN码
使用标识客户端的密码编号为每条SMS添加前缀。所以<ID> <Message>
。然后,当顾问回复时,他们指定他们回复的对话的<ID>
。但它并不是最好的用户体验,并且会使跟踪消息线程变得有点棘手。
3 App
这是我最喜欢的解决方案,但需要多做一些工作。为他们构建一个Web或移动本机应用程序,使用推送通知在设备和Twilio之间加入。这允许您在原始的From / To数字上无缝地对话,而不必添加额外的数据来代理对话。它还允许顾问保存客户的数量,因为他可能会获得带有手机号码的名片,并且SMS消息可能假设他已将该号码添加到他的手机中。这也意味着他可以从任何地方访问这些短信,他不再依赖自己的手机!它可以在平板电脑/笔记本电脑/台式机上工作!
这是一个非常棘手的问题,因为SMS是无状态的。 Twilio确实保留了状态,但这只对每对数字唯一,一对(from / to)不能有多个会话状态。
我希望这有帮助!