The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hi all,
Doing some spring cleaning of the Canvas instance I manage. I want to create an Archive sub-account and then move the existing sub-accounts we no longer use into it, is this possible?
I feel like if this isn't a feature it should be considered as it would clean up Canvas a bit especially for Accounts with many sub-accounts.
Thank you
Jai
BCTG
Solved! Go to Solution.
Hi @JaiWOwen,
That file does look good to me. I think UI stickiness might be coming in to play here (where info entered in the UI takes precedence over info uploaded via SIS CSV files). When you upload that file in the UI, try selecting the "Override UI changes" and "Process as UI changes" option boxes and see if it works correctly. I'd suggest doing this in a Test or Beta environment first to lower the risk of breaking anything unexpectedly.
-Chris
Hi @JaiWOwen
If your sub-accounts have SIS IDs, then you can use the SIS imports tool to upload a CSV that places the sub-accounts under different parent accounts. There is some documentation of the file formats at https://canvas.instructure.com/doc/api/file.sis_csv.html , but the easiest way to get a CSV of your existing accounts is to run a provisioning report (Admin > Settings > Reports > Provisioning...) and choose "Accounts CSV" as the report you want to generate.
Hi @mzimmerman
I have been giving this a shot in the test instance, the idea to run a provisioning report was a great shortcut to getting SIS IDs for the subaccounts. Problem is in my tests it accepts all the accounts in the SIS Import but the sub-accounts remain stubbornly under the root account instead of moving under the new parent.
Hi @JaiWOwen,
I have used the method @mzimmerman outlines in the past to move accounts around without encountering any issues. My guess is that something may be slightly off with the CSV you're uploading to Canvas. Is it something you'd be willing to share so someone could take a look? The accounts file shouldn't really contain anything top-secret, but I know some schools/universities would rather not have any organizational data like that shared in the public view.
If all of your accounts/subaccounts have SIS_IDs, it may be easier to use the SIS report instead of provisioning, as you can download that file, make changes in the parent_account_id column then upload it right back.
-Chris
Hi @chriscas,
I've double and triple checked my .csv and can't find an error and it certainly isn't coming up with errors in the SIS import.
I have tried your method of using the SIS report and just changing the parent account ID, still remains stubbornly under the root account not the new parent I am assigning. As it's currently only as test I'm happy to attach the file for someone else to look over it, see if there's an error I'm missing.
The attached file is the SIS report with the parent account ID changed for the test account I'm trying to move
- Jai
Hi @JaiWOwen,
That file does look good to me. I think UI stickiness might be coming in to play here (where info entered in the UI takes precedence over info uploaded via SIS CSV files). When you upload that file in the UI, try selecting the "Override UI changes" and "Process as UI changes" option boxes and see if it works correctly. I'd suggest doing this in a Test or Beta environment first to lower the risk of breaking anything unexpectedly.
-Chris
@chriscas I'm trying to reorganize our subaccounts. I'm testing in the Beta environment.
So, I ran the provisioning report and changed one of the subaccounts and saved the file.
My file is attached.
I went then went to the SIS Import tool and uploaded, choosing the option boxes you mention. I have been waiting for about an hour. It just says "Processing. The import process has started..."
I'm getting nervous that my file is not formatted or correct. Can you have a peek? How long does the Import take? Maybe I just need to sit tight.
Hi @jschreier,
I think it depends on how many courses you have in your instance, as I'm pretty sure moving subacounts sets off a chain of reprocessing actions. I haven't done a subaccount reorg in a long time myself, so I'm going to tag @melodyc_lam here because in the back of my head I recall her talking about this at an InstructureCon, and I know she works for a large school district.
-Chris
@chriscas Thanks! We are a community college and have courses going back to 2013. So, it's not a small amount of courses.
Question: Does the process sound right? Run the provisioning report --> Change the subaccount structure in the .csv--> Save the new .csv --> Upload the saved .csv in the SIS Import (checking the appropriate option boxes)? Yes, right?
Hi @jschreier,
Yes, I believe that should still work. There are some things I've found where I used to be able to use provisioning reports, but they are not rejected when I upload them, and I have to use sis reports instead. SIS reports should always work great, but they only work if everything you're changing has an sis_id attached to it, which I know isn't always the case. I haven't seen it documented anywhere that provisioning report data sometimes works instead of sis report, so it's probably an unintended or unpolished part of code that's allowing it right now and perhaps could be removed at any time.
-Chris
Okay. So reporting back and asking a new question.
Report
Yes! My process worked. Run the provisioning report --> Change the subaccount structure in the .csv (columns should be: account_id, parent_account_id, Name, Status--> Save the new .csv --> Upload the saved .csv in the SIS Import (checking the "Override UI changes" and "Process as UI changes" option boxes).
Our process took approximately 24 hours for the reorganization to complete. We have approximately 40,000 courses in our instance. 100 subaccounts. I would call this a significant reorganization.
Question/Issue
One issue has arisen. We have English courses and History courses from 2012, 2013, 2014 (approximately 2,000 courses). These courses were not re-organized into new subaccounts. Ugh. Why?
When I look in the settings of the Subaccounts holding these old courses, there is no SIS Id. That field is blank. And so, I must conclude that these old courses were created before we had an SIS-Canvas API Integration.
Can you think of a way to get these courses into the correct subaccount?
I must think these courses were manually added to Canvas via an SIS Import file many moons ago. Right?
If the courses themselves have SIS_IDs, then you can generate a report with the courses, update the account_id field for the course, and re-run a course feed with the updated account_ids.
@mzimmerman Great! Yes, the courses have SIS_IDs.
So, in layman's terms, you are telling me to try the following: Run an SIS Export Report ---> Update the account_ID field for the courses --> Save --> Upload into SIS Import. Yes?
Yep, that's pretty much the process. I would try it with a small feed containing just a couple of courses for testing, and probably create feed file containing just those courses that need updating rather than a full course feed.
@jschreier Hi! Sorry for the delay -- I was out of the state on vacation 🙂
Yes, moving subaccounts does trigger a chain of actions where the courses under the subaccounts have to also shift over. I suspect there's also some re-processing in regards to permissions and course settings as well, since settings can be different in the subaccounts (for example, locked settings)
Do note that BETA and TEST run on a 'slower' processing speed and SIS imports, depending on the size, may get stuck in BETA and TEST requiring Canvas Support or an API call to cancel the SIS import.
I did a 186 subaccount restructure (schools) with around 20K courses total across all the subaccounts a few years ago due to a SIS integration change and it took 8 hours in production + letting the UI reflect the changes (which takes a bit too.)
As @chriscas points out, you will want to make sure the subaccounts are processed as "UI Changes" IF your subaccount structure comes from your SIS integration (like mine) -- otherwise on the next overnight SIS sync your changes will get undone.
Just FYI, I'd make sure that all your subaccounts have a SIS ID if you have a large amount of courses in your instance, so that you're utilizing the SIS Import system to handle moves and changes. (That being said, there are some things that do require the API, such as moving courses that don't have a SIS ID.)
Hi @chriscas,
That's done it, this is only a PoC test so I'm working solely on the test site. I'm going to have a look around see if this had any impact on other things before I expand my testing.
Thank you for the help!
Jai
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in