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