Skip to main content

Technical Teams - Kyron Conversations on Canvas (LTI 1.3)

Set up Canvas so instructors can create Kyron Conversations from their course content and see Kyron Insights.

Kyron Conversations vs. Kyron Lessons

While Kyron Lessons are built in Kyron Studio and shared through LTI Deep Linking, Kyron’s new integration with Canvas allows you to create conversations directly into your Canvas module using the content already in your course.

How it works

Setup has three connections. Do them in the order below.

  • LTI Developer Key: lets instructors launch Kyron from a Canvas assignment, sends grades back to Canvas, and adds Kyron Insights to the course menu.

  • API Developer Key: lets Kyron read the course content an instructor picks.

  • Canvas connection: signs Kyron in to Canvas once, for your whole organization.

Requirements

  • Canvas: an admin account that can create Developer Keys and install apps. This is the person who will authorize the connection with Kyron.

  • Kyron: the Organization Manager role. Only Organization Managers can see Settings > Integrations.

  • Kyron enablement: ask your Kyron contact to turn on Create from LMS for your organization. Until that's done, instructors only see the lesson library when they launch Kyron.

Configuration

1. Create the LTI Developer Key in Canvas

  1. In Kyron, go to Settings > Integrations at https://app.kyronlearning.com/studio/settings/integrations.

  2. Under LTI Settings, copy the Canvas Deep Link Setup URL.

  3. In Canvas, go to Admin > Developer Keys and click + Developer Key > LTI Key.

  4. Enter a Key Name (for example, Kyron Learning) and an Owner Email.

  5. For Method, choose Enter URL and paste the setup URL. If your Canvas doesn't accept a URL, click Copy the configuration JSON instead in Kyron, choose Paste JSON in Canvas, and paste it there.

  6. Click Save.

  7. In the Developer Keys list, set the key's State to On.

  8. Copy the number in the Details column. This is the key's Client ID. You'll need it in steps 2 and 3.

Already have a Kyron LTI key? Don't create a second one. Open your existing key, choose Paste JSON, paste the latest configuration JSON from Kyron, and save. Older keys are missing settings that creating from Canvas needs.

The configuration sets up the following for you. There's nothing to change by hand.

  • Assignment Selection placement, labeled Kyron Learning. Instructors use this to create a conversation or add a Kyron lesson.

  • Course Navigation placement, labeled Kyron Insights. It's on by default and visible only to teachers, TAs, and admins.

  • Grade passback (Assignment and Grade Services) and the course roster (Names and Role Provisioning).

  • Custom fields that tell Kyron which course, module, and assignment it was launched from.

Don't want Kyron Insights? To hide it in one course, go to Settings > Navigation in that course and drag Kyron Insights into the hidden list. To turn it off for every course under an account, make sure Allow LTI Placement Toggling is on in that account's Settings > Feature Options, then go to Settings > Apps, click the gear icon next to Kyron Learning, choose Placements, and turn off Course Navigation.

2. Register Canvas in Kyron

  1. On the Kyron Integrations page, under LTI Settings, click Register Platform.

  2. Fill in the form with the values below. Use Instructure-hosted Canvas if your Canvas runs on *.instructure.com or Instructure manages it for you. Use Self-hosted Canvas if your school runs Canvas on its own servers.

Field

Instructure-hosted Canvas

Self-hosted Canvas

Name

Something you'll recognize, for example Canvas Production

Something you'll recognize, for example Canvas Production

Description

Optional

Optional

Issuer

https://canvas.instructure.com

Your Canvas's LTI issuer, usually its own address, for example https://canvas.school.edu

Client ID

The Client ID from step 1

The Client ID from step 1

Deployment ID

Leave blank. It's only used for Blackboard.

Leave blank.

Keyset URL

https://sso.canvaslms.com/api/lti/security/jwks

https://canvas.school.edu/api/lti/security/jwks

OIDC Auth URL

https://sso.canvaslms.com/api/lti/authorize_redirect

https://canvas.school.edu/api/lti/authorize_redirect

Access Token URL

https://sso.canvaslms.com/login/oauth2/token

https://canvas.school.edu/login/oauth2/token

Click Save. Canvas now appears in your list of registered platforms.

Beta and Test environments (Instructure-hosted only) use different issuers: https://canvas.beta.instructure.com or https://canvas.test.instructure.com. Register each environment as its own platform.

3. Install the Kyron app in Canvas

  1. In Canvas, go to Admin > Settings > Apps > View App Configurations. Do this in the root account, in the sub-account that holds the courses you want, or in the course itself.

  2. Click + App.

  3. For Configuration Type, choose By Client ID.

  4. Paste the Client ID from step 1, click Submit, then Install.

Kyron Learning is now available in every course under that account.

4. Create the API Developer Key in Canvas

This key lets Kyron read the content an instructor picks. It is a separate key from the LTI key.

  1. In Canvas, go to Admin > Developer Keys and click + Developer Key > API Key.

  2. Enter a Key Name (for example, Kyron Learning API) and an Owner Email.

  3. Under Redirect URIs, enter both of these, one per line: https://app.kyronlearning.com/auth/canvas/callback and https://www.kyronlearning.com/auth/canvas/callback

  4. Turn on Enforce Scopes, then select all 16 scopes listed below.

  5. Click Save, then set the key's State to On.

  6. Copy the Client ID (the number in the Details column). Click Show Key and copy the Client Secret.

Required scopes:

  • Courses: GET /api/v1/courses, GET /api/v1/courses/:id

  • Course Modules: GET /api/v1/courses/:course_id/modules, GET /api/v1/courses/:course_id/modules/:module_id/items, GET /api/v1/courses/:course_id/modules/:module_id/items/:id, POST /api/v1/courses/:course_id/modules/:module_id/items, PUT /api/v1/courses/:course_id/modules/:module_id/items/:id

  • Pages: GET /api/v1/courses/:course_id/pages, GET /api/v1/courses/:course_id/pages/:url_or_id, PUT /api/v1/courses/:course_id/pages/:url_or_id

  • Assignments: GET /api/v1/courses/:course_id/assignments, GET /api/v1/courses/:course_id/assignments/:id, POST /api/v1/courses/:course_id/assignments, PUT /api/v1/courses/:course_id/assignments/:id

  • Files: GET /api/v1/courses/:course_id/files, GET /api/v1/files/:id

Select every scope. Kyron asks for all of them when it connects. If any is missing, Canvas rejects the connection with an invalid scope error.

Why Kyron needs these scopes: Kyron uses the read (GET) scopes to read your course content and create a Kyron Conversation from it. It uses the write (POST and PUT) scopes to make sure the new conversation ends up in the right place in your course.

5. Connect Kyron to Canvas

  1. On the Kyron Integrations page, scroll to Canvas OAuth.

  2. Enter the Canvas Host: the domain your Canvas courses use, without https://, for example school.instructure.com or canvas.school.edu.

  3. Enter the Canvas Client ID (Developer Key ID) and Canvas Client Secret (Developer Key) from step 4.

  4. Click Save.

  5. Click Connect Canvas. A new tab opens to Canvas.

  6. Sign in as the admin or service account from Requirements, then click Authorize.

  7. When you see "Canvas OAuth success!", close the tab and refresh the Integrations page. The Connection status now shows Connected with your email.

Canvas Host must match exactly the domain instructors see in their browser when they're in a Canvas course. If your school has both a custom domain (canvas.school.edu) and an instructure.com domain, use the one courses actually load on.

One connection per organization. If another admin clicks Reconnect Canvas, their sign-in replaces yours. Click Reconnect Canvas if the connection ever stops working, for example after a password change, a revoked token, or a regenerated key.

Create a Kyron Conversation

Share these steps with instructors.

  1. In the Canvas course, go to Assignments and click + Assignment.

  2. Under Submission Type, choose External Tool and click Find.

  3. Select Kyron Learning.

  4. On Select your content source, pick the page, assignment, file, or link the conversation should be based on, and click Select. You can search by name or browse by module.

  5. Kyron reads the content. When you see You're almost there!, click Submit.

  6. Back in Canvas, click Select, then Save (or Save & Publish) the assignment.

  7. Open the assignment. Kyron drafts a few conversation options, which can take up to 5 minutes.

  8. Under Choose a conversation question, pick an option. Click Generate more questions to see more.

  9. Click Create Kyron Conversation. When it's ready, you'll see the conversation the way students will.

Students' scores go to the Canvas gradebook automatically.

Organizations that can do both (create conversations from Canvas and add existing Kyron lessons): instructors who joined before Oct 31, 2026 see the lesson library first and click Create a new conversation to get to the content picker. Everyone else sees the content picker first, with Choose lessons from my library at the bottom.

Kyron Insights

Kyron Insights shows instructors how the class is learning and engaging across the course's Kyron assignments. Open it from Kyron Insights in the course navigation menu. Only teachers, TAs, and admins can see it.

The overview shows:

  • Learning signal and engagement signal for the class

  • Misconceptions and the number of students

  • Assignment completion and assessment score

  • A Kyron assignments list with progress and signals for each assignment

It only counts students who have started at least one Kyron assignment.

No extra setup is needed beyond step 1. To hide Insights in one course, go to Settings > Navigation and drag Kyron Insights to the hidden list.

Troubleshooting

What you see

What to do

Instructors only see the lesson library, with no content picker

Ask your Kyron contact to confirm Create from LMS is on. If your LTI key was set up before Sep 11, 2026, paste the latest configuration JSON into it (see step 1).

"An administrator needs to connect Canvas for your organization"

Complete step 5.

"This course is not on the Canvas instance connected to your organization"

The Canvas Host in step 5 doesn't match the domain the course runs on. Fix it, save, and click Reconnect Canvas.

"Canvas OAuth error" mentioning an invalid scope

The API key is missing one or more scopes. Add every scope from step 4 and connect again.

"We couldn't load your LMS content"

The connected Canvas account may not be able to view this course. Reconnect with an account that can, or add that account to the course.

Grades aren't reaching Canvas

Add the Access Token URL to the platform in step 2.

The course menu says Kyron Analytics instead of Kyron Insights

Paste the latest configuration JSON into your LTI key (see step 1).

Questions? Contact [email protected].

Did this answer your question?