Broadcast Messaging
CommCare Messaging lets you send scheduled or immediate messages to a group of recipients (either a set of Mobile Worker Groups or Case Groups).
What makes Broadcast messages different than conditional alerts or keywords?
Broadcast messages are simple reminders, and do not use case properties as triggers.
To send messages in bulk, click on Messaging > Broadcasts
When are Broadcast messages useful?
To set-up and schedule simple messages.
To contact all users in a one group with one time feedback after a day of supervision.
To send a meeting reminder, that is copied on an irregular basis.
Creating a New Broadcast
Click on the + Add Broadcast button
Set-up the key information
Who is the recipient? Do you want to send this a Mobile Worker Groups, Case Groups or Locations.
When should the message be sent? Specify the timing, either send a message immediately, or at a later date.
If the broadcast messages is sent at a later date, the time must be specified in 24 hour format.
The project's timezone will be used.
What do you want your message to say? Remember mobile worker groups cannot reference case properties.
Send an SMS message or SMS survey.
If sending an SMS message to a case group, you can specify case properties using {case.case_property}. For example, you may send the message "Thank you participating in this survey. Please contact {case.correspondent} if you have any questions."
If sending an SMS survey to a mobile worker group, the selected survey cannot update or close cases. The broadcast will fail to send if this is selected.
Review Scheduled Broadcast Messages
After you create a Broadcast Message, go to the Scheduled Broadcasts section on the Broadcasts page to view or edit all upcoming scheduled messages.
To edit the scheduled broadcast, click on the relevant name under the "Name" column.
To delete a scheduled broadcast, click on the red X button, once you do you will need to confirm the deletion on the pop up.
To either active or deactivate, click on the relevant button under the "Action" column.
Grouping Cases
CommCare Messaging allows you to group cases (contacts) to allow broadcast surveys or messages, similar to a mobile worker group.
When to Use a Case Group
Case groups are most useful in combination with Broadcast messages.
Often they can be used to communicate with cases in a specific region, or a subset of patients.
For example,
A case manager wants to easily communicate with the 20 participant cases under their supervision.
Notify all participants in a study of a particular side effect.
Alert all HIV+ participants that a new service is available.
Creating a Case Group
Go to Messaging > Case Groups
Type in the name of your group (ex. Patients and click the "+ Create Group" button.
Click on the Group Name link to edit the cases within the group.
Add cases to the Case Group manually with an identifier
This approach allows you to add individual cases to a case group.
Type in an identifier for the case (phone number, an external ID specified when creating case or the actual case ID).
If specifying the phone number, you need to specify the full phone number (including country code with no spaces and no + symbol).
The case ID can be found through the page for that case, or a case export.
Then click on the + Add Case button. If the case can't be found, an error will be displayed.
Note: To link back to the case data page, select the case name.
Bulk upload cases to a case group
Select the link and download the excel template, named "cases_bulk_example.xlsx" file.
Open the sheet, and you will find a column header name case_identifier.
In the file, type each case to add to the group as a separate row. You can use the phone number, external ID or the actual case ID. The case ID can be found in a case export or on the individual case_data page.
Upload the new list to add contacts to the case group.
Note: If the case can't be found, an error will be displayed.
Note: All cases in a Messaging Case Group must have a valid contact_phone_number, including the country code.
Editing a Case Group
Use the Manage Cases button to open the Case Group.
You can use the + Remove button to remove cases from the group and the + Add Case button to add additional cases.
You can can also using the Excel import functionality to bulk add phone numbers.
If you want to remove all cases from the group, its easiest to delete the group and create it again.
Broadcasts
Broadcasts are the simplest way to schedule one-time or recurring messages to your contacts. Creating a broadcast is a matter of defining the sending schedule, the recipients, and the content to send. Below each section of the page is described in greater detail.
Active
At the top of the page you can choose whether your broadcast is active or not. Activating / deactivating it here or on the broadcast list page has the same effect.
Scheduling
First, choose a Schedule Name so that you can pick this broadcast out in the broadcast list in case you need to make changes to it later. Next, choose a schedule frequency next to the Send label. The different frequencies and their options are described below.
Immediately
Immediate schedules will send the content one time to the recipients and stop. These types of broadcasts can't be modified later because of their one-time nature and must always be created as Active.
Daily
Choosing a daily schedule allows you to send the content one or more days at specific times. Below are the options for configuring a daily schedule:
Option | Description |
---|---|
At | Specific time: Choose the time of day to send the content Random time: Choose a window of time which starts at the given time and lasts for the number of specified minutes. The content will be sent at a random time within this window. Note: times will be interpreted in the project's time zone unless the recipient overrides it with a contact-specific time zone. The time zone used for group and organization recipients is always the project time zone, regardless of any contact-specific time zones. |
Start | Choose a start date. |
Repeat | no: Send for 1 day only every day: Repeat every day every ... days: Specify how often to repeat sending the content |
Stop | after: Stop after this many occurrences never: Never stop |
Some examples of setting up different daily schedules:
Send one time on 2018-04-15 at 12:00pm
Send every day at 9:00am
For the month of April 2018, send every other day at a random time between 12:00pm and 1:00pm
Weekly
Many of the options for the weekly schedule are the same as the daily scheduling options, only that now you must select the days of the week on which to send.
The following options have new meanings:
Option | Description |
---|---|
Repeat | no: Send for 1 week only every week: Repeat every week every ... weeks: Specify how often to repeat sending the content |
Stop | after: Stop after this many weekly occurrences. A weekly occurrence is one full iteration of sending for the entire week. never: Never stop |
Some examples of setting up different weekly schedules:
Send every Monday, Wednesday, and Friday at 12:00pm for the first 4 weeks of April 2018:
Send on Tuesdays and Thursdays at 12:00pm for the first week of April 2018 and the third week of April 2018
Monthly
Many of the options for the monthly schedule are the same as the daily scheduling options, only that now you must select the days of the month on which to send. In addition to choosing a specific day of the month, you can choose the last day of the month, the second to last day of the month, or the third to last day of the month.
The following options also have new meanings:
Option | Description |
---|---|
Repeat | no: Send for 1 month only every month: Repeat every month every ... months: Specify how often to repeat sending the content |
Stop | after: Stop after this many monthly occurrences. A monthly occurrence is one full iteration of sending for the entire month. never: Never stop |
Some examples of setting up different monthly schedules:
Send on the 15th of every month at 9:00am
For 2018, send every quarter on the first of the quarter, at 9:00am
Send annually on the first of January, at 9:00am
Custom
If your use case is more complex than the default scheduling options, you also have the option of sending a Custom Daily Schedule. See Custom Schedules for more information.
Recipients
When choosing recipient(s) for the broadcast, first choose the recipient type(s). After choosing a type you can choose recipient(s) of that type. Below each recipient type is described in greater detail.
Users
This recipient type allows you to select Mobile Worker(s) to be the recipients of the broadcast.
User Groups
This recipient type allows you to select Mobile Worker Group(s) to be the recipients of the broadcast. All mobile workers assigned to the group(s) you specify will be recipients.
User Organizations
This recipient type allows you to select Organizations and send to all Mobile Workers and Web Users assigned to those Organizations as their primary organization assignment. This recipient type does not send to Cases.
With this recipient type, you also have some additional options. You can send to all Organizations which are descendants of the selected Organizations by selecting the "Also send to users at organizations below the selected ones" option. Further, with that option enabled, you can also choose to only send to specific Organization Levels that are below the selected Organizations. Below are three examples which demonstrate the different options. For the purposes of the example, imagine an Organization hierarchy with 3 levels: Country, State, and City.
Send only to users assigned to Organization USA and no users below that Organization.
Send to all users assigned to Organization USA as well as all users assigned to all State and City Organizations below it.
Send to all users assigned to City Organizations below Organization USA, but do not send to users assigned to the USA Organization or any State Organizations below it
Case Groups
This recipient type allows you to send to Case Groups, a type of grouping of cases that only applies to Messaging use cases. Case Groups are defined on the Messaging > Case Groups page.
Note: Support for Case Groups as recipients might not be available forever. Consider using a Conditional Alert to reach Case contacts, which is a more efficient way of expressing that use case.
Content
In this section you choose what will be sent to the recipient(s) when the schedule's events come due.
SMS
When sending SMS, type the message to send to the recipient(s).
You may also choose to specify translations for the message by checking the "Translate this message" box, in which case the translation to send will be chosen based on each recipient's preferred language. The languages available for use with messaging for your project are defined on the Messaging > Languages page. If the recipient's preferred language does not appear in the list of translations, then the translation associated with Default Language specified in the Advanced section will be used.
When sending Email, type the subject and message of the email to send to the recipient(s). See the SMS section above for more information about specifying message content.
SMS Survey
If your project has access to Inbound SMS, then you will see an option which allows sending SMS Surveys to your recipient(s). An SMS Survey is a Form (defined in the App Builder) which gets filled out over SMS by your recipient(s). At the scheduled time, the SMS Survey session will start and the first question in the Form will be sent to the recipient(s), allowing them to answer the Form one question at a time. Upon completing the survey, the Form will be submitted and any case actions will be applied, just as if the form were submitted over Web Apps or through CommCare Mobile. The following additional options apply when sending SMS Surveys:
Option | Description |
---|---|
Form | The Form (configured in the App Builder) to use for the survey |
Expire After | The survey session will remain open for this many hours. After the session expires, answers will no longer be accepted for any of the survey's questions. |
Reminder Intervals | If enabled, reminder intervals help remind the recipient that a survey is open if they have not yet completed it. Reminder intervals are specified as comma-separated numbers of minutes to wait. For example, specifying reminder intervals of "60, 60" would mean "send one reminder 60 minutes after the session starts, and send another reminder 60 minutes after the first reminder". At each reminder interval, for each recipient's survey session, if the survey session is still open the system will resend the last question asked to that recipient. If the survey session is closed, nothing happens. |
Advanced Survey Options
When sending SMS Surveys, these two advanced options are available:
Option | Description |
---|---|
When the survey session expires, submit a partially completed form if the survey is not completed | If this option is enabled, when the session expires, the form tied to the session will be submitted in its current state, ignoring any unanswered questions. This can be helpful to collect survey answers as form submissions even for surveys that are not completed in their entirety. Without this option, only surveys which are completed in their entirety will create a form submission. Partial form submissions are marked in form exports with the partial_submission property set to True. |
Include case updates in partially completed submissions | This option only applies when the above option is enabled. By default, when the above option is enabled and the system submits a partially completed form, it will not perform any actions which update or close cases since many questions could be missing answers. If you wish to still perform all case updates, then enable this option as well. |
Advanced
The following advanced options are available:
Option | Description |
---|---|
Default Language | If you specify translations for your messages and one of your recipients' preferred languages is not in the list of translated messages you provide, the translation associated with the Default Language will be used when sending the message to that recipient. If "Project Default" is chosen, then the translation associated with the project's default messaging language defined on the Messaging > Languages page will be used. |
Filter user recipients | "Filter user recipients" allows you to filter recipient by either user properties or user case properties. The "Filter on" toggle becomes available after you choose "yes", or "json" (if you are a system admin or contractor). When choosing "yes" you can filter on a single property matching a single values. In the value you can reference a property from the triggering case using curly braces (e.g. {dob}) The "json" option gives you more flexibility. The text field expects a json object where the keys are the names of the user properties (or user case properties) to match against. And the values are lists of allowed values. {
"wants_alerts": ["yes", "y", "true"],
"favorite_color": ["rainbow", "{color}"]
} In this example the alert will only go out to users that have their property "wants_alerts" set to either "yes", "y", or "true" and "favorite_color" to either "rainbow" or the same value as the "color" property on the triggering case. If the recipients a groups or other sets of users, The filters will be applied to the members individually. |