App User Profiles

The feature allows HQ users to create "profiles" consisting of a set of app user fields, with values. Instead of setting every individual field for an app user, you can then assign a user a profile to automatically give the user the values defined in the profile. This feature was built for projects that use many fields, to save time and reduce room for error when creating and updating users.

Creating Profiles

Profiles are created on the same page as user fields.

From the Users sidebar menu, click Edit User Fields:

Screen Shot 2024-10-23 at 4.14.05 PM.png

This takes you to your user field definitions:

You can add, edit, and delete profiles under the Profiles tab:

A profile can contain values for any or all fields defined for your project. The values used in the profile must pass field validation: for example, if a field specifies choices, any profiles with that field may only use those choices as values.

There is also a setting Make user profiles a requirement for the following user types. The options for this setting are Web Users, Mobile Workers , Both or Neither. This setting defaults to Neither. If a user type is selected, a profile must be provided when creating or editing a user of the selected user type(s). Currently this setting does not apply to bulk upload of users.

Assigning Users to Profiles

Users can be assigned to profiles when they are created or edited, in the same Additional Information area where user data is edited. Each user may only be assigned to one profile. Users can also be assigned profiles using bulk user upload (see next section). Any fields filled out by by the profile will be disabled.

Bulk Download and Upload of Users

Users also can be assigned or unassigned profiles via bulk user management.

The bulk user download contains a user_profile column containing the name of the profile the user is assigned to, if any. This field can be edited and re-uploaded. Blanking out this field will un-assign the user from the profile.

The bulk user download also contains each individual field. Fields that are handled by a profile will be populated in the download. If these fields are edited and then re-uploaded, the upload will fail and report on the conflicting values. Any fields handled by a profile must be either blank or contain the same value used by the profile.

Editing Profiles

When editing a profile, changes are immediately reflected for any users who are already assigned to the profile.

When removing a field from a profile, the field will also be immediately removed from any users assigned to the profile. If you wish to remove a field from a profile but have users retain that value, follow these steps:

  • Bulk download users and retain the file.

  • Blank out the user_profile column for the relevant users to un-assign them from the profile.

  • Edit the profile to remove the field.

  • Re-upload the original users file. This will reassign the users to the profile, and it will also add the removed field to each user's user data. Note that between the time you do the upload to un-assign users and the time you re-upload the file to re-assign them and add the removed field, users will be missing that field.

Deleting Profiles

Profiles may not be deleted until all users have been unassigned from them. This un-assignment should be straightforward to accomplish with a bulk user upload.

API

The user API does not support user_profile like bulk upload does. Profiles can be updated using the user API by updating the user_data field commcare_profile with the profile id.