Best for: School-wide or multi-course deploymentsAdmins create the LTI Advantage External tool and (optionally) a shared web service for REST. Teachers then register the tool in Coraltalk and connect courses.
Individual teachers
Best for: Pilots and single-class useTeachers can connect REST with a token for their enrolled courses. LTI usually still needs a Moodle admin to create the External tool once.
Go to Site administration → Plugins → Activity modules → External tool → Manage tools
2
Configure a tool manually
Choose configure a tool manually (LTI 1.3 / LTI Advantage).
3
Enter Coraltalk URLs
Replace {BASE_URL} with your Coraltalk app URL (for example https://app.coraltalk.com):
Moodle field
Value
Tool name
Coraltalk
Tool URL / Target link URI
{BASE_URL}/api/lti/launch
LTI version
LTI 1.3 / LTI Advantage
Public key type
Keyset URL
Public keyset URL
{BASE_URL}/api/lti/jwks
Initiate login URL
{BASE_URL}/api/lti/login
Redirection URI(s)
{BASE_URL}/api/lti/launch
4
Share name and email
Under privacy / share launcher options, enable name and email. Coraltalk needs email to create or link accounts.
5
Save and copy Client ID
Save the tool and copy the Client ID. You will paste it into Coraltalk next.
Issuer is your Moodle site URL exactly as Moodle sends it (for example https://moodle.school.edu or https://school.edu/moodle). Include any subdirectory.
Sign in as a teacher and open the Coraltalk class students should use.
2
Open Integrations
Go to Integrations and find Moodle LTI 1.3 Launch.
3
Register the platform
Copy the tool URLs if you still need them for Moodle
Click Register Moodle platform
Enter:
Moodle site URL (issuer) — must match Moodle’s iss
Client ID — from Moodle Step A
Save
Which class do students see?
Students who launch this Moodle tool are enrolled into the Coraltalk class that was active when the teacher registered the Moodle LTI platform. Register from the correct class first. Re-register from another class if you need to change the mapping.
Site administration → Advanced features: enable Web services and REST protocol.
2
Create an external service
Site administration → Server → Web services → External services
Add a custom service (for example Coraltalk)
Optionally enable Authorized users only
Add the required functions below
3
Required functions
Function
Purpose
core_webservice_get_site_info
Validate token and list functions
core_enrol_get_users_courses
List courses for the token user
core_course_get_contents
List course files for import
core_enrol_get_enrolled_users
Roster for student matching
mod_assign_get_assignments
List assignments when linking an exam
mod_assign_save_grade
Push grades to Moodle
Optional for faster bulk grade sync: mod_assign_save_grades
4
Create a dedicated Moodle user
Use a teacher or service account enrolled in the courses you want to sync, with permission to view content and grade assignments.
5
Generate a token
Site administration → Server → Web services → Manage tokensSelect the user and external service, generate the token, and copy it once (Moodle will not show it again).
Moodle External tool URLs match your Coraltalk {BASE_URL}
Platform is registered under Integrations → Moodle LTI 1.3 Launch
Issuer (Moodle site URL) matches exactly what Moodle sends
Share launcher name and email are enabled on the Moodle tool
Student is enrolled in the Moodle course
Solution: Launch as the teacher first. If that works, verify student enrollment and privacy settings.
Wrong Coraltalk class after launch
Students land in the class that was active when Moodle LTI was registered.Solution: Open the correct Coraltalk class → Integrations → re-register / update the Moodle LTI platform so default mapping points at that class.
Missing required web service functions
The Moodle external service is missing one of the required REST functions listed above.Solution: Edit the external service in Moodle and add every required function, then reconnect in Coraltalk.
Grades not syncing to Moodle
Check:
REST Moodle connection is active for the class
Exam is linked to an existing point-graded Moodle assignment
Student is linked to a Moodle user ID
Token user can grade the assignment
Solution: Use manual grade sync from Coraltalk, then fix linking if some students fail.
Invalid or expired Moodle token
Token was revoked, regenerated, or belongs to a different service/user.Solution: Generate a new token in Moodle and reconnect in Coraltalk.