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

BehaviorDescriptionNotes
“Submitting” in UI shows “nothing”/is blankWhen 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 Fieldsstart_date, term_idstart_date - In Canvas, the start_date is set to be the same as display_date. Use display_date instead.
Updating assignment stateWhen 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

BehaviorDescriptionNotes
Missing “Max Attempts” value in CanvasWhen 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 Fieldsgrade, 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 statestate 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 fieldWhen 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 supportedWhen 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

BehaviorDescriptionNotes
Cannot update assignment attachmentsGoogle Classroom does not allow updating assignment attachments. Field is ignored if included in PATCH request body.
due_date not requireddue_date is not a required field in Google Classroom– a teacher may remove it.

Submissions

BehaviorDescriptionNotes
Updating submission stateWhen 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 requireddue_date is not a required field in Google Classroom– a teacher may remove it.

Schoology

Assignments

BehaviorDescriptionNotes
Term_id requiredIn 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 writesIn Schoology, only the text attachment type is supported for writes (link is supported for reads).
Start_date field not supported by SchoologyError 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

BehaviorDescriptionNotes
Updating submission stateWhen 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 Fieldsstate (see above) , grader_id, grade, flags, extra_attempts, override_due_date
grade field defaults to the grade_points valuegrade 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 writesIn 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 categorySubmission 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.