You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

In the normal CommCare model, each CommCare user has their own list of cases.  If David registers the pregnant mother Monica on his phone, the case "Monica" appears in his case list.  Monica will appear only in David's case list – no other mobile user can follow up with Monica.

Case Sharing allows mobile users to share case lists.  Some common use cases:

  1. David works with another community health worker, Maria, who has the same CommCare application on her phone.  David and Maria visit the same community members. Sometimes David will register a new pregnancy, and Maria will follow up with her later.

  2. David refers sick clients to a local clinic.  A nurse at the clinic has a phone with a different CommCare application for sick community members.  The nurse will want to see why David referred the patient, as well as all the data that David has collected about the patient in the past.  David will want to know the outcome of the visit.

Here is how to enable case sharing:

Make sure your application(s) are located in the same project space. 

  1. Turn on case sharing for your application(s)
    1. Click on Settings
    2. Check the "Case Sharing" checkbox

  2. Add your users to case sharing groups.  Users in the same case sharing group will share cases with each other
    1. NOTE: all users must be in exactly one case sharing group.  Users not in a case sharing group will cause errors.  Users in more than one group will cause errors if they ever create a case. You can add a user to more than one case sharing group if they are only reviewing or modifying existing cases, never creating new cases.  For more on this use case see: Assigning cases to one of multiple groups
    2. Go to the "Settings & Users" page
    3. Click on "Groups"
    4. Add a group
    5. Click "Edit Settings" and turn on Case Sharing
    6. Add all users who will share cases with each other to this group.

  3. Multiple Applications: If you're sharing cases between two or more different CommCare applications, make sure the "case type" matches between all the modules you want to share case lists.


You can structure your case sharing groups such that a "supervisor" user is in multiple case sharing groups. If you are on the Standard plan or higher, this is easy to set up through Organizations. For more information, see Assigning cases to one of multiple groups


Often if you have an error in case management (i.e. you did not follow one of the steps above) you will see a message indicating that your user is not in a case sharing group or is in more than one case sharing group.

If you see this, go back and check your case sharing settings. It is likely that your user is not in exactly one case sharing group.

Case Sharing FAQs

Q: If a case was created before case sharing was turned on and the case sharing group was created, does that case get reassigned automatically to that group's owner id or does the case retain its original owner id?

A: The case should retain the original case owner ID

Q: What is the difference between user id and owner id?

A: The owner ID is the id of the user or group who owns the case (the case will appear on their application's case list). User id is the id of the user who last submitted a form to the case.

Q: What happens if two mobile users are sharing a case, are both working offline, and both make changes to the case?

A: Once the forms are submitted they will update the case in the order in which they are received (according to the server received time). If one of the forms closed a case and a subsequent form attempts to update that case, the case will not be reopened but the (now closed) case will be updated.

Q: Is there a way to specify case sharing for different groups by module or a specific case type?

A: Unfortunately this use case is not currently supported in the app builder. However, you can configure this manually by specifying the "owner_id" property for new cases which you don't want to share to be set to the id of the current user (defined in the form as a hidden value) in the normal case property configuration screen. That will result in those cases not being shared.


You can retrieve the value of the current user id inside the form by setting its calculated value to be: instance('commcaresession')/session/context/userid


  • No labels