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!
We're onboarding with Canvas. We’ve developed and are started running a scheduled job which generates and zips up the SIS Imports CSV data files and creates a SIS Imports job via Canvas REST API. Single term at a time. Our in-house system is the system of record for courses, sections and enrollments. We'd like Canvas to track what we send from our SIS. In other words I would like each term's enrollment.csv to update enrollments in Canvas such that only students (and faculty) in the enrollments.csv are enrolled in the Canvas course offering after the job completes. Diff mode sounds more complex and a batch mode is preferred since in-house SIS is authoritative.
We're using SIS Imports API, and setting batch mode to true and submitting the batch_mode_term_id of Canvas term we're targeting. Where "#termID#" is our SIS ID for term the job is targeting and interpolated at runtime.
After the job successfully completes the job details appear to be correct.
I expected students dropped in our in-house SIS (and are not in new enrollments.csv file as expected) to subsequently be dropped in Canvas after SIS batch import. But when I check our Canvas web site, the students are still enrolled. My question is do I not understand batch mode, or am I doing something wrong when creating the SIS Imports job?
Could it be that the student enrollments that you are checking were created in a different way to this process?
If they were manually added through the UI then they will be marked as sticky and so if you want to remove them you will need to overwrite the sticky-ness.
Thank you. We'll keep testing. I thought I saw the enrollment sticking, but maybe it was 'pilot error' as we have several people using our SIS dev environment and the scheduled job running in background pushing data to Canvas beta site at same time. Our Canvas representative concurred that in batch mode with the term ID set the enrollment should be added if present in the enrollments CSV and dropped if not as documented.
Hi there... Are by any chance those enrolments associated to sections crosslisted to another course, which is allocated to a different term?
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