This page outlines recommendations for designing and building useful CommCare applications. These are compiled from collective experience in app construction and are only recommendations. Individual projects could vary substantially and the overall best practice is to go through extensive user testing and piloting to identify and correct language, media, or work flows that are confusing.


We have created an excel template that we like to use as an application spec. It's proven useful for defining and sharing the proposed application before starting to build it. If you choose to build your application first in the form builder/HQ, you can now generate a document very similar to the application spec. This is found in the form builder under “advanced” -> “export form contents.” You can then select all and copy the contents into an Excel document. Exporting or working with the content in an Excel document makes it easy to show the overall structure of a form, which is useful for sharing and discussing.

Download the Example Spec


Question ID and Case Property Naming

Have descriptive and consistent naming for your Question IDs and case properties. They are used in data exports and when doing case configuration.  

To test your Question IDs, choose "export form contents" under Tools to view all questions in your form.   

Naming Conventions: Menus and Forms

Users will navigate the application using form and menu names.

Case Management

Case management is what makes CommCare uniquely useful for front line workers. Some important things to consider:

 Case List 

Case Detail

Case Properties


Before deciding to include multimedia in your application, think carefully through what the goal of multimedia will be in your application.  Some applications may not need multimedia (pure data collection or advanced users who don't need support).  


  • Writing a good audio script
    • Audience: Is the audio for the person using the phone or the beneficiary.  This changes the message and phrasing of the audio messages. 
    • Counselling vs. Support: Do you want to use audio to help user answer a question (for low literate users) or as counselling for the beneficiary
    • Language and Dialect: Try record audio from someone who speaks the local language/dialect.  Use simple language that users/beneficiaries will understand. 
  • Validate the audio script: Before you start with the actual recording process, welcome feedback about the audio messages with your field team. Modify the phrasing of the audio messages based on feedback from FLWs, field staff and sector specific experts. Here are some things you can gather feedback on:
    • Verify local expressions being used are relevant, understandable and correct.
    • Confirm that the information in script coincides with field practices. If not, dispel any discrepancies. 
    • Ensure comprehension of technical words, such as medical concepts. 
  • Selecting the voice/speaker: 
    • Good qualities of a speaker include: 
      • Native speaker of desired language
      • Clear voice and enunciation of words
      • Understanding of where to put emphasis in a phrase
      • Reads messages naturally
      • Speaks at a good pace (not too fast, not too slow)
    • Other considerations for persuasive behavior change communication include: 
      • perceived influence or authority in certain kinds of voices (i.e. perceived education, or age of the speaker)
      • preference for male or female speakers
    • Ask speaker or a couple selected speakers to record a few messages. Compare the messages recorded by each and discuss with your team which voice(s) you would like to use in the application. 
  • Prepare ahead with your speaker: 
    • Share the audio script with the speaker a couple of days prior to the recording if possible. 
    • Let the speaker familiarize themselves with the text and give them an opportunity to ask questions. 
    • If possible, make the person who developed the script available to answer questions. 
    • In most cases all small discrepancies with the script is noticed at this point can be revised immediately before the real recording starts.
  • Time allocation for recording: FLWs might not be used to doing such recordings, or are taking time off from their regular work to work with you. They need ample breaks between recordings. Given these reasons, recording may take longer than you expect, so allocate more time for recording than you might expect. Let the speaker know how much time is expected for the recordings. Plan breaks. 
  • Equipment: 
    • We recommend you select a high quality microphone/recording device. 
    • We discourage using laptop microphones. The audio is usually very poor and processing such as noise removal may not be able to improve the quality of recordings made through a laptop microphone. 
    • Some headphone microphones may be suitable. 
    • We suggest you test the quality of the audio recording for 1-2 files before purchasing the device and recording the full audio set. Test out the files on the mobile phone you will be using if possible. 
    • Some recording devices are highly sensitive and pick up background noise easily.  If this is the case with your device, we suggest covering the mouth piece with foam or a cloth. This will help reduce background noise to a large extent.                                        
    • If your recording device records audio files in different audio formats, we suggest you switch the format to mp3 mode on the recording device itself. CommCare applications are compatible with the mp3 format only. Recording the files in this format from the beginning, will save time later on. 
      • If you are using existing media that you want to integrate into CommCare, there are online tools available to convert the audio files from one format into mp3 format.
      • If you forgot to save the audio files in the mp3 format as you recorded them, you can change the format at the time of processing. Once processing is complete, you may export them in the mp3 format.
    • Record a short test take before starting to ensure equipment is functional and audio quality is good.
    • Carry extra batteries on recording day!
  • Recording Set-up: 
    • Bring two printed copies of the audio the messages on paper: one for the speaker and one for the project staff to follow along. Project staff can listen for missed words or mistakes. You may also number the messages in large font for ease of reference.
    • The mouth piece of the microphone should be directly in front of the recording person, it should not be too close to her mouth also.  The front face of the microphone should be facing the person whose voice is being recorded.
    • We recommend that the person who is recording the audio files (the one holding the device, not the person who’s voice is being recorded), use headphones attached to the device to listen to the voice as it is recorded. We have found this is a helpful in determining the clarity of the recording, and will indicate to you whether any background noise or interferences were also captured. Be careful not to use a headphone that has a microphone attached to it, this sometimes creates a disturbance as two microphones are working simultaneously at the same time.

    • Depending on the pronunciation of the speaker you may need to adjust the position of the recorder. Generally, a 45 degree angle downwards from the mouth works well. Additionally, a 1 inch gap between the mouth and the recorder is recommended. Common problems with positioning of the equipment: 

      • If recorder is too close to the mouth, you will likely see large sound peaks that are harder to remove for sounds like "bh", "ph" for example. 
      • If recorder is too close to the mouth, you capture breathing in the script which is hard to remove or reduce in the processing phase. 
      • If recorder is too far from the mouth, you capture other sounds (like your voice or breathing or those of people sitting around you) that you do not intend to.
  • Tips for the speaker during the recording:
    • Have the speaker speak clearly and slowly — slower than feels natural, with good annunciation, discernible breaks between words, and plenty of pauses. 
    • Have him/her speak slightly louder than usual ("project") but not so much that it sounds unnatural
    • Have them read each phrase in order with a short pause after each (~3 seconds). 
    • Have them read the number (in English, if possible) before each phrase, with a short pause (~1 second) between the number and the phrase. 
    • The numbers will aid greatly in identifying which phrase is which, especially if they were recorded in a language other than your own.
    • Do several takes. It's ok. Third time's the charm sometimes!
  • Recording Environment: 
    • Pick a quiet place with little background noise or disturbances.  
    • Both recorder and 'speaker/talent' should remove all accessories which may interfere with the recordings (ex. jewelry, keys, phones). It will be very difficult to remove disturbances in the processing stage. 
    • If recording outdoors, find shade. If in a room, find a well-ventilated room. 
    • Make sure you bring sufficient water to the recording session for your speaker. 
  • Processing:  For processing steps see Recording Audio for CommCare.
  • Managing a large number of audio files: There are many ways one could manage a large number of audio files. Here are some tips to make it easier:
    • Have the speaker or the recorder say the number or title of the audio message that is being recorded at the beginning of each message. Or you can create a sound effect (i.e. a clap or tap on the table) during the recording itself that will denote the start and end of recording different messages or the perfect message. You will visually see this sound peak at the time of processing. 
    • Approach 1: Record all the phrases in one take (one audio file). Don't use a separate file for each phrase. If the recording is interrupted with background noise and the speaker messes up, let the recorder keep running and continue on when possible, starting with that same phrase.
    • Approach 2. Record a separate file for each audio message in your script. Read out the message number at the beginning if you do this.
    • Regardless of which approach you take, first splice out the best audio recordings for each message. These are your rough cuts. Name them according to the question ID/keyword in the Definition File. You can do individual or bulk processing of audio files in Audacity. Instructions here: Recording Audio for CommCare




If data is important for you application, design your questions and case properties accordingly.  Thinking through what you want in the data will help inform the application.  

CommCare Settings

Language Support


Overall Form Structure

General Advice:

Question Types

While selecting a question type may seem very straight forward, there are some interesting usability issues associated with different questions that are important to consider.

Text Input

Text input is the most time-consuming and error-prone type of question. Wherever possible replace text questions with single select questions. If there are a lot of options for a response, consider breaking it down into several shorter lists (i.e. first ask which village, then depending upon that answer ask which part of the village).  Text input questions are especially difficult for any illiterate user and can be intimidating for many users. Where possible these questions should not be required and there should be a workaround to gather the information.

Numeric Input (Integer, Decimal)

Make sure you choose carefully whether you want an integer or decimal number in you data and choose the question type accordingly.

Keep in mind that neither integer nor decimal questions keep leading zeros. If you need to maintain leading zeros choose Phone Number/Numeric ID Question Type

If you need to have a number of a specific length (i.e. for an ID number), put a string-length constraint on the question (see Common Logic and Calculations)



Multi-select questions allow the users to choose more than one answer from a list. While this may seem relativley straight forward we have found that the use of these question types can be extremely confusing and error prone:

As such, we recommend that you minimize the use of multi-select questions by doing the following:

If you do choose to use a multi-select question, we strongly recommend that you do the following:


Logic Properties

Minimize repeating logic and question content. Instead, whenever possible, create a hidden property that performs the calculation once and refer to the output of this variable wherever is required.


Creating a validation condition for input-type questions can be very useful as a way to minimize the risk of users entering erroneous data.  However, you should keep the following in mind:

Display Logic

Required Question

Required questions prevent the user from moving forward in the form without entering or selecting a value. Be careful when specifying a question is required - if the user of the application cannot determine the value for a particular question (ex. they are transcribing from a paper form and the particular value is not filled in), this can prevent them from submitting any data. If necessary, you can add a follow-up question that asks why a particular value was blank.

The types of questions that generally need to be required are ones that "name a case" or that determine what subsequent questions will be displayed.