Skip to main content
πŸ”§ IT Administrator Guide

LMS Integration
Setup Guide

Step-by-step instructions to connect Kuliso with your school's learning management system. Supports Canvas, Clever, Schoology, and Blackboard.

🎨 Canvas LTI 1.3 ⚑ Clever OAuth 2.0 🏫 Schoology LTI 1.3 ⬛ Blackboard LTI 1.3 βœ… Deep Linking πŸ“Š Grade Passback

πŸ“‹ Configuration Reference β€” Copy these URLs when setting up any integration

Canvas & Schoology β€” JSON Config URL
https://kuliso.org/lti/config.json
OIDC Initiation / Login URL
https://kuliso.org/lti/oidc/login
Target Link URI / Launch URL
https://kuliso.org/lti/launch
JWK Set URL (Public Key)
https://kuliso.org/.well-known/jwks.json
Schoology β€” XML Config URL
https://kuliso.org/lti/config/schoology.xml
Clever Redirect URI
https://kuliso.org/api/auth/clever/callback
Deep Linking Return URL
https://kuliso.org/lti/deep-link/response
NRPS Roster Sync Endpoint
POST /api/classrooms/:id/lms/nrps/sync

Canvas LTI 1.3 Setup

Configure Kuliso as an external tool in Canvas using the LTI Advantage (1.3) standard. This enables single sign-on, automatic roster sync, and grade passback for all courses in your institution.

ℹ️ Who does this? Your Canvas admin (typically IT or Technology Director) completes this setup once at the account level. Teachers do not need to configure anything β€” the tool appears automatically in every course.
⚠️ Before you start: Contact Kuliso support at support@kuliso.org to receive your Client ID and confirm your institution's domain. You'll need this in Step 4.
1

Navigate to Developer Keys

Log in to Canvas as a System Administrator. In the left sidebar, go to Admin β†’ [Your Institution] β†’ Developer Keys.

Click the "+ Developer Key" button in the top-right, then select "+ LTI Key" from the dropdown.

2

Configure the LTI Key β€” Method A: JSON URL (Recommended)

On the "Configure" tab of the new LTI key, change the Method dropdown to "Enter URL".

Paste Kuliso's configuration URL into the JSON URL field:

JSON URL: https://kuliso.org/lti/config.json

Canvas will fetch and auto-populate all settings. Click "Save".

βœ… Using the JSON URL method means Kuliso can push configuration updates without requiring you to reconfigure anything.
3

Configure the LTI Key β€” Method B: Manual Entry

If your Canvas instance cannot reach external URLs, switch the Method to "Manual Entry" and fill in the fields below:

Title:Kuliso AI Tutor
Description:AI language tutor for ELL/ESOL β€” 30+ home languages
Target Link URI:https://kuliso.org/lti/launch
OpenID Connect Initiation URL:https://kuliso.org/lti/oidc/login
JWK Method:Public JWK URL
Public JWK URL:https://kuliso.org/.well-known/jwks.json
Redirect URIs:https://kuliso.org/lti/launch

Under Additional Settings, enable:

  • Can create tool settings
  • Names and Role Provisioning Services (for roster sync)
  • Assignment and Grade Services (for grade passback)

Add placements: Course Navigation and Link Selection. Click "Save".

4

Note Your Client ID and Enable the Key

After saving, Canvas displays the Client ID (a long number, e.g. 10000000000001) in the Developer Keys list.

Share this Client ID with Kuliso support so we can finalize the handshake on our end. Email it to support@kuliso.org.

Toggle the key from OFF to ON in the state column.

5

Install the Tool at Account Level

Navigate to Admin β†’ [Institution] β†’ Settings β†’ Apps tab. Click "+ App".

Set Configuration Type to "By Client ID". Enter the Client ID from Step 4. Click "Submit", then "Install".

ℹ️ Installing at the account level makes Kuliso available to all sub-accounts and courses automatically β€” no per-course setup needed.
6

Set Deployment ID and Confirm with Kuliso

After installation, click the tool's gear icon β†’ "Deployment Id". Copy this value and send it to support@kuliso.org along with your Canvas issuer URL (e.g. https://yourschool.instructure.com).

Kuliso will register your platform in our system. You'll receive confirmation within 1 business day.

7

Verify the Integration

In any Canvas course, teachers should now see "Kuliso AI Tutor" in the left course navigation. Clicking it opens a secure LTI session β€” students are auto-logged in and rostered.

Grade passback: when a student completes a session, a score is sent back to the Canvas gradebook automatically (if a linked assignment exists).

βœ… Setup complete! No further per-teacher or per-class configuration is needed.

Roster Sync

When a teacher opens Kuliso from a Canvas course, the Names and Role Provisioning Service (NRPS) automatically imports enrolled students. Teachers can also manually trigger a sync from the Kuliso classroom settings β†’ "Sync Roster".

  • What syncs: Student names, enrollment status, section assignments
  • What doesn't sync: Passwords, grades (grades flow from Kuliso β†’ Canvas, not the other way)
  • Frequency: On each LTI launch + on-demand sync by teacher

Grade Passback

Kuliso uses the Assignment and Grading Services (AGS) scope to post session scores back to Canvas. Scores are normalized to 0–100 and sent at session end. Teachers can configure which sessions generate grade entries from the Kuliso classroom settings.

πŸ”— Deep Linking β€” Add Assignments Directly to Course Modules

With Deep Linking enabled, teachers can embed specific Kuliso assignments directly into Canvas modules. When a teacher clicks "Add External Tool" or the Kuliso button in the Rich Content Editor, a Kuliso assignment picker opens β€” they select an assignment, and it's added as a gradeable Canvas assignment.

  • Teacher flow: Modules β†’ Add Item β†’ External Tool β†’ Select Kuliso β†’ Pick assignment β†’ Done
  • Student experience: Click the assignment link in Canvas β†’ Kuliso loads in an iframe β†’ complete work β†’ grade automatically appears in gradebook
  • Required Canvas scopes: assignment_selection placement must be enabled in the Developer Key

Firewall / Whitelist Requirements

Kuliso's servers must be reachable from your Canvas instance. Ensure the following domains are not blocked by your network firewall or content filter:

Application:kuliso.org
AI API:api.openai.com
Fonts / CDN:fonts.googleapis.com, fonts.gstatic.com

Clever Integration Setup

Connect your district's Clever account to enable single sign-on and automatic roster import for all teachers and students. No LTI required β€” Clever uses its own OAuth 2.0 flow.

ℹ️ Audience: Your district's Clever administrator completes this setup. Teachers and students log in using the standard "Log in with Clever" button on Kuliso's sign-in page β€” no additional configuration needed on their end.
1

Find Kuliso in the Clever App Library

Log in to the Clever Portal as your district's administrator. Navigate to Applications β†’ Discover Apps.

Search for "Kuliso". Select the Kuliso AI Tutor listing.

⚠️ If Kuliso is not yet listed in the Clever Library, contact us at support@kuliso.org. We can complete a direct OAuth connection outside the Library while full listing is in progress.
2

Review and Approve the Data Sharing Agreement

Clever will display the data fields Kuliso requests access to. Kuliso requests:

  • Student names and enrollment (for rostering)
  • Teacher names and school assignment
  • Section/class membership

Kuliso does not request Social Security numbers, home addresses, or financial information. Review Kuliso's Data Privacy Agreement before approving.

Click "Approve" to authorize the data sharing agreement.

3

Select Schools and Grade Levels

Choose which schools and grade levels (PreK–12) should have access to Kuliso. You can grant district-wide access or limit to specific buildings.

Click "Confirm" to save the configuration.

4

Notify Kuliso of Your District ID

Send your Clever District ID to support@kuliso.org. We'll activate the connection on our side within 1 business day.

Your District ID is visible in the Clever portal under Settings β†’ District Info.

5

Teachers and Students Log In with Clever

Once activated, teachers and students navigate to kuliso.org/teacher (teachers) or receive a direct link from their teacher. The sign-in page shows a "Log in with Clever" button.

  • First login: account auto-created; subscription required to access full features
  • Subsequent logins: single click, no passwords
  • Students are automatically placed in the correct classroom
βœ… Roster sync is automatic. As students are added or moved in Clever, changes appear in Kuliso at next login β€” no manual import required.

How Roster Sync Works

Kuliso fetches roster data from Clever's API (api.clever.com/v3.0) each time a teacher clicks "Sync Roster" in the classroom settings. Sync imports:

  • All sections the teacher is enrolled in via Clever
  • All students in each section (name, grade, Clever ID)
  • Students are automatically matched to existing Kuliso accounts (by email or Clever ID)

Firewall / Whitelist Requirements

Kuliso App:kuliso.org
Clever OAuth:clever.com, api.clever.com
AI API:api.openai.com

Schoology LTI 1.3 Setup

Integrate Kuliso with Schoology using LTI 1.3 (LTI Advantage). This provides secure single sign-on, automatic class rostering, and grade passback via Schoology's Assignment and Grade Services.

ℹ️ Who does this? Your Schoology System Administrator completes this once at the district level. Teachers access Kuliso from the External Tools menu within any course.
⚠️ Before you start: Email support@kuliso.org to obtain your Consumer Key and Shared Secret (for LTI 1.1 fallback), or to confirm LTI 1.3 OIDC credentials for your district.
1

Navigate to External Tools in Schoology

Log in to Schoology as a System Administrator. Click the App Center icon (grid icon, top-right) β†’ Manage Apps & Resources β†’ External Tools.

Click "Add External Tool Provider".

2

Add Kuliso via XML Configuration URL (Recommended)

In the "Add External Tool Provider" dialog, select "XML Configuration URL" as the configuration method. Paste Kuliso's Schoology XML endpoint:

XML Config URL: https://kuliso.org/lti/config/schoology.xml

Schoology will fetch the configuration and pre-fill the tool name, description, and launch URL.

3

Enter LTI 1.3 / OIDC Credentials (Manual Entry)

If using manual entry instead of the XML URL, fill in these fields:

Tool Name:Kuliso AI Tutor
Launch URL:https://kuliso.org/lti/oidc/login
Secure Launch URL:https://kuliso.org/lti/oidc/login
LTI Version:LTI 1.3 (LTI Advantage)
Public JWK URL:https://kuliso.org/.well-known/jwks.json
Privacy Level:Public (sends name + email)

Consumer Key and Shared Secret are provided by Kuliso support β€” contact support@kuliso.org if you haven't received them.

4

Configure Scopes and Permissions

In the tool's advanced settings, enable the following LTI Advantage scopes:

  • Names and Role Provisioning Services β€” required for roster sync
  • Assignment and Grade Services β€” required for grade passback

Set Privacy Level to "Public" so Kuliso receives the student/teacher name and email needed for account creation.

5

Share Your Schoology Platform URL with Kuliso

After saving, Schoology will display the Deployment ID and your Issuer URL (e.g. https://app.schoology.com).

Email both values to support@kuliso.org. Kuliso registers your platform within 1 business day.

6

Enable Tool for Teachers

Back in App Center β†’ Manage Apps, ensure Kuliso is set to "Available to All Schools" (or specific schools in your district).

Teachers can now add Kuliso to any course via Course Materials β†’ Add Materials β†’ External Tool. Students launch it from the course page.

βœ… Roster sync and grade passback are active. Each LTI launch auto-syncs the class roster. Scores post to the Schoology gradebook on session completion.

Firewall / Whitelist Requirements

Kuliso App:kuliso.org
Schoology JWKS:lti-service.svc.schoology.com
AI API:api.openai.com
Fonts / CDN:fonts.googleapis.com, fonts.gstatic.com

Blackboard LTI 1.3 Setup

Register Kuliso as an LTI 1.3 Tool Provider in Blackboard Ultra or Blackboard Learn Original. Once configured, students and teachers access Kuliso directly from within their Blackboard courses with automatic SSO.

ℹ️ Who does this? Your Blackboard system administrator at the institution level. This is a one-time setup that enables Kuliso across all courses.
⚠️ Before you start: Contact Kuliso at support@kuliso.org to receive your Application ID / Client ID for Blackboard registration.
1

Navigate to LTI Tool Providers

In Blackboard Ultra: Admin Panel β†’ LTI Tool Providers β†’ Register LTI 1.3 Tool
In Blackboard Learn Original: System Admin β†’ Building Blocks β†’ LTI Tool Providers β†’ Register Provider Domain

2

Enter the Client ID

Paste the Client ID provided by Kuliso support. Blackboard will auto-fetch our configuration from our well-known endpoint.

Client ID: [provided by Kuliso support]
3

Configure Tool Placement

Set the following fields if asked manually:

Tool Provider URL: https://kuliso.org/lti/launch
OIDC Login URL: https://kuliso.org/lti/oidc/login
JWK Set URL: https://kuliso.org/.well-known/jwks.json
Redirect URLs: https://kuliso.org/lti/launch
4

Enable LTI Advantage Services

In the tool settings, enable the following services so Kuliso can sync grades and rosters:

  • βœ… AGS (Assignment and Grade Services) β€” grade passback to Blackboard gradebook
  • βœ… NRPS (Names and Role Provisioning Services) β€” automatic roster sync
  • βœ… Deep Linking β€” teachers can browse and add Kuliso assignments from the course editor
5

Deploy to Courses

Set the tool to Approved and enable it institution-wide. Teachers will see Kuliso in their course content editor and can add it as a content item or use Deep Linking to select specific assignments.

6

Verify the Integration

Have a test teacher open a course, click Add Content β†’ Content Market / External Content, and select Kuliso. They should be redirected to the Kuliso assignment picker, where they can select an assignment and add it to the course. The assignment will appear as a gradeable item in Blackboard.

πŸ’‘ Deep Linking in Blackboard: When a teacher adds Kuliso content using the Content Market or LTI External Tool option, they see a Kuliso assignment picker. After selecting assignments, they're automatically added to the course as gradeable LTI links. Grades sync back to Blackboard when students complete work.

FAQ & Troubleshooting

Common questions from IT administrators during LMS integration. If your issue isn't covered here, contact support@kuliso.org.

This is almost always caused by a cookie/session issue or a clock skew problem.

  • Ensure third-party cookies are allowed in your browser (Canvas opens Kuliso in an iframe).
  • Check that your server's system clock is accurate (within 5 minutes). LTI 1.3 JWT tokens expire quickly β€” clock drift causes validation failures.
  • If you're on Canvas Cloud (*.instructure.com), make sure Kuliso's domain (kuliso.org) is not blocked by your network filter.
  • Clear your browser's cookies and retry in an Incognito window.

This usually means the LTI tool was installed at the course level (by a teacher) instead of the account level (by you, the IT admin).

  • Remove the course-level installation.
  • Reinstall using Account β†’ Settings β†’ Apps β†’ By Client ID as described in Step 5 of the Canvas guide.
  • Confirm the Deployment ID was shared with Kuliso support and our platform record is updated.

Check the following:

  • Canvas/Schoology: Confirm the Names and Role Provisioning Services (NRPS) scope is enabled on the Developer Key.
  • Clever: Confirm the teacher's Clever account has sections assigned to them. If sections are empty in Clever, they'll be empty in Kuliso too.
  • The teacher must be enrolled in the Canvas/Schoology course section β€” not just the parent course.
  • Try a manual sync: Kuliso classroom β†’ Settings β†’ "Sync Roster" button.
  • Still failing? Email support@kuliso.org with your Canvas/Schoology URL and the teacher's email address.

Grade passback requires:

  • The Assignment and Grade Services (AGS) scope must be enabled on the LTI Developer Key.
  • A linked gradebook column must exist in Canvas/Schoology β€” this is created when a teacher adds Kuliso as an external tool assignment (not just a navigation link).
  • The student must complete a full session (not just start one).

If scores still aren't posting, enable debug logging in Kuliso (contact support) to trace the AGS call.

The Clever button is only displayed when Clever OAuth has been enabled for your district. If you've completed the Clever setup but the button isn't appearing:

  • Confirm Kuliso support has activated the Clever connection for your District ID.
  • Have the teacher navigate to kuliso.org/teacher β€” the button appears on this page.
  • Hard refresh the page (Ctrl+Shift+R / Cmd+Shift+R) to clear any cached version.

No special ports. All Kuliso traffic uses standard HTTPS (port 443). Ensure the following domains are whitelisted in your network filter or proxy:

  • kuliso.org β€” main application
  • api.openai.com β€” AI processing (server-to-server only, not student-facing)
  • fonts.googleapis.com, fonts.gstatic.com β€” fonts (optional, UI degrades gracefully without)
  • clever.com, api.clever.com β€” if using Clever
  • launchpad.classlink.com, nodeapi.classlink.com β€” if using ClassLink
  • lti-service.svc.schoology.com β€” if using Schoology LTI 1.3

Currently Kuliso supports LTI 1.3 (Canvas, Schoology), Clever OAuth 2.0, and ClassLink OAuth 2.0 with OneRoster. SAML 2.0 and Google SSO integrations are on our roadmap.

If your district requires a specific SSO method not listed here, email support@kuliso.org β€” we can prioritize based on demand.

Yes. See our full Student Data Privacy Policy. Key points:

  • Kuliso stores student first name, grade level, language, and session transcripts for progress tracking.
  • Data is not sold, not used for advertising, and not shared with third parties except AI processing (OpenAI, under a data processing agreement).
  • Schools can request data deletion at any time.
  • Kuliso can sign your district's Data Processing Agreement (DPA) β€” email support@kuliso.org.

Typical timeline:

  • Canvas: 20–30 minutes for the IT admin to configure the Developer Key and install the tool. Kuliso activates your platform within 1 business day after receiving the Deployment ID.
  • Clever: 15 minutes in the Clever portal. Kuliso activates within 1 business day.
  • ClassLink: 20–30 minutes to create the custom app in ClassLink Admin and share credentials with Kuliso. Kuliso activates within 1 business day.
  • Schoology: 20–30 minutes. Kuliso activates within 1 business day.

For urgent deployments (e.g., start of semester), contact support@kuliso.org β€” we can often activate same-day.

Still need help?

πŸ› οΈ

IT Admin Support

We respond to IT integration questions within 1 business day β€” usually same day. Have your Canvas/Schoology URL, District ID (for Clever), or Deployment ID ready to speed things up.

Questions during setup?
Our IT support team is available Mon–Fri, 8am–6pm ET.
πŸ“§ Email Support View School Plans