Clever LMS Connect - LMS Provider Differences
While LMS Connect provides a consistent integration framework across LMSs, certain fields within assignments and submissions may behave differently depending on the platform. This documentation highlights those LMS-specific differences—such as how due dates, section mappings, or submission statuses are interpreted—so you can anticipate any edge cases or platform-specific behaviors when building or troubleshooting.
Canvas
Assignments
Behavior | Description | Notes |
---|---|---|
“Submitting” in UI shows “nothing”/is blank | When the assignment was created, the submission_types field was likely left blank. Confirm with a GET call to /v3.1/sections/{id}/assignments/{id}. | Make a PATCH call to /v3.1/sections/{id}/assignments/{id} and update the submission_types field to resolve. |
Unsupported Fields | start_date, term_id | start_date - In Canvas, the start_date is set to be the same as display_date. Use display_date instead. |
Updating assignment state | When creating or updating an assignment, the state value is ignored. E.g., POSTing to /v3.1/sections/{id}/assignments with state in the request body, or PATCHing to /v3.1/sections/{id}/assignments/{id} with state in the request body. | Canvas does not support updating the state field on an assignment. The field is ignored if provided in the request body when creating or updating an assignment. The assignment state value is automatically updated to specific values based on certain actions. For example, when a teacher un-publishes an assignment in Canvas, the state value will be updated to draft automatically on the API. The default state value after creating an assignment is open. |
Submissions
Behavior | Description | Notes |
---|---|---|
Missing “Max Attempts” value in Canvas | When the assignment was created, the max_attempts field was set to “-1”. Confirm with a GET call to /v3.1/sections/{id}/assignments/{id}. Resolution: Update the max_attempts for the assignment to a positive integer value. | If max_attempts is not included in the POST request body when creating the assignment, max_attempts is defaulted to “-1” |
Unsupported Fields | grade, grader_id, state, override_due_date | - grade - Canvas only supports grade_points. grade will be ignored if provided in the request body when updating a submission. - grader_id - Canvas doesn’t support the grader_id field, so the field is ignored if provided in the request body when updating a submission. - state - Canvas does not support updating the state field on a submission. The field is ignored if provided in the request body when updating a submission. - override_due_date - Canvas does not support updating the override_due_date field on a submission. The field is ignored if provided in the request body when updating a submission. |
Updating Submission state | state will be automatically updated to submitted when an attachment is included in the request body when updating submissions. | Canvas does not support updating the state field for a submission via API. The field is ignored if included in the request body when PATCH updating a submission. Canvas does not support the returned or reclaimed field at this time. |
Empty string values ignored for grade_comment field | When updating a submission, if a grade_comment value has been previously provided, then an empty string is passed in a new PATCH call, Canvas ignores the empty string. | This appears to be Canvas-specific. Testing with other LMS’s yielded different results: - Schoology: updated the grade_comment value to be an empty string - Google Classroom: Ignores the grade_comment field |
Updating submissions on draft assignments (state: draft) is not supported | When updating a submission for an assignment that has a state value of draft, the Clever API returns the following message: "code": "UNSUPPORTED_OPERATION” "Canvas does not allow updating submissions on unpublished (draft) assignments." | All assignments must be published in order to update submissions. If an assignment has a state value of draft, only the teacher can change this value to open by publishing the assignment via the Canvas UI. |
Google Classroom
Requires districts to have the GCRI integration with Clever
Assignments
Behavior | Description | Notes |
---|---|---|
Cannot update assignment attachments | Google Classroom does not allow updating assignment attachments. Field is ignored if included in PATCH request body. | |
due_date not required | due_date is not a required field in Google Classroom– a teacher may remove it. |
Submissions
Behavior | Description | Notes |
---|---|---|
Updating submission state | When updating a submission via PATCH call, a state value must be present to update it from the default value of created. | Google Classroom is the only LMS that supports updating the state value for a submission. If the field isn’t provided when updating the submission, the Clever API will return the most recent value. For example, if state is set to created, and an updated value isn’t provided in the update submission request, Clever will return the value created. Auto-update actions: Submission state will automatically update to submitted when the attachments array is included in the PATCH request body. |
due_date not required | due_date is not a required field in Google Classroom– a teacher may remove it. |
Schoology
Assignments
Behavior | Description | Notes |
---|---|---|
Term_id required | In Schoology, term_id is required for assignments. | term_id in this context refers to the Clever generated term ID. |
Only text attachment type supported for writes | In Schoology, only the text attachment type is supported for writes (link is supported for reads). | |
Start_date field not supported by Schoology | Error message when request includes start_date field: "code": "FIELD_IGNORED", "message": "The 'start_date' field is not supported by Schoology, and will be ignored." |
Submissions
Requires LTI SSO set up by the district and a successful LTI session by the end user.
Please refer to this page for more information: Clever LMS Connect - Submitting Schoology Submissions
Behavior | Description | Notes |
---|---|---|
Updating submission state | When updating a submission via PATCH /v3.1/sections/{id}/assignments/{id}/submissions/{student_id}, the state value is ignored, if included in the request body for the call. state will be automatically updated to submitted when an attachment is included in the request body. state will be automatically updated to returned when the grade_points field is included in the request body. | Schoology does not support updating the state field for a submission via API. The field is ignored if included in the request body when PATCH updating a submission. The reclaimed value is not supported by Schoology. |
Unsupported Fields | state (see above) , grader_id, grade, flags, extra_attempts, override_due_date | |
grade field defaults to the grade_points value | grade defaults to the grade_points value rather than using the string value provided in the PATCH update submission request. | e.g., PATCH request body has "grade" : "B" and “grade_points” : “85”, but when making a GET call to view the submission, grade returns as 85, which was the grade_points value in the PATCH request. |
Only text attachment type supported for writes | In Schoology, only the text attachment type is supported for writes (link is supported for reads). | |
Assignment submissions not able to be PATCHed due to grading category | Submission will return 200 OK, but submission will not show up in Schoology. | Schoology has a concept of grading_category (shown as “Category”) that needs to be manually assigned by the teacher in the UI. This is found in Schoology, under Course > Assignment > gear icon > Edit > Category. |
Updated about 2 hours ago