Community

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
crodgers
Community Member

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 Member

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. 

mbuonato
Community Contributor

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

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

dgrobani
Community Member

 @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!

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. 

william_diehl
New Member

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

That would be a brilliant solution if it works! I haven't tried the merge user functionality yet, but it certainly looks like it would work! Thanks for that excellent suggestion.

I've used the REST API to edit the SIS ID for a user's login. The "edit a user login" path allows for that. Logins - Canvas LMS REST API Documentation 

I don't understand why the SIS ID is per-login rather than per-user. In my testing, the SIS ID (`sis_user_id` in the API) has to be unique across all logins. If a user a has multiple logins -- say, one for canvas native authentication and one for SAML -- where are we supposed to put the actual SIS ID for (say) PowerSchool?

0 Kudos
maguire
Community Champion

I can confirm that it is associated with the login, as one can see from the image attached.

Here we can see that the user has two sets of login information, one associated with the SIS ID: z6 and the login_id s6

and the other login_id: fram@localhost without a SIS_ID.

So there can be multiple login_id that each have a SIS_ID and that all concern a given user_id.

 

Tags (3)
0 Kudos
James
Community Champion

Hey Chip, your images aren't coming through. They show up as a grey triangle with a yellow background.

Are you copy/pasting or uploading files? I can't do either, I've posted too much content over the years.
0 Kudos
maguire
Community Champion

@James, I uploaded a file and it did not seem to work, now I have attached the PNG file.

 

82711010bc61080
New Member

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.

How did you add the sis id manually?

0 Kudos
prabhnoor_kaur
New Member

What is a CSM?

0 Kudos
dnimri
Community Participant

Customer Success Manager. Each Canvas using school should have a CSM assigned to them from Canvas.

0 Kudos