Treating missing users as "suspended" rather than "deleted" when Diffing?

Jump to solution
emlarson
Community Participant

Have any of my fellow admins explored the possibility of having Instructure's diffing engine treat absent students or teachers as "suspended" rather than "deleted"?  (If so, how would we go about it?)

We might like to have these accounts set to "deleted" eventually, but now that the "suspended" status exists its use would save us a rare but major headache: In some cases when a user's role changes (e.g. adjunct becomes full-time or a Dean returns to faculty) the account is updated by deleting it in the SIS, then recreating an identical one in the correct category. Unfortunately, if this process spans the time when Canvas gets one of its updates, it sees that the account is gone and it deletes the user. That deletes all of their old enrollments.  The user and their current enrollments come back in the next feed once they're recreated in the SIS, but their historic enrollments are gone and it's a pain to get them back (punctuated by rightfully concerned users when they see that all their old stuff is gone). If the diff routine could flip them to "suspended" instead (and then back to "active") that would save some headaches.

There's a lot we can control through the API but there doesn't seem to be a way to tell the diff'ing routine how it ought to behave... unless I'm missing something?

Labels (1)
1 Solution
emlarson
Community Participant

For anyone coming across this post now that the future has arrived: this change was implemented in Summer 2023, we updated our API code to set this variable in our feed, and appears to be working fine in our instance. See Kelly's post (with Instructure's comments) at https://community.canvaslms.com/t5/Canvas-Ideas/SIS-Treat-missing-users-as-quot-suspended-quot-rathe... 

(This may or may not have had anything to do with my following our CSM's suggestion and talking to a very nice Instructure engineer at "Hack Night" during InstructureCon 2023. I explained to him how incredibly useful it would be for us to have this, and how seemingly straightforward it might be to implement. Shortly after that, it was added to a release...)

View solution in original post