Initial scope of the outbound SMS feature as documented by Gurpreet Luthra in email on April 27, 2013
Goals
- The main idea of the Outbound SMS feature is to provide MifosX the ability to send SMS to clients, loan officers and others for various events and announcements -- like pending disbursement, pending payments, task list, monthly cash summary, etc.
- Currently Mifos and the client and portfolio data it contains is only accessed by the staff of the MFI. However, the majority of clients served by MFIs own mobile phones. A simple yet powerful way for them to interact with the data in Mifos is via SMS. MFIs have requested the ability for both inbound and outbound SMS communication to send notifications to their clients and to enable clients to retrieve information about their accounts. When living on less than $2/day, this simple yet timely interaction with their financial accounts is extremely important.
Background and strategic fit
Apart from the client need for this accessible and affordable stream of data, there are many technology companies and mifos integrators who are seeking to integrate SMS modules to send data outbound from their applications or services.
Assumptions
- Plugin Based Implementation: A plugin design where one can plugin an SMS gateway service to MifosX which takes input as a phone number and a message, and sends out an SMS.
- SMS Gateway Plugins: Implementation for maybe 2 SMS providers as plugins: Twilio, Nexmo, or Telerivet
Requirements
# | User Story Title | User Story Description | Priority | Notes |
---|---|---|---|---|
1 | SMS Queue | A queuing mechanism, where SMS events to be posted are put on a queue, and then a queue reader picks each SMS up and posts it out through the configured SMS Gateway. This queue should be visible in UI (exposed through API), with a status of whether the SMS was sent successfully or not. Attributes: Target User, Phone Number, Message, Time, Success/Failed, Status Message (to indicate error message or success message), Triggered By (Username/System). | TBD |
|
2 | Provide a Simple SMS sending capability for a Client | Provide the ability to send any text sms via a simple dialog box in Client screen. This is more for show casing that a loan officer can maybe send some message to the client via the system. Some questions here: | TBD |
|
3 | Identify Automatic System Notification SMS Events | We need to identify some system events and scenarios which we would like to have integrated via SMS notification. Can you give some suggestions on what these could be? As I understand, there would be 3 types of SMS notifications:
I need examples or what events we would like to support to begin with. Some that come to my mind are (based on my super limited domain knowledge):
| TBD | |
4 | SMS Notification Configuration Screen | Need to create a configuration screen where all SMS based notification configurations can be done. This will contain the following:
| TBD |
User interaction and design
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
| A: Don't; it will simply fail. |
| A: Giving the SMS gateway service API the name as an input as well is probably not a good idea in general. (With FrontlineSMS, you could then imaging to automatically create Contacts in FrontlineSMS.) |
| A: that will probably quickly get complicated; KISS, and forget it for now. |
| A: Just grey out the "Send SMSthat will probably quickly get complicated" button/icon? With a tooltip "Cannot send SMS as no phone number." |