What you will need before starting:
- Canvas admin access with Developer Keys privileges (Admin > Account > Developer Keys)
- A decision on your integration type: Anonymous (students launch directly, no login required) or Known (students are matched by name and email). If you are unsure, please reach out to support@solidprofessor.com, before proceeding..
Log into Canvas as an admin and navigate to Admin > Account > Developer Keys. Click + Developer Key > LTI Key.
Fill out the Basic Information section:
| Field | Value |
|---|---|
| Title | [School Name] (SP) |
| Key Name | [School Name] (SP) |
| Description | SolidProfessor tool for [School Name] |
| Method | Manual Entry |
| Owner Email | Your Canvas admin email address |
Change the JWK Method to Public JWK URL, then fill out the Endpoint Configuration section:
| Field | Value |
|---|---|
| Redirect URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| Target Link URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| OpenID Connect Initiation URL | https://plt-backend.solidprofessor.com/api/v1/lti/oidc |
| Public JWK URL | https://plt-backend.solidprofessor.com/api/v1/lti/jwks?iss=https://canvas.instructure.com |
Under LTI Advantage Services, enable the following toggles:
- Can create and view assignment data in the gradebook associated with the tool.
- Can view assignment data in the gradebook associated with the tool.
- Can view submission data in the gradebook associated with the tool.
- Can create and update submission results for assignments associated with the tool.
- Can retrieve user data associated with the context the tool is installed in.
Toggle Additional Settings, and enter the following:
| Field | Value |
|---|---|
| Domain | https://plt.solidprofessor.com |
| Privacy Level | Public (for Known integration) or Private (for Anonymous integration) |
In the Custom Fields box, enter the following exactly as shown, each on its own separate line, no extra spaces, no blank lines between them. NOTE: this should look exactly like the screenshot below.
user_id=$Canvas.user.id
lms_school_id=$Canvas.account.id
Important: Any extra spaces or blank lines in the Custom Fields will cause student launches to fail.
Under Placements, select all four of the following from the dropdown and configure each one as shown:
Toggle Assignment Selection:
| Field | Value |
|---|---|
| Target Link URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| Select Message Type | LtiDeepLinkingRequest |
| Text | SolidProfessor |
| Selection Height | 800 |
| Selection Width | 1000 |
Editor Button:
| Field | Value |
|---|---|
| Target Link URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| Select Message Type | LtiDeepLinkingRequest |
| Icon URL | https://static-exp1.licdn.com/sc/h/3dio89ba7ceqktt0kek3tla5w |
| Text | SolidProfessor |
| Selection Height | 800 |
| Selection Width | 1000 |
Link Selection:
| Field | Value |
|---|---|
| Target Link URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| Select Message Type | LtiDeepLinkingRequest |
Course Assignments Menu:
| Field | Value |
|---|---|
| Target Link URI | https://plt-backend.solidprofessor.com/api/v1/lti/launch |
| Select Message Type | LtiDeepLinkingRequest |
Click Save. You will be taken to the Developer Keys list where your new key appears with an auto-generated Client ID (a long numeric string). Copy this value, you will need it for the next step and for the form at the end.
Critical: Change the State of the Developer Key to ON. If this remains OFF, all LTI launches will fail with no error message displayed. This is the most common Canvas setup issue.
If your instructors receive a 500 error on launch and your Developer Key configuration has been verified as correct, check whether the tool has been installed more than once. In Canvas, go to Admin → Developer Keys → View in Canvas Apps for the SolidProfessor tool. If you see two Deployment IDs listed, only one will be marked Available; that is the correct Deployment ID to use in SolidProfessor's Tool Setup. Set the other installation to Not Available and ensure the Deployment ID in SolidProfessor matches the Available one.
- Navigate to Admin > Account > Settings. Select the Apps tab at the top and click View App Configurations, then + App.
- Set Configuration Type to By Client ID. Paste your Client ID from the previous step, and click Submit. Click Install when the app is found.
- If Enabled, toggle the RCE Toolbar slider to Disabled. Click the gear dropdown on the app and select Deployment ID.
- Copy this value, you will need it for the form at the end.
Client ID and Deployment ID:
From Organization Apps, click Configure on the SolidProfessor app. Click the "Copy Client ID" button. Save this value. Then, copy the Deployment ID listed on that page. Save this value.
School ID
- Go to Admin → Sub-Accounts
- Click into the correct subaccount (don't click into a course)
- Read the number at the end of the URL — e.g. canvas.instructure.com/accounts/209
The School ID should be the immediate parent sub-account of the courses, not the root account and not a higher-level parent sub-account. You can find it by navigating to that sub-account in Canvas and checking the number at the end of the URL.
For example: canvas.instructure.com/accounts/82202: the School ID would be 82202.
If your institution has no sub-accounts and all courses live under a single account, use the root account ID shown in the URL when you're on the main Admin page.
Do not include the '?' when handing off the School ID to the Instructor. Just the number, i.e. '217' should be handed off.
Note: You now have your Client ID, Deployment ID, and School ID. Proceed to the Hand-Off section below.
SolidProfessor's Canvas LTI integration identifies your institution by matching the sub-account ID of the course's immediate parent sub-account in Canvas. This means all courses using the integration must live under the same Canvas sub-account. SolidProfessor supports one sub-account mapping per school.
At some institutions, Canvas sub-accounts are organized by department rather than by school. For example, Engineering courses live in an Engineering sub-account and Design courses live in a Design sub-account. If your courses are spread across multiple sub-accounts, only the courses under the mapped sub-account will work with the integration.
This is most common at institutions where Canvas is connected to a Student Information System (SIS) that automatically places courses into sub-accounts based on department codes. In these cases, the sub-account structure may not be something your Canvas administrator can change without affecting other systems.
If your courses span multiple sub-accounts, you have three options:
Option 1 — Restructure your Canvas sub-accounts. If all SP-integrated courses can be moved under a single sub-account, the integration will work as intended. This is the cleanest solution, but may not be feasible if your Canvas structure is managed by a SIS or affects other institutional systems.
Option 2 — Partial integration. Courses under one sub-account integrate with SolidProfessor normally. Courses under other sub-accounts remain outside the integration — students in those courses would access SolidProfessor directly, and instructors would upload grades manually via CSV. Note that students in non-integrated courses will see a notice inside SolidProfessor indicating their work is not syncing to Canvas. This message cannot be suppressed selectively.
Option 3 — No integration. All students access SolidProfessor directly through our site, and all grades are entered manually. This avoids the sub-account limitation entirely but removes the convenience of the LMS connection.
Once you have collected all three values, your part of the setup is complete. You do not need to enter anything into SolidProfessor. That step is handled by an Instructor or District Admin with the appropriate access level in SolidProfessor.
Pass the following three values to your instructor or district admin (If you have not already entered them into the SolidProfessor Platform):
- Client ID
- Deployment ID
- School ID (or IDs if multiple schools)
Let your Instructor or District Admin know they will need to log in to SolidProfessor and enter these values in Instructor Tools to complete the integration. Ask them to confirm with you once it has been entered. They can then follow the steps here to complete the integration process: LTI 1.3: Canvas Setup for Instructors