This guide walks LMS administrators through connecting Learnvelo to Canvas using LTI 1.3. After completing these steps, instructors will be able to add Learnvelo content directly into their Canvas courses.
Prerequisites
- Canvas administrator access (account-level, not just course-level)
- A Learnvelo account with the LMS Admin role. If you don't have one, sign up at app.learnvelo.com/signup and select LMS Admin as your role during registration — no approval from Learnvelo is needed to create an account.
- Access to Canvas Admin > Developer Keys
Overview
Setting up the integration requires configuring both Learnvelo and Canvas. You will switch between the two systems during this process:
- Register your institution in Learnvelo
- Create an LTI platform in Learnvelo and copy the tool configuration URLs
- Create a Developer Key in Canvas using those URLs
- Enter the Canvas-provided configuration values back in Learnvelo
- Add the Deployment ID
- Test the connection
Step 1: Register Your Institution in Learnvelo
If your institution is not yet registered in Learnvelo, you will need to register it first.
- Log in to Learnvelo at app.learnvelo.com
- Navigate to My Institutions from the dashboard menu
- Click Register Institution
- Fill in the required fields:
- Institution Name — Your institution's official name
- Website — Your institution's website URL (e.g.,
https://university.edu) - Primary Contact Name — The person managing the LTI integration
- Contact Title — Their role (e.g., “Director of Educational Technology”)
- Description — Optional brief description
- Click Submit Registration

Note: Your institution will be reviewed by the Learnvelo team. You can proceed with the LTI configuration while the review is in progress, but LTI launches will not work until approval is granted.
Step 2: Create an LTI Platform in Learnvelo
- From your institution's detail page, go to the Integrations tab
- Click Add Integration
- In the dialog, enter:
- Platform Name — A descriptive name (e.g., “Canvas Production”)
- LMS Type — Select Canvas
- Environment — Select Production (or Staging/Development for testing)
- Click Create Integration

You will be redirected to the platform detail page.
Step 3: Copy Tool Configuration URLs from Learnvelo
On the platform detail page, locate the Tool Configuration section. You will need these four URLs when configuring Canvas:
| Field | URL |
|---|---|
| Login Initiation URL | https://api.learnvelo.com/api/lti/login/ |
| Launch / Redirect URL | https://api.learnvelo.com/api/lti/launch/ |
| Deep Linking URL | https://api.learnvelo.com/api/lti/launch/ |
| JWKS URL | https://api.learnvelo.com/api/lti/jwks/{platform-id}/ |
Important: The JWKS URL is unique to your platform. Use the copy button next to each field to ensure accuracy.

Keep this Learnvelo tab open — you will return to it after configuring Canvas.
Step 4: Create a Developer Key in Canvas
Now switch to your Canvas admin panel.
4a. Open Developer Keys
- In Canvas, navigate to Admin (account-level) > Developer Keys
- Click + Developer Key > LTI Key

4b. Enter Key Details and Redirect URIs
- Enter a Key Name (e.g., “Learnvelo”)
- In the Redirect URIs field, paste the Launch / Redirect URL from Learnvelo:
https://api.learnvelo.com/api/lti/launch/ - Under Method, leave it as Manual Entry
4c. Enter Required Values
Fill in the following fields using the URLs from Learnvelo (Step 3):
| Canvas Field | Learnvelo Value |
|---|---|
| Title | Learnvelo |
| Description | AI-powered interactive learning platform |
| Target Link URI | Paste the Launch / Redirect URL |
| OpenID Connect Initiation Url | Paste the Login Initiation URL |
For the JWK Method, select Public JWK URL and paste the JWKS URL from Learnvelo.

4d. Configure LTI Advantage Services
Expand the LTI Advantage Services section and enable the following:
- Can create and view assignment data in the gradebook associated with the tool — Required for grade passback
- Can view assignment data in the gradebook associated with the tool — Required for grade passback
- Can view submission data for assignments associated with the tool — Required for grade passback
- Can create and update submission results for assignments associated with the tool — Required for grade passback
- Can retrieve user data associated with the context the tool is installed in — Recommended for roster sync

4e. Configure Privacy and Additional Settings
Expand the Additional Settings section and set the Privacy Level to Public. This allows Canvas to share user name and email with Learnvelo, which is needed for account matching and displaying names.
Note: If your institution restricts sharing user data with external tools at the account level, you may need to coordinate with your Canvas administrator to allow this for the Learnvelo tool.
4f. Configure Placements for Deep Linking
The Placements section controls where Learnvelo appears in Canvas and how it launches. For instructors to use Learnvelo's content picker when adding content to their courses, the placements must be configured with the LtiDeepLinkingRequest message type.
- In the Placements dropdown, add the following two placements:
- Link Selection — Allows instructors to add Learnvelo content to modules
- Assignment Selection — Allows instructors to link Learnvelo content when creating assignments
- Remove any other default placements (such as Account Navigation) that are not needed
- For each placement, click to expand it and configure:
- Message Type — Select LtiDeepLinkingRequest (this is critical — do not leave it as LtiResourceLinkRequest)
- Target Link URI — Enter:
https://api.learnvelo.com/api/lti/launch/
Important: If the message type is left as the default
LtiResourceLinkRequest, instructors will not see Learnvelo's content picker when adding content. Instead, Canvas will insert a static link that does not support deep linking or grade passback.

4g. Save and Note the Client ID
- Click Save
- Canvas will display the new Developer Key with a numeric Client ID in the key list
- Copy this Client ID — you will need it in the next step

4h. Enable the Key
The key is created in an OFF state by default. Toggle it to ON to enable it.
Step 5: Enter Canvas Configuration in Learnvelo
Switch back to your Learnvelo tab.
- On the platform detail page, locate the Platform Registration Details section
- Enter the following values:
Learnvelo Field Value Issuer URL https://canvas.instructure.comClient ID The numeric Client ID from Canvas (Step 4g) OIDC Authorization Endpoint https://{your-canvas-domain}/api/lti/authorize_redirectYour LMS JWKS URL https://{your-canvas-domain}/api/lti/security/jwksOAuth 2.0 Token Endpoint https://{your-canvas-domain}/login/oauth2/token
Note for Canvas Cloud: If you use Canvas Cloud (hosted by Instructure), replace
{your-canvas-domain}with your Canvas instance URL (e.g.,myschool.instructure.com). The Issuer URL is alwayshttps://canvas.instructure.comfor Canvas Cloud instances.
- Click Verify JWKS to test that Learnvelo can reach Canvas's public keys
- Click Save

Step 6: Add the Deployment ID
6a. Install the Tool in Canvas
- In Canvas, navigate to the course or account where you want to install the tool
- Go to Settings > Apps > View App Configurations
- Click + App
- Under Configuration Type, select By Client ID
- Enter the Client ID from Step 4g
- Click Submit
6b. Copy the Deployment ID
After installation, Canvas displays a Deployment ID. Copy this value.

6c. Enter the Deployment ID in Learnvelo
- Return to the Learnvelo platform detail page
- Scroll to the Deployment IDs section
- Enter the Deployment ID from Canvas
- Optionally add a label (e.g., “Main Campus” or “College of Engineering”)
- Click Add

Step 7: Test the Connection
The Getting Started checklist on the platform detail page tracks your progress through each step. Once all four steps are complete, your integration is ready.
To verify the connection end-to-end:
- In Canvas, navigate to any course as an instructor
- Go to Modules or Assignments
- Click + Add > External Tool
- Select Learnvelo from the list
- The Learnvelo content picker should load, confirming the connection works
Troubleshooting
“JWKS verification failed”
- Ensure the LMS JWKS URL field contains your Canvas JWKS URL, not Learnvelo's JWKS URL. These are different:
- Canvas JWKS (what you enter in Learnvelo):
https://{your-canvas-domain}/api/lti/security/jwks - Learnvelo JWKS (what you enter in Canvas):
https://api.learnvelo.com/api/lti/jwks/{platform-id}/
- Canvas JWKS (what you enter in Learnvelo):
- If your Canvas instance is behind a firewall, ensure the JWKS endpoint is accessible from the public internet
“Integration Pending Approval”
Your institution must be approved by Learnvelo before LTI launches will work. Contact [email protected] if approval is taking longer than expected.
LTI launch shows a blank page or error
- Verify the Issuer URL is correct (
https://canvas.instructure.comfor Canvas Cloud) - Verify the Client ID matches exactly (no extra spaces)
- Check that the Developer Key is in the ON state
- Ensure the Redirect URI in Canvas matches the Launch URL exactly
Content picker does not appear when adding Learnvelo to a module or assignment
- This is almost always a placement configuration issue. Edit the Developer Key and expand each placement (Link Selection, Assignment Selection)
- Verify that the Message Type is set to LtiDeepLinkingRequest, not LtiResourceLinkRequest
- If the message type was LtiResourceLinkRequest, Canvas inserts a static link instead of launching the content picker
- After correcting the placements, save the Developer Key. You may need to remove and re-add the tool in the course for the change to take effect
Grade passback is not working
- Verify that Assignment and Grade Services (AGS) is enabled in the Canvas Developer Key settings
- Ensure the content was linked using the Learnvelo deep linking tool (not a manual URL)
- Check that grade passback was enabled during the deep linking content selection
Reference: Canvas-Specific URLs
| Purpose | URL Pattern |
|---|---|
| Issuer (Canvas Cloud) | https://canvas.instructure.com |
| Issuer (Self-hosted) | https://{your-canvas-domain} |
| OIDC Authorization | https://{your-canvas-domain}/api/lti/authorize_redirect |
| JWKS | https://{your-canvas-domain}/api/lti/security/jwks |
| OAuth 2.0 Token | https://{your-canvas-domain}/login/oauth2/token |
Trademark Notice
Canvas is a registered trademark of Instructure, Inc. Learnvelo is not affiliated with or endorsed by Instructure, Inc.