[API] Personal Pronouns should be editable through Canvas API without being editable in the UI

This idea has been developed and deployed to Canvas LMS

Currently, in order to edit a user’s personal pronouns via the Canvas API, both “Enable Personal Pronouns” AND “Allow users to change their pronouns in Canvas” have to be enabled in the Account settings. Per Instructure’s Support and the documentation of the Users API, this appears to be intended behavior. This does not make logical sense and creates a significant barrier for institutions attempting to create a centralized process for supporting equity and inclusion on campus. 

Account Settings that control the Personal Pronouns feature must both be enabled to edit Personal Pronouns via the APIAccount Settings that control the Personal Pronouns feature must both be enabled to edit Personal Pronouns via the API

 

Desired Behavior

Our institution has two systems of record for personal pronouns at the college: Banner for our students and Workday for our Faculty and Staff. Setting personal pronouns in these systems then updates the information in other systems. This ensures that users know how to change their personal pronouns and what to expect when they do so. 

The desired behavior follows these steps: 

  1. User enters personal pronouns in the system of record for their role at the institution
  2. Behind the scenes, our custom integration runs and uses the Canvas API to update pronouns in Canvas accordingly
  3. In Canvas, “Enable Personal Pronouns” is enabled, but “Allow users to change their pronouns in Canvas” is not enabled
  4. User is able to see their personal pronouns reflected in Canvas, but cannot edit those pronouns in Canvas
  5. To make any further changes, user must go back to the system of record and make changes there

This ensures consistency across all campus systems and ensures that members of the community only need to enter information once.

 

Current Behavior

Currently, Canvas follows these steps for a user’s personal pronouns:

  1. User enters personal pronouns in the system of record for their role at the institution
  2. Behind the scenes, our custom integration runs and uses the Canvas API to update pronouns in Canvas accordingly
  3. If “Enable Personal Pronouns” but “Allow users to change their pronouns in Canvas” is not enabled:
    1. The information sends to Canvas with no error, but no changes are reflected in the Canvas user interface
  4. If “Enable Personal Pronouns” AND “Allow users to change their pronouns in Canvas” are both enabled:
    1. Pronouns selected in system of record are reflected in Canvas
    2. Users can edit pronouns in Canvas user interface without going through the system of record
    3. Changes made in Canvas are not reflected in any other campus system, leading to miscommunications, frustration, and harm

 

Current Solution

The solution proposed by Instructure’s Support is to follow these steps:

  1. Have an admin manually check the box to “Allow users to change their pronouns in Canvas”
  2. Run the Users API to import pronoun data
  3. After the import finishes, have an admin manually UNcheck the box to “Allow users to change their pronouns in Canvas”

Support sums this up with the assurance that “This does not remove the pronouns that have been imported, however at this point the option to edit these is locked.”

However, while that’s accurate, this solution will not work in a real world environment.

This adds an extra burden on staff to coordinate these settings changes and the API call. It also guarantees that there will be a delay between members of the community selecting personal pronouns in the systems of record and those being reflected in Canvas, during which the chances that they will be referred to by incorrect pronouns are high. This will result in user frustration and real world harm. There is also a chance that while the API call is running, a user in the Canvas user interface may discover the option to edit pronouns in Canvas. Any changes they make there may either be lost or not update in other systems, similarly resulting in frustration and harm.

 

Proposed Solution

The proposed solution to this problem is simple: separate the Users API from the “Allow users to change their pronouns in Canvas” Account setting. If "Enable Personal Pronouns" is enabled in the Account settings, the API should be able to edit personal pronouns, regardless of whether or not “Allow users to change their pronouns in Canvas” is also enabled.

That will allow updates to run as soon as users make changes in the systems of record without any manual intervention from admins. It will ensure that members of the community are able to accurately and respectfully communicate with each other during online discussions and other class interactions without significant delays and oversight.

5 Comments
Stef_retired
Instructure Alumni
Instructure Alumni
Status changed to: Open
 
PatrickStoddart
Community Explorer

Just wondering if this issue has moved at all?
We would agree that this seems a bit obtuse and works against an institution trying to centrally manage gender pronouns as a normal attribute for any staff or student user rather than as a special case.

James
Community Champion

@korina_figueroa 

It seems like it would be simpler to enable pronoun support, disable the ability for people to change it, and then send the pronoun information through a SIS import. This satisfies all of the conditions of your desired behavior.

The minimal users.csv file has four fields required: user_id, login_id, pronouns, and status. You don't have to supply any other values, which will keep the existing values in Canvas.

SIS imports can be automated through the API, but instead of making one call for each student that needs changed, you send one file with all of the changes. It's still through the API so it can be automated, it's just not through the Users API.

What is happening with the API is that the same call is made whether it is an admin making the change or a user making a call. The wording on the selection is a bit misleading. It does prevent the user from changing their pronouns, so it is truthful, but it also prevents others from changing it through the Users API. It does not prevent others from changing it through a SIS import. Regularly users cannot do their own SIS imports, so the statement is still correct.

Another approach would be to look at who is making the API call and if they have admin rights, let them go ahead and change the pronouns. That might involve some permissions as well and there is probably some reason not to do this that I'm not thinking of.

Currently, the way that Canvas has for you to set pronouns that come from a SIS is to use a SIS import.

ProductPanda
Instructure
Instructure
Status changed to: Archived
Comments from Instructure

As part of the new Ideas & Themes process, all ideas in Idea Conversations were reviewed by the Product Team. Any Idea that was associated with an identified theme was moved to the new Idea & Themes space. Any Idea that was not part of the move is being marked as Archived. This will preserve the history of the conversations while also letting Community members know that Instructure will not explore the request at this time.

KristinL
Community Team
Community Team
Status changed to: Completed
Comments from Instructure

 

For more information, please read through the 2024 API and CLI Change Log