We have built a mobile app to manage our field workforce of home care technicians. Our techs use this app to get their visit schedules, to view their care tasks and to complete the electronic visit verification. We want to add an SMS messaging feature to our app so that we can communicate with our techs, so that techs can communicate with us and our patients. We don't want to go with email and use a separate email program. We want all messaging to occur in our app. What are some good API technologies we can use for this type of messaging application? We use Office 365 and Teams corporately. Can we integrate Teams for this? What about Slack? Twillio? Are there others we should look at?
Thanks Richard! Lots of things to consider. Will pass on to my dev team. I didn't think that integrating a simple SMS messaging capability would require this level of development. I was hoping that there would be an off-the-shelf text message platform we could just "plug" in to our app. Obviously more to it than that.
From one Richard to another,
You can integrate your mobile app with Microsoft Teams, they have endpoints your app can communicate with, so that Teams performs certain actions. However, from what I have seen (never worked on a project that included a MS Teams integration), the Chat cannot actually be used directly in a custom app. (Anyone: Please correct me, if I am wrong)
In my opinion this leaves you with the following options:
- Use Twilio or similar, configure triggers on SMS send, to send the same message to a Webhook in MS Teams, that then sends it out to a monitored channel for communication. On a custom Message Extension in MS Teams you can allow the Teams members to answer, which then triggers to send a SMS back to the staff.
I think this approach is a big hack and slash, trying to accomplish something, that is not part of the provided solutions, for this usecase. Meaning: It's possible, but over complicated and a foreseeable bad user design. Which would lead to: not being used (staff might just send SMS like "Call me"), it might be difficult to go over the conversation afterwords in case of monitoring what happened (emergencies, staff misbehaviour, errors) and has many other pitfalls.
Another Approach is:
- Create an own messaging system, that runs along the MS Teams for communication.
Of course, you can use 3rd party suppliers like Twilio for SMS, you could also change it to a realtime web based system, and you get a 3rd party to handle notifications instead. Something like Ably, Pusher, PubNub, etc or create an own solution with Socket.io or similar.
This approach has more flexibility, but comes with a lot more work on your side. However, you could expand it with a custom bot, that handles most use cases.
You can also trigger MS Teams Webhooks on certain actions to notify or record a specific event in MS Teams, that is then processed by the corporate team etc.
Another approach is to use a Chat Service, that you can integrate in your app:
- Websites like SendBird, TalkJs, VoxImplant, etc can be used to remove all the huzzle of chat problems: Offline Messages, Connection issues, File/Text/Audio/Attachments/etc, pulling/notifications etc
From my own experience: Developing a chat is relatively simple in its concept, but to get it to the standard that people are used to (WhatsApp, Facebook Messenger, etc) it takes at least a medium sized full time team and is not a task that can be done as a little side project by 2-3 developers. But then again, it comes down to the complexity of the chat, the available time and capability of the developers...
Therefore this approach should also be considered, which might look more expensive compared to solutions like Twilio, Slack or custom development, but it save you a lot more development time and frustration within the team. Since the MS Teams webhooks are just HTTP Calls, you can also integrate the MS Teams while following this approach.
In all cases you need to extend the mobile app to include the "chat"-module, you will also need to think about how that changes the input/output handling, what systems are affected, how these are monitored, what happens when a device is stolen, permissions etc (specifically when integrating with 3rd party tools), how does all of this affect medical information about patients/privacy concerns/certifications etc.
I'd guess that there will be a lot of "spam" communication if the solution you implement is good, because it seems to be the better option than having a phone call, on the other hand when the design is bad, it will probably not being used and instead abused.
A chatbot could help, but might make the situation for the onsite workforce more painful. However, i'd certainly look into the chatbot and also include the actual staff in some of the chat capabilities "brainstorming" event and definitely get feedback from the on-site staff after a few weeks.
I cannot really be more specific, as there isn't enough technical information or capability information of your team etc.
I hope this helps you and your team in the decision making process and find a solution that works best for you.
Many of the easiest to use SMS messaging platforms have terrible pricing. Depending on how many messages you send, it will be worth a little extra programming up front to secure a more cost effective final product. SMS has a near zero actual cost in the cell system, so when people sell you them at 5 cents or 3 cents each they are making a ton of money. The actual cost is more like 0.0001 cents each. So do some estimates and figure out who to deal with. THere are lots of resellers in this mix, because they can buy 100 million a month directly from T-Mobile or Verizon, and resell their capacity to you. Twilio has gotten rich selling to stupid people who can't do simple arithmetic of N messages times R cents per message.
You can simply build or convert your current app into pwa app (Progressive Web Apps). It support cross platform like android, ios, desktop browser, etc.
Basically for your problem you just need push notification that will push message/chat from your current app into user devices. but of course in your app you will need at least a messaging feature. And it's free using firebase push notification.
There Already good answer but I will add more points.
Little Bit about me I am working on a project which have Real time Chat ,video, screen share, audio call, and many more features.
Currently We have rest api also but we don't give
I Will say go search about Webrtc. This is good for all things. Good thing it's open source but need your Dev team to use it which need good knowledge of Webrtc.
Many Big company used it..
If You need any help ping Me
Periscope Producer API
Thanks Edward. Maybe I should back up a bit to explain what got us looking at an in-app messaging capability. We have over a dozen field techs on the road going to patient homes to carry out preventive screenings for diabetics. We need a way to communicate with them. We use Office 365 and the app runs on an Android tablet. Initially, I thought we'd just give them an Exchange email address and have them use either the Outlook app or the native Android email app. But my CTO feels that giving our field tech an email address poses a security risk (phishing attacks...). His idea is to integrate a messaging capability right into our app. Sorta like LinkedIn's messaging feature. It's a good idea, but is it worth the cost of developing it? Email would be so much simpler. We can even enforce a policy that allows emails only from and to users on our domain and we can prevent access to Sharepoint. So I'm not sure what the security fuss is all about.
You may try textlocal