Messaging can also be set up to allow users (mobile workers or cases) to initiate interact with the system themselves. For example, a mobile worker may want to register a new beneficiary or a beneficiary may need to request a service or report some information.
This type of functionality is can be setup through SMS Keywords. A mobile worker or case can message the keyword to an HQ phone number. This will trigger a form to be run for the user. Some caveats:
- Only known phone numbers can use keywords. To allow users to register themselves in the system, see SMS Self Registration.
- If a Mobile worker sends in a keyword to initiate a form that normally requires the user to first select a case from the case list, then they will also need to provide the external ID for that case. For example, if you have keyword "edit" tied to a form that updates a case, the mobile worker will need to send in "edit <external_id>", where <external_id> is the external_id case property of the case they wish to open the form for. This is true for both normal keywords and structured SMS.
To setup the keyword, choose the Messaging tab, then In the left side bar, select "Keywords". Click the "+Add Keyword" button.
- Keyword: This is the word that the user will message to initiate the interaction. Keywords need to be unique within a project.
- Description: A description for the keyword does.
- Respond to Sender
- Send: This controls what is sent to the person sending the keyword (a simple message or an SMS survey)
- Survey or Message: The survey or message to send
- Process Incoming Keyword as a Structured Messaged: Choose this option if the user will be able to include additional information when sending in the keyword. This can be used for structured data collection. Details on this are below.
- Notify Another Person: This will let you notify another contact when someone sends a message to the keyword.
- Recipient: The person to send the message to, a mobile worker group or the case's owner if the message was sent by a case.
- Send: This controls whether to send the person an SMS message or a survey.
- Survey or Message: The survey or message to send.
- Advanced Options:
- Override Open Surveys: Sending in this word will override any existing surveys that the user is currently filling out and trigger this keyword.
- Restrict Keyword Initiation: Restrict the type of contact who can use this keyword.
Once you've specified the keyword and form, save the keyword.
Set Up All Questions In One SMS (Structured SMS)
If the you choose Process Incoming Message as Structured Message, users are able to send an SMS that looks like <keyword> <answer1> <answer2> <answer3> etc. The defaults assumes that the user provides answers to each question, separated by spaces. This will work well for most situations. However, there are additional options available:
- Custom Delimiter: This is useful if you want to use something else to separate each answer. For example, if any of your answers have spaces, the default separator of a space will not make space.
- Named Answers: This allows users to skip questions or answer questions in a different order. This works by allowing the user to provide an identifier for each answer. Ex, they would send a message that looks like <keyword> a:<questiona> b:<questionb>
A summary of what a sample SMS will look like is shown at the bottom of the page.
To setup a custom separation character, check the custom delimiter option and choose the characters you want to use to separate each answer. This could be a "," or "|" or even multiple characters like "||".
To use named answers, check the named answer option. You can then specify the name that the user enters, and the question (via xpath in the form) that it maps to. For example, you may want to to map the name "a" to the question /data/age. This is setup as shown. It is also possible to add a character to join the name and the answer (ex. a ":"). This is also shown.