Community Participant

Moving Subaccounts within an Existing Hierarchy

Accounts & Subaccounts & Sub-subaccounts, oh my! 

My institution has an established set of subaccounts within the root account that we have worked within for the past five years. We have been expanding recently and are now investigating potentially revising our hierarchical account structure. We would like to be able to move an existing subaccount to nest it within a mid-level subaccount in order to help manage admin permissions, reporting, etc. I know we can create new subaccounts and we can delete subaccounts after moving courses out of those subaccounts, but that sounds like a round-about way of achieving this goal. 

For example:

Here would be a model of our existing structure:

  • Root Account
    • Subaccount 1
    • Subaccount 2
    • Subaccount 3
    • Subaccount 4

Here is a model of what we would like to move to:

  • Root Account
    • New Subaccount A
      • Subaccount 1
      • Subaccount 2
    • New Subaccount B
      • Subaccount 3
      • Subaccount 4

My questions are:

  1. Is it possible to move a subaccount to nest it into another subaccount? (If so, how?)
  2. I'm assuming that, if this is possible, it would not impact courses (live or concluded) that live within those subaccounts. Am I correct in that assumption? If not, what should I be wary of?
  3. Is there something I'm not thinking of that you would urge me to consider? 

Thank you very much for your help! 

Labels (1)
5 Replies
Community Participant

If there is a more elegant way to do it, I am not aware. We recently undertook this task and I used the provisioning report How do I view reports for an account? and API (using Postman), but you could probably use SIS import How do I import SIS data to a Canvas account? instead of API. I just leave the SIS to the programmers and the API is pretty familiar to me at this point. First, update the subaccount field in the list of courses you want to move. I tested the process with several small baches in my Test instance and then, once I was confident that the changes were happening correctly, I began in the Production instance. 

Community Champion

Hi  @robert_mandell ‌, I did a major sub-account restructuring for our institution (over 300 sub-accounts) and used the SIS Import features to upload accounts.csv files where I updated the parent account field.  This moves the sub-account along with all of the courses within it.  The more courses in it, the longer it will take.

For details on the formatting of the csv, find info on this document under the accounts.csv section...

SIS Import Format Documentation - Canvas LMS REST API Documentation 

I've provided detail information here in the community before and will try to track down that post to share with you. Here are some things quickly off the top of my head...

  • Document your nested structure in a document or spreadsheet first
  • Establish a standard SIS_ID naming schema to identify the hierarchy
  • If you created sub-accounts manually (in the interface) you've got to first go into each one and manually assign it a SIS ID.
  • Test your csv import files in TEST or BETA first.
  • If you're moving it into a sub-account that already has LTI tools installed at that level, they will automatically add to the course shells that you move there. We ended up with a few that had duplicates since they had had the LTI tool added at the course level in the previous structure.

I'll see if I can track down that other information, but I wanted to get you an initial response quickly.

Here is the other Canvas community thread that has my responses with a little more detail on process in Comments. 


Some other good input and considerations from community members there as well.

Community Contributor

@robert_mandell@vanzandt@rebecca_william  - Thank you all for this. We are about to undertake a massive restructure and this thread is exactly what I need to point me in the right direction.

However, I was wondering if any of you had screenshots or dummy .csv files that you used and could share out with me? I get the concept, but implementation is tricky. Thank you in advance!

0 Kudos

Yes, I would certainly be willing to share examples. Send me a DM with your email address on here, and I'll try to get something to you this week.  In general, the format of the csv will be the same as if you export an Accounts provisioning report, but you can only specify the immediate parent account of each sub-account so it does get a little complicated. I established a sub-account naming schema which helped me keep track of things better in the multi-layer nesting.

It looks like they archived the community link where I had posted more detailed information about the process I used, so I may have to do some rethinking on that, but most of the important lessons learned are listed here in this thread.

Definitely ask if you have more specific questions.