cancel
Showing results for 
Search instead for 
Did you mean: 
crodgers
Community Participant

How to add SIS ID's to manually created accounts?

Currently, I have about 500 manually created user accounts that do not have SIS ID's. I'm trying to figure out a way to add SIS ID's to these existing manual accounts through SIS imports. However, each SIS import does not update the existing account, it just creates a brand new account.

Here is an example of how it would look in Canvas.

MANUALLY CREATED ACCOUNT

NAME: JOHN DOE

EMAIL: jdoe@email.com

SIS ID: 

SIS IMPORTED ACCOUNT

NAME: JOHN DOE

EMAIL: jdoe@email.com

SIS ID: 1234567890

Is there a way to populate the SIS ID for over 500 manually created user accounts? 

UPDATE FRIDAY 06/21/2018

First off I want to thank everyone here for their suggestions on how to resolve this issue.  Your feedback is greatly appreciated.

Yesterday, I had a chance to talk with my CSM. They stated that they have a script they can run that can populate all of these accounts with their SIS ID. All I need to do is send them a CSV file with the Canvas User ID along with the corresponding SIS ID.

If anyone out there is experiencing this issue, contact your CSM and they might be able to help you out. 

17 Replies
mbuonato
Community Contributor

You can use the user csv template like the one below...

The user_id is the sis id for Powerschool users it is Student_dcid#

canvas_user_iduser_idintegration_idauthentication_provider_idlogin_idfirst_namelast_namefull_namesortable_nameshort_nameemailstatuscreated_by_sis
371234567890jdoe@email.comJoeDoeJoe DoeDoe, JoeJoe Doejdoe@email.comactiveFALSE
crodgers
Community Participant

Melissa, thank you for sharing but I tried doing that and it creates a separate account it does not update the account that already exists in Canvas.

Let me explain, here is an example image of a Canvas user account that was manually created in Canvas through the People tool.

Image of a manually created account in Canvas.

Here are the details of this manually created user account if the image is hard to read.

FULL NAME: Jason Rodgers

DEFAULT EMAIL: test@gmail.com

CANVAS USER ID: 8664044

Notice that there is no SIS ID listed for this account. This is one example of over 500 manually created user accounts.  The goal is to update all 500 user accounts with their correct SIS ID in the most efficient way possible. 

CSV FILE

Here is the screenshot of the CSV file that will be used for the SIS Import.  The thought process is that this file will update the user account that already exists in Canvas.

Image of a user import CSV file

Here are the key details of this CSV import if the image is hard to read

CANVAS USER ID: 8664044
(notice that this is the same Canvas User ID that matches the manually created user account.)

USER ID (SIS ID): 4441234576

FULL NAME: Chris Rodgers

EMAIL: csv@gmail.com

The goal is to have the information listed in this CSV file update the existing Canvas user account (8664044)

SIS IMPORT RESULTS

Here is the result of the SIS import test.  The CSV file did not update the existing user account (8664044). It created a brand new account. Which is not the result I was looking for. 

Take note that if the CSV file had the exact same email address as the manually created user account, it would send an email to the faculty member asking them to merge accounts.  This something I would like to avoid at all costs. 

Ignore the account that has an Avatar.  That is my original account.

People records in Canvas

Hopefully, this explanation made sense. Any advice on how to resolve this issue of adding SIS ID's to manually created user accounts is greatly appreciated. 

dgrobani
Community Champion

 @crodgers ‌,

I don't think it's possible to update those user accounts via SIS import. The SIS import documentation indicates that the SIS ID is the unique identifier for a user. With all your SIS IDs being blank, there's nothing for the import to match on.

I hope someone proves me wrong!

crodgers
Community Participant

I was hoping if I referenced the same Canvas User ID in my CSV file that would work but I have a feeling you might be correct. 

mbuonato
Community Contributor

Sorry I didn't realize you had these accounts in Canvas already.

william_diehl
Community Participant

You could probably update the SIS ID for these existing user accounts using REST... I know it's a user attribute that you can set/update using the REST API. If you're not already using REST for other things, this might be a challenge for you (my apologies for not offering any code sample), but something to consider. You'd need to loop through your users (you could hard code a list of Canvas IDs or use the API to find the user) and set each account's SIS ID attribute. If the SIS ID is assigned to another user, you'd get an error result.

Just tested it in REST and it's a no-go. Only the CREATE USER end point allows you to define an SIS ID attribute. The MODIFY USER end point does not. So apparently, you have to define an SIS ID at creation or not at all. Which is odd, because you can edit it directly in the Canvas administrator web interface.

EDIT2: The Canvas administrator web interface updates the user object's PSEUDONYM OBJECT which has a separate Canvas ID. The update is performed via POST to /users/[userID]/pseudonyms/[pseudonymID] with the parameters pseudonym[unique_id], pseudonym[sis_user_id], and pseudonym[integration_id] in the POST body and not in the URL itself.

I couldn't find any documentation in the REST API for finding or editing pseudonym objects.

What if he ran the SIS import to create user accounts with sis_ids then used the merge_into API to merge the accounts?

The merge_into API uses the Canvas user_id not sis_id to complete the merge. See: Users - Canvas LMS REST API Documentation  > Merge Users

crodgers
Community Participant

Melissa, no apologies needed.  I should have done a better job in explaining my issue to begin with.  I greatly appreciate your feedback. 

82711010bc61080
Community Participant

This is great to know.  We hit this issue a few months back, however, not 500 so we just manually updated them!  I definitely will keep this in mind going forward!  Thanks for posting this question Chris.