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!
I have been working in SIS integration between Canvas and CAMS Enterprise for about a year now.
Currently we have a workflow engine in place allowing us to run multiple SIS import configurations.
We have also developed a custom LTI app to allow faculty to post grades from their Canvas course directly to CAMS, which has been very well received by the registrar and faculty. The next revision of the tool will include a gradebook analysis tool to help faculty recognize potential errors, and a rubric analysis tool.
If anyone else has been working with CAMS Enterprise I would be very happy to discuss hurdles and learning curves, as well as additional ideas for tools that would be helpful.
@dsoares I have interfaced with CAMS Enterprise.
Developing the LTI application really opened the door for us to provide additional tools and reports. Perhaps the most widely received feature (besides grade submission) was the gradebook analysis report: Gradebook Analysis - Error Checking The Gradebook
Once you have your LTI in place, there is so much you can do.
I did see your question here: Passback Integration between Canvas and CAMS , where you mention that you are using UNIT4, which is the latest and greatest version of CAMS. Recently I had a conversation with CAMS and was told that UNIT4 would be implementing LIS (OneRoster and Learning Information Services | IMS Global Learning Consortium ) which would further automate the transfer of data between Canvas and CAMS. I was also told that the UNIT4 database schema is significantly different, and our existing integration querries would not translate.
While discussing the potential of upgrading to UNIT4, it also sounded as though we would lose direct access to the database, and I wasn't clear on the availability of an API. Please share any insight you have on this.
Unfortunately I have not yet had an opportunity to work with UNIT4, and can't speak directly to the claim of LIS.
I hope this helps.
Thanks @garth We are already importing users and course information from CAMS to Canvas via an automated process. Step #2 that you outline above is exactly what we need to do so that faculty can submit grades back to CAMS which is the system of record. I don't know anything about LTI apps and need to read up some more on that. Any pointers (LTI related) would be much appreciated.
We are not using Unit4's latest SIS. I must have miscommunicated. We're still on CAMS.
Again, appreciate your help on this.
Dan
@dsoares I have posted a couple of articles on LTI.
Here is a post with key resources that I found very useful:
I strongly recommend working through the online course that Canvas published:
I have also published a 3 part series on how to get started with LTI:
The articles use .NET for examples, but use technology of your choice, the concept is the same.
Once you get past Part 3, it is really up to you to decide what your LTI application will do, i.e. grade submission.
If you work through the Canvas course you will gain a solid understanding of all LTI variables involved.
Let me know if this helps you.
Thank you @garth for the links. I found the online Canvas course yesterday and will work my way through the links you posted.
Regards,
Dan
Hi Garth,
Thanks for your great posts on Canvas integrations and CAMS Enterprise. We too use CAMS Enterprise and are beginning to implement Canvas college-wide.
Would you be interested in a discussion about possibly sharing your work in this area?
Best regards, Larson
@lrogers3 I'd be happy to talk to you.
Will you be at InstructureCon next week?
If we don't meet up there, let's try to connect in August.
Hi @garth
This is what I love most about the Canvas Community - you said in your original discussion,
"I have been working in SIS integration between Canvas and CAMS Enterprise for about a year now."
Then @lrogers3 says,
"Would you be interested in a discussion about possibly sharing your work in this area? "
And you say,
"I'd be happy to talk to you."
This Community rocks!
Drop by the Community Booth at InstCon, Garth, I most certainly want to meet you in the flesh and shake your hand!
Agent K
@kmeeusen I will most definitely see you in Keystone, looking forward to it.
Hi Garth,
Unfortunately I can't make it this year.
If you're interested and available--either for help OR hire--please reach out to me at lrogers@bfit.edu. I'm currently trying to move fast in laying out options for the custom integrations we need for September--which appear to be exactly what you've already created. So if you're open to it, I'd be very interested in discussing with you first, before enlisting someone else to begin development from scratch.
Many thanks for your quick reply!
Best, Larson
@lrogers3 I sent you a direct message, we'll connect.
Talk to you soon.
@mwatson4 do you have an SIS import working already?
If so, you should have a query in place that organizes your courses by department.
As long as your courses are entered into CAMS, the courses can be imported into Canvas, for any semester.
I have implemented our SIS import to allow us to specify which semesters are eligible for import. By doing this we can wait for the course listing to stabilize prior to import, preventing constant creation/deletion of courses as the course listing changes.
I hope this makes sense.
If you're query is not organizing your courses by department let me know and I can point you in the right direction.
Hello, Garth. We're in the process of setting up SIS Automation between CAMS and Canvas. We've run a test; however, we're noticing issues. We're hoping that you could give us some pointers. Here are some observations from our IT Director. We're using the standard import.
1. Names could become confusing if they’re the same, such as, 5 Jane Smith’s.
2. I noticed courses listed for students either show up as pending or active; not sure why. Could this be an issue with Term dates (which haven't been set yet for summer, but will be set manually).
3. I changed the Academic Status for student to “Suspension for Non-Payment” to see if her courses would be deleted. All her courses still appeared, which is wrong.
4. Our Registrar dropped a student course to see if the next import deleted that course from the student's enrollment in Canvas. Canvas still showed that she is enrolled, which is wrong.
* I realize these observations may not provide you with enough context.
Eric, here are a few quick responses.
1. I totally understand this issue. How do you handle it today in CAMS? You have control over how you present student names in Canvas, you use the import file to tell Canvas how to display the names. If you have a technique you are using in CAMS, your queries to generate the user import file should implement that same strategy.
2. The only "pending" status for a student that I'm aware of is if the student is manually created in Canvas.
If the import is creating the user there are two possible status values: "active" or "deleted" (see definition of users.csv file)
If you are referring to the student course enrollments, there are four status values: "active", "deleted", "completed", "inactive" (see definition of enrollments.csv)
Have you confirmed the origin of student creation for records showing "pending" status?
3. Looking at the definition for enrollments.csv you see there are four possible status values (mentioned in #2). You are defining a status of "Suspension for Non-Payment" which is not a known status to Canvas. In this case your business logic will need to translate your proprietary status to "deleted" or "completed". You will need to test this to make sure you get the desired result.
4. Did you look at the generated enrollments.csv file to make sure the status change in CAMS was properly translated to Canvas? It sounds as though your business logic that is generating the csv file may need to be re-tested and validated. Also, students who are "dropped" from a course in Canvas are placed in the DropBag table and may be removed from SRAcademic. Make sure the query you are running to generate a list of "dropped" students is looking at the DropBag records.
It is also worth mentioning that if records are deleted from CAMS, there is no record to tell Canvas that a status change has occurred. I have seen a student/course be "dropped" in Canvas by deleting the record. When a record is deleted in CAMS, the associated student/course becomes orphaned in Canvas, the integration queries will no longer find that record in CAMS and no change of status will be sent to Canvas. I hope that makes sense. Bottom line: change the status of a student or course, do not delete the student or course.
I hope this helps.
Thanks, Garth! I am forwarding your response to our IT Director.
Hi, Garth. How can we contact you? There are a few things about our CAMS-Canvas integration that we would like to ask your advice. For example, did you guys choose the standard integration setup? If so, how did you compensate for the fact that CAMS does not have a data table for replaced instructors (they remain in the course), and deleted courses (those no longer being offered).
Thanks,
Eric
Hi @garth ,
I work at a CAMS school, and we are very interested in grade passback information from Canvas to CAMS. Specifically, I am interested in the LTI you developed for faculty to push a button and have grades shipped off to CAMS, as you put it.
Would you be willing to have a conversation with myself and our CAMS Manager? This is something we would like to implement, but we do not have access to a programmer at the moment to help us with this.
I look forward to hearing from you.
--
Erik Gustafson
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