Hey fellow Admins,
I need to add some bio-CPU aka brain power to a dilemma I am having, hopefully a solution can be found in our collective. I hope I am describing this process correctly. Yes, sorry, it is a lengthy explanation bound to cure insomnia.
Our instance of Canvas has been set up where no one, save myself and staff, can manually populate users into course shells. All of this is performed by the Luminus Message Broker (LMB). We strive to have a hands free system. To limit the taxation of server requests to our instance of Banner, an user report is generated every 24 hours (or updated as needed) by a script. It is from this data report, several other systems and our LMB accesses the SIS data. At this point, the LMB will send over to Canvas import tasks- such as course shell creation and user enrollments.
Trigger for user account creation:
User accounts are created in Canvas when the import task is performed. The trigger is when a user is listed as a student/teacher in a course shell. SIS data is then brought over to create the user account. This starts with the foundation of the user's email address, as Canvas and 3rd party integrations depend on it as a unique identifier for the user. From there additional information is populated in, like users name (first, last), a user ID, SIS ID number, etc.
A fully successful account creation in Canvas is based on having all the SIS data filled out. Because we have several systems that use the same data. Key SIS data fields have a requirement setting in place. For example, a student has to supply an email address in their school application to be accepted. Likewise, students have to have submitted an email to gain their user account access for our SSO (CAS) login system. Without it they cannot receive their username and password. At one time we provided students with auto generated email accounts, but found these accounts were never utilized and figured that the resources could be better used elsewhere - thus killing the service.
Account creation "what if":
A "what if" clause was put in place. This scenario is that if an email was not existent for a user, then the User ID would be duplicated into the email field to fill in the blank. This would ensure that an account was created so that the student can still access their courses. Additionally, it would help us identify students that did not have an email associated with their account. (I believe this was put into place as at the time because emails were not required to be submitted at the time of the integration setup.)
The perfect setup isn't perfect:
Because our SIS requires an email, and our user accounts (CAS portlet) cannot be obtained without an email, one would think the "what if" scenario would never happen. We have discovered that every semester, one or two accounts would be created without the needed email. Not really a problem because of the low numbers. Until you get hit with hundreds of new accounts that have this condition. (Like we did just this summer. AGAIN!)
Monitoring assumed perfection - How to discover how big the headache is:
Under the Canvas Administrative settings (managed root account level), go to your Settings > Reports tab. Click on the Provisioning Configure button. Configure your report by selecting the most recent term and click on Users CSV, (this will pull all of the users in the system even though you specified the term. It also does not pull/expedite the report unless you do select a term). Click on the Run Report button. You should get a notification email when the report is ready for you to download.
Once you have downloaded the report you can open it in Excel. Work your spreadsheet skills to compare the User ID and email address columns. We also perform other checks to see if any other accounts have missing fields. This also is a great way to identify what accounts were created through the LMB/Banner integration to those that were manually created. It is an OCD's dream.
The side effects of the "what if" solution:
When an User ID is duplicated into the email field, there are a few side effects that can occur. Not all of them may happen, but at least one will.
- Users are unable to use 3rd party integrations- as they depend on the users email address to identify them. For example: Turnitin identifies the student submitting their paper with an active email address. Without the email address, Turnitin will fail to work and perform the report on the student's submission.
- Users are unable to edit their user account- Upon a new account creation, Canvas will send the user an email confirmation to the user's email. If the User ID is duplicated into the email field, Canvas will send that the confirmation request. When the user accesses their personal settings they will see this prompt (image right). Thus beginning a never ending loop that cannot be broken by the user.
The fix can be a nightmare:
- All one would need to do is have the user change the User ID to an email address and make that email address the new default. Here is a tutorial we have created to direct them in this action: Add and default your email address in Canvas | SUU Help Center.
- Unless you have a user with the #2 side effect with their account. Then you would need to perform a manual push of data through an API forcing the user's email address into Canvas and attaching it in their account. (I have my Banner admin/resident genius perform this function.) The results of this action sort of works.This results in where the user's account has had the email added as a secondary choice. The User ID is still listed as the default email. At this point the student would still need to perform the change of what the default email is, and then delete the User ID. Sadly, herding cats to perform the simplest of procedures is next to impossible. Like reading directions, notifications or waiting until they cannot submit their assignment or wonder why the instructor has not graded it. etc....
- Like any admin, if there is a solution to laziness, it would be additional work for them.
- One which results in performing a manual process of going into each users account, masquerade as the user, go to their profile settings and perform the default email address process. It is quite quick, but mind numbing for you or your student worker to perform if you have a lot.
- In some cases, the new email has to be verified first before it can be made the default email. So as an Admin, your stuck until that is done by the student.
- If you go into the user's account and see the "what if" side effect 2 prompt, then you will need to have a forced data push for that user via the API. Then go back to step 1.
Uh...the question, finally:
If you haven't guessed, to progressively solve the issue before we get a call for tech support, we have taken to fix our nightmare. We are identifying these user accounts with this condition, and are manually performing the tasks for the student now so we won't later. Again the problem arises from our solution in having the account created. The logic is that it is better to have the problem, than to have to research what is going on when the account just will not be created at all.
- Ideally, there needs to be a better way to handle the "what if" scenario. What would you use?
- We have thought that a generic email to be used instead as it would let the account be made, and would make things easier on the admin side to update the emails that just won't. HOWEVER, this just creates another set of issues as Canvas bases it's user accounts on the email address. We have seen issues with accounts using the same email address (i.e. spouses and parents emails that are used for the student). Ideas? anyone?
A gold star if you made it so far. Thanks for the help.