Clever and LTI Grade Passback
Los Angeles Unified School District requires all applications to support grade passback via LTI (as per the UDIPP). Clever is already helping our partner applications comply with logins via LTI and now also supports apps in implementing grade passback. The information below describes how you would integrate with Clever's grade passback support with LAUSD/Schoology. We look forward to working with you!
How to use this documentation
How to use this documentation
Please review the documentation below and let us know what questions and feedback you have, we’re happy to work with you to clarify and adjust as necessary. Once you’ve reviewed this documentation, please have your Account Manager schedule a call with your team (including at least one developer), and the Clever Partner Engineering team to go over outstanding questions, and outline a path forward. Feel free to email Partner Engineering directly at [email protected] with technical questions.
Data Model and Assumptions
Data Model and Assumptions
- Each student can only have one grade per Assignment ID
- If you send a grade for a student/Assignment ID pair that already has a grade associated, we will overwrite the existing grade
- It is up to applications to create and maintain Assignment IDs
- Assignment IDs can represent anything that has a score/grade
- These can be whole assignments/assessments, but can also be individual content items - this is up to application partners to decide
- Teachers will choose from the list of assignments that you provide to Clever, so the division of content into assignments should be comprehensible to a teacher
- Assignment IDs can be in any format you choose
- The most important attribute of Assignment IDs is that you as the application partner are able to associate them with a grade within your system
- Clever’s recommendation is that Assignment IDs should be alphanumeric and under 64 characters, as these IDs are passed through URLs
- Assignment IDs should be stable
- If we receive a new Assignment ID from you, we’ll assume it’s a new assignment
Grade Passback: How it works
Grade Passback: How it works
Step 1: Teachers Create Assignments in Schoology
User Experience
- Teacher adds an assignment to Schoology within the context of a class, and selects your application from the list of Clever apps
- Teacher is shown a list of assignments for your application and selects an assignment. Clever displays these assignments based on the assignments API that you provide (see below)
- Teacher enables grading on that assignment and enters in additional contextual information (i.e. category, due date, grading type, grading period)
- The assignment is added to Schoology
How this works - Clever’s general recommendation
Clever makes a GET request to a URL that the application partner provides. That request will include an Authorization header with a bearer token.
Optional: Retrieving user/district information
- Your application uses the bearer token to GET https://api.clever.com/v2.0/me to get the IDs and the user's type (for an example, see your current Instant Login integration)
- Clever will return a Clever user ID and Clever district ID (in the same format we return during the login process today)
- If your list of assignments is different per user or per district, you’ll use that information to look up the assignment list on your end
If your list of assignments is static, you can skip this step.
You will need to respond to the initial request with a JSON list of assignments
{
"assignments": [
{
"name": "Assignment 1",
"id": "a100001",
"type": "assignment",
"description": "The first assignment",
"standards": ["CCSS.ELA-LITERACY.SL.1.2"]
},
{
"name": "Assignment 2",
"id": "a100002",
"type": "assignment",
"description": "The second assignment"
}
]
}Within the array of assignments, there is a list of assignment objects. Each assignment must have a name, a unique id that can be later associated with a grade, and the type of "assignment". The description and standards array are optional.
Step 2: Students access your app’s assignments in Schoology
User Experience
- Student clicks on an assignment link in Schoology
- Student is redirected to the appropriate assignment in your app
How it works
Student is redirected to your app
The links embedded in Schoology will act as Log in with Clever buttons, redirecting the student to your app’s primary redirect URI and including the assignment ID in the state parameter:
https://redirect.uri?code=code&scopes=scopes&state=assignment:{assignmentID}
Your app will log the user in, acquiring the student’s Clever ID, and redirect them to the appropriate assignment.
Step 3: Your app sends grades to Schoology
User experience
- Grades appear in Schoology after the student finishes the assignment
How it works
Once a student completes the assignment, you will send the grade back to Clever. While LTI only accepts grades in the format of a number between 0-1.0, Clever will accept a broader range of formats and transform them into the required LTI format on your behalf. We encourage you to send scores in the format you’re currently using, rather than pre-transforming that data before sending to Clever. We would also encourage you to send along any other context on the assignment that might be relevant: as the LTI standard expands to accept additional information, we’ll automatically pass that along for you. (In the meantime, we can surface those grades with that additional context within the Clever Portal.) We’ll work with you to understand what scores we should anticipate, and confirm how those scores should translate into the values passed via LTI.
Please note that the userID portion of the POST is required if you’re using a district-app token, and is optional (but must match) if you’re using an il token
Sample POST: (If your grades are already in a 0-1.0 format)
POST https://grades-api.beta.clever.com/v1/grade
Authorization: Bearer {il token or district-app token}
Content-type: application/json
{"assignmentID":"heRte321", "userID":"53ee4b8a44abc88c1c00119b", "percentage":0.8}Sample POST: (If your grades are in a Score Given/Score Maximum format)
POST https://grades-api.beta.clever.com/v1/grade
Authorization: Bearer {il token or district-app token}
Content-type: application/json
{"assignmentID":"heRte321", "userID":"53ee4b8a44abc88c1c00119b", "scoreGiven":8, “scoreMaximum”:10}Clever will use this information to send the grade-assignment association to Schoology via LTI.
Updated 5 days ago
