I have a reasonably simple Twilio integration using their conversations API where an admin users can message their clients.
Clients receive a text message and when they reply on their phone, the Conversation SID matches their reply to the original thread.
For some reason Friendly Name doesn’t work at all when sending SMS messages so all the clients see the main twilio number.
The main problem is, multiple admin users can SMS the same client so on the client phone all the messages are in the same thread. I think the only (and obvious) solution is to setup all admins with their own twilio number. I know I can do this programatically and deal with phone number and usage billing as there’s potentially hundreds of users who will use this feature.
I’ve done 2 way SMS with multi users of an organization we ended up implementing the ability for each user account to purchase a number through their ORG twilio account directly from our dashboard. So the new org user creation flow had them get a number as well. Also had the ability to change user phone numbers if needed.
Friendly name should work btw I ended up having to create my own custom twilio plugin as the public plugins for twilio are missing quite a few features to make the whole process work correctly.
Just an update on where I am with this and a giant thanks to @chris.williamson1996 for helping!
The twilio conversation API is cool but needlessly complicated and rather annoying to deal with. If I had multi-platform users (What’s App, text, mobile app, browser etc) it might be a better option.
I am simply using the messaging API and every bubble user (coach, organizational admin) gets their own Twilio number and their organization gets a main ‘notifications’ twilio phone number. For now I’ll provision that, in the future, it’ll be automated.
For now our customers will get their own ‘sub account’ so I can track usage and billing. From what I read if a customer starts spamming people, only the sub-account gets shut down.
my data structure:
Conversations (some meta data, list of participants (list of users), messages (list of messages))
Messages (to, from, content, media url and other meta data)
Logs (captures raw sends and receives from twilio for troubleshooting
Users (phone number field for clients, twilio phone number field to store the coach’s twilio number)
Twilio Config (organization, twilio sub account id/key/message SID - data privacy set so only people who belong to the org can see it)
API connector:
main connection uses the twilio account info for authentication
“send sms” call sends the sub account id and message SID for that organization
Workflows:
callback url for the messaging service grabs the status (queued, delivered, sent)
capture reply captures all inbound messages and adds the message based on matching the ‘to’ and ‘from’ phone numbers from the Conversations.Participants list.
Hope this is useful for others doing searches for twilio.