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.
We are really trying to automate all of our rostering in Canvas. We have the API getting set up to roster students, classes, etc from Skyward.
We have a couple of use cases where we want to auto roster courses in Canvas that are NOT courses in Skyward. For example, we want to automate the rostering of staff-only PD courses with any adult staff members in the district. Of course, we can do this by periodic CSV uploads, but we are really trying to automate everything.
Any thoughts on how to do this?
Hi,
Are all of your staff provisioned to Canvas via Skyward or only teachers?
One thing to consider is that a lot of SIS only contain teacher staff, not all district staff. In this case you might need to source your employees from an HR system or View of that data.
Then you can write your own API enrollment script to those courses. You can also automate it with CSV uploads via the api. Either way, the script could be run daily or at whatever frequency you wish.
https://canvas.instructure.com/doc/api/enrollments.html
https://canvas.instructure.com/doc/api/sis_imports.html
https://canvas.instructure.com/doc/api/file.sis_csv.html
We do this with our SIS import process. Employees are created, added to their schools default course, and a global canvas resource course. We can also use the same logic to create a new PL course on the fly for each school and enroll all staff for each location to their respective schools PL course. We do this with CSV's as it's faster and easier to manage.
Valid point. Not all of our staff are in Skyward. I've not written an API before, but I will dig into that. Thanks.
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
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.