Fwd: MOTECH Architecture list

11 views
Skip to first unread message

Rob LaRubbio

unread,
Sep 14, 2011, 1:45:54 PM9/14/11
to motech-ar...@googlegroups.com
 You should have gotten an invite from google groups about the MOTECH Architecture list.  I created a new list to allow us a place to have discussions about architecture topics among ourselves before we open them up to the larger group.  The list is open to anyone to join, but you must be approved to post.

In addition to this mail announcing the group, I have a topic I'd like to discuss related to the Message Manager Module.

Currently in Ghana we send messages on pre-determined days (i.e. IVR & SMS on Mon., Additionally SMS on Tues., Thurs.) or at the users "best message time".  The logic for this is split between the program code that defines the list of messages and the core application that sends the messages to allow users the ability to choose the best time for them. I propagated that split when spec'ing the message module, but I'm not sure it's the best way to do things.  So I'm wondering if people have thoughts or ideas on how we can augment the module such that you can define a schedule and the day/time you want the messages to go out.

For reference here is the original doc
http://pmo.applab.org:8080/display/~rlarubbio/Message+Manager+Module

I can see adding a new config key for sendDay and sendTime.  The system could then use the offset/repeatInterval values to find the approximate day and then schedule the sending on either the nearest sendDay & sendTime.  Or schedule it for the next sendDay & sendTime.  So currently the config looks like this for an offset based campaign:


"Campaign" : {
    "Name" : "Weekly Info Child Program"
    "Messages" : [
        {
            "Name" : "Week 1",
            "Formats" : ['IVR'],
            "Languages" : ['en'],
            "key": 'child-info-week-1',
            "timeOffset" : '1 Week',
            "sendDay" : "sat",
            "sendTime" : "6:30",
        },


When a person is enrolled if 1 week from their enrollment is a friday then the message is scheduled to be sent the next day.  If it is a sun., then it could be scheduled to be send either the previous day or in 6 days.

Should the strategy for choosing the day be exposed in the config as well?  Something like sendDayStrategy : [CLOSEST, UPCOMING, ...]

I think this is a feature we will need for Ghana, we need it for the MTN project in Ghana since they want SMS messages sent Tue., Thur., & Sat @ 6:30 and IVR sent Thoughts?

So really two questions, should we extend this module to include this feature or leave the actual day/time level of scheduling to the implementation code.  If we do decide it should move in this module does the above proposal sound OK?  Any alternate suggestions or feedback?
-Rob

Rob LaRubbio

unread,
Sep 15, 2011, 12:23:38 PM9/15/11
to motech-ar...@googlegroups.com
Thinking about this some more I think we may need those attributes but they should be optional.

Typically a module like outbox would handle the coordination of when to send a message if it isn't meant to be sent immediately.  However I think in Ghana with IntellIVR the outbox module may not work which means we may need this feature.  I also don't think outbox currently supports SMS, but that seems like a possible extension.

-Rob

On 09/15/2011 03:07 AM, Vivek Singh wrote:
sendDayStrategy, sendTime, sendDay all sound find to me.
--
Vivek Singh | +91 98452 32929http://sites.google.com/site/petmongrels | petmongrels@twitter
Reply all
Reply to author
Forward
0 new messages