Improved analytics - set User Records to 'inactive', not 'deleted'


TL;DR - I would like to be able to set the status of a Canvas user to a new 'inactive' status (currently only 'active' and 'deleted' are available), without affecting the current status of that user's enrolments, so we can still look at that user's historic enrolment and associated interactions through Canvas Data, even after they finishes/leave. 


Currently users can only have one of two states:

'active' or 'deleted'

As per the documentation at SIS Import Format Documentation - Canvas LMS REST API Documentation - When a student is 'deleted', all of their enrolments will also be deleted. 

Canvas Doco Screenshot - deleting users deletes enrolments

It is suggested that setting their enrolments to 'completed', and leaving the student's user record active, is a way to stop students from accessing old courses, but to let the log in to the system.

But what about the opposite of that?

What about when students complete their degree, or perhaps leave part way through, or perhaps a staff member leaves the organisation. Sure - we have Identity Management and Authentication that stops the user from getting in to Canvas. But, we want to be able to record in the LMS that these users are no-longer current/active users (i.e. we don't want to have every user that has ever been in our Canvas system ever with a status of 'active', as the number of users would grow to be unwieldy). However, currently our only option is to set these users to be 'deleted', and when we do this, it results in all of the student's enrolment records being set to deleted - so we can no longer distinguish between past students who actually completed the course, vs those who might have withdrawn from the course part way through. i.e. all of these students will have 'deleted' enrolments for all of their courses, but we want to know if their enrolments were actually 'active', 'completed', or 'inactive' at the time they left.

It seems that being able to set a user record to be 'inactive' (or some similar state that is not 'active' or 'deleted'), such that their enrolment record status is not affected, would be a really simple way for us to be able to distinguish between current/active users, those that were previously active, but that we still need to be able to track their interactions (e.g. due to legal and analytics/reporting requirements for a number of years after the student leaves the University), and then those users which have not been active beyond this, and hence are deleted. 

This has come up numerous times, with slight variations.

  • Given that the issue keeps coming up, it seems that this issue is relevant for a reasonable number of institutions using Canvas.
  • It seems that having another status to for users shouldn't be a massive change to the system - and for people that don't need this functionality, they could just ignore it, and keep doing what they are currently doing.
  • As people start to dive deeper into Canvas Data, and want to be able include interactions of past students when making comparisons against historical data and looking for trends, it seems having this extra status for user records could be really valuable.

Hi Geraint, 

This is a feature that has been rolled out in Canvas now (original idea here: ) 

244536_2017-07-28 08_29_06-Course roster_ Evaluating and Managing Project Risk (003014).png

This is how an inactive student is viewed in the people list of a course - and you are still able to access their historical data, though the student cannot access the course. 

There are teething problems with this - such as, if a student was allocated in a student group when their enrollment status switches to inactive, they remain in the group and take up a 'place' (assuming group has a limit of users). Inactive student currently needs to manually removed from a student group. 

I hope this helps! 

Instructure Alumni
Instructure Alumni

geraint_draheim‌,  @jayde_colquhoun ‌ is correct; "inactive" is already an available status for students.  These guide lessons might prove instructive:

How do I deactivate an enrollment in a course? 

You'll need to check your account and course permissions and how your SIS integration, if any, is configured, to determine why you are not able to access this status.

Since this is already existing functionality in Canvas, we've archived the idea.

Community Novice

Hi  @jayde_colquhoun ,

Thanks for forwarding this idea through. I was aware of this one - but this is subtly different to what we've asked for in this idea.

Basically we would like to have the same functionality (inactive status) for user records, that was implemented for enrolments in the idea you linked.

We're looking at this from a learning analytics historical analysis/comparison perspective.

In the example you gave, you showed two teachers and two students, and one of the students was inactive - but I assume that either: that student is still a current student at your institution, or you never 'delete' students? (i.e. otherwise they would have had their enrolment set to 'deleted', and wouldn't even appear in the Canvas UI).

What do you do when your students leave the institution? We have an identity management process which includes timeframes around how long accounts stay remain active in our systems - after that time elapses, the students are set to 'deleted' in Canvas.

This allows us to see who our current (user status 'active') users are, vs past students who are no longer studying with our institution ('deleted' user status) within Canvas Data and the nice user facing reporting functionality offered to us by Canvas.

But what happens if you want to do analytics across multiple offerings of the course.

Here is an example:

Let's say we offered 'Accounting for Fun' in both semester 1 (March to June) and semester 2 (July to November)... And now let's say that this course was the last course in their 'Studying for fun' degree program. The cohort of students in semester 1 graduate, and many of them leave the University after they complete their study (some may stay on for more study, double degrees, repeats, etc, but in this instance we're interested in those who've completed ).

Fast forward to December, and now we want to do some analytics and compare results and interactions of the semester 1 and semester 2 cohorts. One of the things we want to be able to see is who completed the course (enrolment status 'concluded'), who dropped the course after census date (enrolment status 'inactive'), who dropped the course before the census date (enrolment status 'deleted'). In this case there shouldn't be anyone in the semester 1 courses with an 'active' enrolment status, since the courses are now concluded, so those enrolments would all be 'concluded'.

The problem we have, is that when the cohort studying in semester 1 finished, and left the University, since they were no longer current students at our University, their user records were set to 'deleted' in Canvas (i.e. nothing really gets actually deleted). When this happens - as per SIS Import Format Documentation - Canvas LMS REST API Documentation - EVERY enrolment for each of those student's user records is also set to 'deleted'. So now any analytics we do on these students shows their enrolments as being 'deleted', which is the state they normally inherit if they drop the course before census date. 

i.e. we lose all visibility of which students completed the course, which ones dropped the course, and when they dropped it.

  • Perhaps we could deduce this by just looking at interactions with the course, but it makes the process much more complicated (and you can't tell if the student dropped the course, or if they just didn't participate).
  • Perhaps we could aggregate with enrolment data from our upstream SIS in some external analytics platform. This would be much more complicated and take much more time - and means we can't use the existing Canvas reports in the Canvas UI - so it adds complexity in making this available to our users.
  • Perhaps we could just never delete students from Canvas, so their enrolments never get 'auto-set' to the 'deleted' status? We can stop people who shouldn't log in from doing so through our CAS authentication service. But it does mean that our list of users will then grow in perpetuity, which would become unwieldy, and means that users looking at reports inside Canvas can't see who our current students are.

Adding an 'inactive' status for user records, seemed to be an easy and elegant solution to this (and much nicer than the above 3 alternatives). It also is something that people who don't want/need could easily ignore...

I guess another option would be to allow us to configure Canvas to _not_ automatically set enrolments to 'deleted' when we set users to 'deleted'.

But we'd absolutely welcome other ideas on how we can achieve this, or how other people are handling this scenario! Smiley Happy




Community Novice

Hi stefaniesanders,

I don't think this is already available in Canvas???

Canvas provides 'inactive' status for enrolment records - which is what your two links, and Jayde's link refers to.

We're not asking for a new status on enrolments - I'm well aware of the existing status for enrolments (and we use them).

We're asking for a new 'inactive' status on the user records.

Perhaps my response to  @jayde_colquhoun ‌ better clarifies what I'm talking about here?

The idea I'm talking about here is discussed in the comments in the idea linked by Jayde above ( ) - But that idea only implemented an 'inactive' status for enrolments, not the actual user records themselves (which was the focus of that idea, it's just that there was some discussion at the time around user records too).

And when users get set to 'deleted', Canvas sets all assocaited 'enrolments' to deleted (being able to change that behaviour might also help here).

This has been raised a number of times, but it doesn't seem those ideas and conversations have not been well connected, so it has never really got any momentum.

One such example is: 

Based on Canvas documentation (SIS Import Format Documentation - Canvas LMS REST API Documentation ) and our testing of SIS uploads, it seems there is currently no way to set a Canvas user (NOT ENROLMENT) to be inactive. If I've missed something, and there is a way that users (NOT ENROLMENTS) can be set to be inactive, please let me know.

I'm somewhat frustrated that this has been archived, before there has been the opportunity for the idea to be properly understood and discussed within the community... Is there some way we can get this idea back out there for further discussion rather than just squashing it by archiving it without further discussion/consideration?

Community Novice

To save people's time reading - I'm referring to the users.csv section in the above linked SIS Import Format Documentation - Canvas LMS REST API Documentation 

Smiley Happy

Instructure Alumni
Instructure Alumni

geraint_draheim, we've reopened the idea for Community consideration. So that your idea can garner additional support and achieve better visibility in search results, you might want to edit the title so that people will know you're specifically requesting a change to be implemented in the user records or users.csv.

Community Novice

stefaniesanders‌, Thanks for re-opening that! I'll edit the title, and hopefully that will clarify things a bit, and encourage further discussion. Smiley Happy

Community Contributor

Hi geraint_draheim‌ - the nature of this request is relatively technical and requires detailed explanation so might not be fully appreciated by teaching staff, and may not get the votes it deserves.

Following up on the advice from stefaniesanders‌, perhaps the title needs to be tweaked again to Improved analytics - set User Records to 'inactive', not 'deleted'. That's the desired outcome, and something both teaching staff and administrators share an interest in.

Community Novice

 @travis_cox ‌, thanks for the suggestion! I've changed the name of the idea as you suggest - hopefully this title better describes the idea so that we can get more people involved in the discussion!

Community Novice

A similar concept was raised last year:" modifiedtitle="true" title="Disabling  users at account ...... It seems from the discussion associated with that idea, that some institutions have come up with their own workarounds (e.g. renaming the login_id and email address). Whilst such a workaround can be made to work, across all of your online learning platforms, it can introduce considerable overhead, and can result in many different workarounds in different systems. Ideally, we'd like a way to track the status of our users across all of our systems, and an additional 'status' for user records would help to facilitate this.

Community Explorer

Hi All, I know this a bit old. Was there ever an Idea created on this user account Inactive status?

Community Explorer

This is the thread I've been looking for.

I'd like to manage our licence numbers and creating a new user status ('inactive' or 'archived') seems to be the most straight forward way of doing this. This setting should not allow a student to log in.

Currently, a completed or withdrawn student has their enrolment status edited to 'concluded' or 'inactive', respecively. However that student can still log into Canvas generally - their Dashboard, which our RTO will pay for annually.

We've been advised to update email addresses for user accounts using a SIS import, to stop students from logging in after they complete the course. But this seems arduous, and a shame to override valid data (email addresses) with nonsense email addresses because a better option doesn't exist.

This seems like a really basic function to have - especially as it impacts the RTOs costs.

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.