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.
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.
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:
Canvas will fetch and auto-populate all settings. Click "Save".
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:
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".
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.
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".
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.
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).
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_selectionplacement 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:
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.
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.
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.
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.
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.
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
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
ClassLink LaunchPad Integration
Connect your district's ClassLink account to enable single sign-on and automatic roster import via ClassLink's OneRoster API. Works with ClassLink LaunchPad, ClassLink Desktop, and ClassLink mobile.
Request Kuliso in the ClassLink App Library
Log in to the ClassLink App Library as a ClassLink Administrator. Search for "Kuliso".
If Kuliso is not yet listed, contact support@kuliso.org β we will submit our app for listing. In the meantime, you can configure Kuliso manually (see step 2).
Add Kuliso as a Custom App (OAuth 2.0)
In ClassLink Admin β Apps β Add New App β Custom App β OAuth 2.0, enter the following:
ClassLink will provide a Client ID and Client Secret. Share these with Kuliso support so we can activate your district.
Assign the App to Your District
In ClassLink Admin, assign the Kuliso app to your district, specific schools, or grade levels as needed.
ClassLink will display the Kuliso tile in LaunchPad for all assigned teachers and students.
Activate ClassLink at Kuliso
Email support@kuliso.org with:
- Your ClassLink Client ID
- Your district name and ClassLink Tenant ID
We'll activate ClassLink SSO for your district within 1 business day and confirm via email.
Teachers and Students Log In via LaunchPad
Once activated:
- Teachers click the Kuliso tile in ClassLink LaunchPad β auto-authenticated β land in the Kuliso teacher dashboard. Classrooms are pre-populated from the roster.
- Students click the Kuliso tile β auto-authenticated β select their home language (first time only) β land directly in their AI tutoring session.
Teachers can also sign in directly at kuliso.org/teacher by clicking "Log in with ClassLink".
What Data Kuliso Syncs from ClassLink
Kuliso uses ClassLink's OneRoster API to sync:
- All classes/sections assigned to the teacher in ClassLink
- All students in each section (first name, last name, grade, ClassLink SourcedId)
- Student email addresses (if available in ClassLink)
Kuliso does not sync grades, attendance, disability status, or any sensitive PII beyond what is listed above.
Firewall / Network Allowlist
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.
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".
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:
Schoology will fetch the configuration and pre-fill the tool name, description, and launch URL.
Enter LTI 1.3 / OIDC Credentials (Manual Entry)
If using manual entry instead of the XML URL, fill in these fields:
Consumer Key and Shared Secret are provided by Kuliso support β contact support@kuliso.org if you haven't received them.
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.
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.
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.
Firewall / Whitelist Requirements
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.
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
Enter the Client ID
Paste the Client ID provided by Kuliso support. Blackboard will auto-fetch our configuration from our well-known endpoint.
Configure Tool Placement
Set the following fields if asked manually:
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
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
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.
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.
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 applicationapi.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 Cleverlaunchpad.classlink.com,nodeapi.classlink.comβ if using ClassLinklti-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.