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

How is your SIS set up

Hi Canvas Admins,

We are transitioning from Blackboard to Canvas and are a bit confused as to the best way to push a template to our courses. We're a fairly large institution with over 9,000 course shells per academic semester. In Blackboard the SIS integration pushes a template to all course shells as they're created. Pretty standard.

With Canvas we're still not clear how to replicate this. We have a template but are told that the template has to be coded as a blueprint course(blueprint_id) to be included in the integration.

I did an API call successfully but that won't work because we would have to run the process each time new course shell is created. The alternative is uploading feed files, of course we don't want to get tied up with managing endless csv files.

I'm reaching out to see if anyone else dealt with a comparable situation and wouldn't mind giving a quick summary of how they handled. Or what you think the best solution is. We use PeopleSoft.



7 Replies
Community Coach
Community Coach

Hi  @james_umphres1 ...

I've shared your question with the Canvas Developers‌ and LMS Migration Strategies‌ groups here in the Community in hopes that your question will get some additional exposure.

Community Member

Hi James,

I know of two ways to push templates out to new courses. One you mentions which is blue print‌ and the other is using Canvas's content migration‌ API (Content Migrations - Canvas LMS REST API Documentation ).  Currently my institution is using the latter one.  We have a custom integration between our #sis and Canvas. Each time we create a new course in Canvas we copy a template into the newly created course that we want instructors to use to build their courses off of. 

Hope this helps. 

Community Member

I will start with some language clarification - by template do you mean a generic, empty course with all the tools in their default state? or do you mean a course shell with institution / college / department / course content or layout already populated?

To my knowledge, Canvas doesn' t have a direct integration with PeopleSoft, so you will need to craft something of your own with the APIs or CSV uploads.  If you just need empty course shells, the CSV upload or the course creation API will do the trick (I'm not a developer, so I won't even try to provide details).

If you do want content in the shells, you will need to first run the process to create the course, then run another process to move the content in from another source.  I would suggest the content migration APIs; the Blueprints functionality is rather more elaborate and specialized in what it does.

Community Coach
Community Coach

Hi  @james_umphres1  , good to virtually see you again, my friend!

The person you really need to talk to is a person you are already quite familiar with.  That would be Paul Kremer on the state board. He has set up this functionality with both our legacy system and PeopleSoft.

DM me, and I will DM you his contact info.


Community Member

Hi James,  

I'm grappling with this at the moment also. We're just moving to canvas, and our first pilot courses will start in January.  Less that 60 for now, but we'll have about 7000 there in the summer.

I want to disable a few of the navigation items by default (e.g. collaborations, conferences, files etc).  If teachers want to turn them on, that's fine too, but it gives a clean starting point. 

For the pilot group I ran this:

curl -H "<API KEY>" "<URL>/api/v1/courses/[1-59]/content_migrations" -F  'migration_type=course_copy_importer' -X POST -F 'settings[source_course_id]=60'


That copies course #60  to courses 1-59. (In linux, the shell will iterate though the contents of a square bracket).  Course 60 was blank, but the various navigation items were turned off, which was then replicated to the destination courses.

If you're only creating your courses once at the start of term, something like that should do it.

Our courses tend to appear throughout the year, so I'd like to automate it, so when any new course is created, it would automatically run the course copy also.  Haven't got there yet.  That will probably mean querying the API for newly created courses and then apply the course copy to those. An alternative might be to use a blueprint course at creation time, and then disassociate them, but similarly would need to track which are the new ones.


This might not be the perfect solution, but it is a launching point that does most of what you mentioned in your post. 

Hope this helps!

Looks good Mike!  Thanks!