Hi @dkemp
With over 8,000 sub accounts in our Canvas I can assure you it's not that scary. You can make the changes while people are using Canvas. That said, you should have a plan, get all the pieces in order and test it on your Beta and or Test instances first. Accounts can also be moved around later.
How do you manage your integration with Canvas, through CSV or API or vendor integration?
I manage ours with CSV, but the concepts are the same.
Setup and Considerations
- Determine the organization structure
Canvas puts all courses in the root account by default, so the only purpose for sub accounts is organization. You can choose the organizational structure based on what makes sense for your setup or size. We have over 350 schools, each school has a sub account, each school has sub accounts for SIS courses vs Manual Courses for sandboxing, workrooms, content, etc. The SIS Course sub accounts are configured so that when we import courses from the SIS the courses go into the sub account by department including Math, Science, English, Foreign Language. Math does not contain Algebra vs Calculus. This structure allows the department chair to be an 'admin' at that level but no level above it. It allows Principals to be the admin of their School but not above it. It also allows us to create sub accounts for departments or divisions.
The biggest consideration for sub accounts probably comes down to naming convention and logic. If you are going to be using SIS Imports and automation (or even spreadsheet) you'll want to make sure the SIS ID for the account identifies the structure, so the course will get to the right sub account, especially if you have multiple or potential for multiple schools.
If you only have 1 school this isn't such a big deal.
Ours looks like this...
sub-domains#comment-140451
+ We also have a 123MAN account, which is our Manually Created Courses course shells sub account for each school. This is where course shells are kept, and Blueprint would be kept, but Blueprints only work if they are in the account above or equal to the course. That's really annoying, because now schools using Blueprint have a bunch or Blueprint courses sitting in the root of their 123SIS account, which means they show up in our courses listed in our SIS accounts.
+ Each school gets a 123WRK, which is the Workrooms sub account, some call them Sandboxes, but empty non SIS courses where teachers and faculty can work on course content.
+ Having each school in its own sub account gave us the idea to create a sub account Conference course. This is a course in each school root (sub account) that we automate enrollments for. We assign school admin the teacher role and school faculty and staff the student role. This provides a place for resources, documents, files, and discussions within the school within Canvas.
+ We also put more than schools into Canvas, we kinda replicated our entire Org Chart into Canvas, which means top level departments and central office also have a sub account, with a Live Courses and a Manually Created Courses (shells) sub account. This means Employee Business Training, Professional Development, and other departments can use Canvas internally to provide training for staff, or outreach trainings. - Update CSV files
You'll need an Account CSV file, this is important for the initial setup as it helps get everything established visually, test and initiate the reorg in Canvas. You'll also have to update the Course CSV file to include the account_id column, or pass/set account_id in your integration/API.
SIS Import Format Documentation - Canvas LMS REST API Documentation
ex: filter-term-by-role#comment-122704
After your initial reorg, you'll have to ensure that courses loaded/pushed into Canvas from your SIS or integration continue to send the Account ID with any new course. So make sure it's something that can be generated from your data, or that you create some kind of key/lookup to add it. For instance... our account_id's are generated from the internal schoolcode, and department name of the course in the SIS. This means that when we run the daily course import that any new course across the district lands in the correct school and department sub account.
To move accounts later, you would need to adjust the the parent_account_id for that account. This means you can move, delete, and reorg courses anytime in the future. Although, I suggest trying to establish your structure with an eye on the future, but start simply.
- User permissions
Make considerations for any permissions and roles you've granted, or may want to grant. Consider that the role you create can be applied across sub accounts, but that you can't really easily create custom roles at one level without it being available at the others, maybe just not assigned.
...we have used this for our 365+ principals and their APs. How we set it up is that we created a "Staff Admin" role that is view everything. We also adjusted the "Account Admin" role if it's below the top level so that it doesn't have a couple things. We created a training for Canvas Controllers so each school could have 1-3 people with edit rights and the ability to make courses manually (which is off for the normal user). Then we set building admin up as "Staff Admin" so they can see all but edit nothing for their building (each school has its own sub account). We didn't want someone without training or admin approval to have edit rights to a school's environment. We also understood that with a district this large we couldn't really manage all of the potential day-to-day things they might want to do. This was our balance.
Additionally, if they have a Science Department chair that they want to have view access to all science courses, there is a sub account for each department in each school so they could assign that person "Staff Admin" access to just the Science Department and it would allow them to be able to look into any science course and help out. Likewise if a school wanted their counselors to have view access to their school they could assign them the same rights. It gave them ownership of that role to use as needed.
adding-account-role-building-principal#comment-127082
The Staff Admin is assigned using the Admins CSV file, generated from our HR data, I get principal, AP, and school admin, and auto assign the role_id for Staff Admin. This can be done manually in Canvas too, it just takes more time.
If you plan it out and test it, you're basically just moving courses around into different folders. Your users won't notice. Teachers and students will still have access to their courses. Root Admins will not be affected. Your can assign the proper roles at each sub account for anyone who had specific permissions. Root Admins, or any sub account admin will be given the Admin Menu, and can easily jump to the sub account. Sometimes that's not enough, Admin Tray - Sub Account Menu
You can also use themes at each sub account, How do I manage themes for an account?
Themes would allow you to add specific custom JavaScript and CSS, or add widgets that can be used without being applied to the whole Canvas instance. cascading-stylesheetsjavascript-from-main-account-to-sub-accounts#comment-106016
Let me know if you have any questions, happy to assist.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.