Vconnct Developers

Moodle LMS Integration

Complete guide for integrating Qriib Virtual Classrooms with Moodle LMS via LTI 1.3 — covering admin setup, instructor workflows, Deep Linking, and developer API reference.

Moodle LMS Integration

Integrate Qriib Virtual Classrooms seamlessly into your Moodle Learning Management System using the LTI 1.3 Advantage protocol. This integration enables automatic student roster synchronization (NRPS), single sign-on (SSO), Deep Linking activity creation, and full lecture lifecycle control — all directly inside Moodle.


Key Capabilities

CapabilityDescription
SSO via LTI 1.3Students and instructors launch Qriib without a separate login
NRPS Roster SyncCourse members pulled automatically from Moodle (Enables strict access control)
AGS Auto-GradingAutomatically syncs student attendance grades to the Moodle Gradebook when the meeting ends
Deep LinkingInstructors embed a Virtual Classroom activity in any Moodle course section
Recording ManagementInstructors control when recordings are visible to students
Session HistoryPast session logs are accessible inside the workspace
Key RotationSigning keys can be rotated without re-registering the integration

Step 1: Obtain Qriib Outbound Credentials

  1. Log in to your Qriib DevKit Portal.
  2. Navigate to LMS Integration from the sidebar.
  3. Locate the Qriib Outbound Credentials section and copy the three URLs dynamically generated for your environment:

Qriib Outbound Credentials

Keep this tab open — you will paste these into Moodle in the next step.


Step 2: Configure External Tool in Moodle (Phase 1)

  1. Log in to Moodle as a Site Administrator.
  2. Navigate to: Site Administration → Plugins → Manage tools.
  3. Click Configure a tool manually.

Moodle External Tool Setup

  1. Fill in the configuration form with the following values:
FieldValue
Tool NameQriib Virtual Classrooms
Tool URLhttps://api.qriib.dev/api/v4/lti/launch
LTI VersionLTI 1.3
Public Key TypeKeyset URL
Public Keyset URLhttps://api.qriib.dev/api/v4/lti/jwks
Initiate Login URLhttps://api.qriib.dev/api/v4/lti/login
Redirection URI(s)https://api.qriib.dev/api/v4/lti/launch
Custom ParametersOptional: logo_url=https://your-university.edu/assets/logo.png (see below)
  1. Expand Services and Privacy sections and set:
SettingValue
IMS LTI Names and Role Provisioning (NRPS)Use this service to retrieve members' information as per privacy settings
IMS LTI Assignment and Grade Services (AGS)Use this service for grade sync and column management
Share launcher's name with toolAlways
Share launcher's email with toolAlways
Accept grades from the toolAlways (or As specified in Tool Configuration)
  1. Click Save Changes.

To display your institution's logo in the Qriib workspace header, add a custom parameter to the external tool. This requires a Qriib environment with client-logo support deployed on both the backend and frontend.

  1. Go to Site administration > Plugins > Activity modules > External tool > Manage tools. Navigation labels may vary by Moodle version.
  2. Find your Qriib Virtual Classrooms tool and open its edit/settings form.
  3. Find Custom parameters, expanding Show more if necessary.
  4. Add the following on a separate line, preserving any existing parameters:
logo_url=https://your-university.edu/assets/logo.png
  1. Click Save Changes.
  2. Close the existing workspace and launch the activity again from your course. Refreshing an existing workspace keeps the logo from that session's original launch.

Use a direct image URL, not a webpage containing an image. For example, a Wikipedia /wiki/ file page returns HTML and cannot be displayed as the logo. Open Original file on that page to obtain the direct image URL instead.

The image must be publicly accessible over HTTPS, without login or authorization headers. Open it in a private browser window to check that it loads. Use a stable URL without temporary access tokens; PNG, JPEG, WebP, and SVG images are suitable. The header preserves aspect ratio within a 96px-wide by 32px-high area.

Icon URL and Secure icon URL change the icon displayed inside Moodle. They do not automatically set the Qriib workspace logo; use the explicit logo_url custom parameter above.

If the logo is missing, invalid, or fails to load, the workspace displays a neutral school icon and remains usable. The external image host receives the browser's image request and network metadata; the workspace sends no referrer or LTI authorization header.

In browser Developer Tools, open Network and inspect the authenticated /lti/v1/workspace response. Check only its branding object; do not share authorization tokens or launch JWTs.

ResultWhat to check
No branding fieldThe backend may not have client-logo support deployed.
branding.logo_url is nullConfirm the custom parameter on the tool used by the activity, a valid public HTTPS URL, and a new launch after saving.
The previous URL appearsLaunch again from Moodle; refreshing an existing session does not replace its logo.
The correct URL appears but the logo does notConfirm frontend deployment, then inspect the image request for an HTML response, login requirement, HTTP error, or Content Security Policy (CSP) block.

Step 3: Register Moodle Credentials in Qriib (Phase 2)

After saving, Moodle generates platform credentials you must register back into Qriib:

  1. In Moodle Manage Tools, find your Qriib Virtual Classrooms tool card.
  2. Click View Tool Details.
  3. Copy the following parameters:
ParameterDescription
Platform ID / Issuer (iss)Your Moodle instance base URL
Client IDUnique identifier Moodle assigned to this tool
Deployment IDIdentifies the specific deployment context
Public Keyset URLMoodle's JWKS endpoint for signature verification
Access Token URLMoodle's OAuth 2.0 token endpoint
Authentication Request URLMoodle's OIDC authorization endpoint

Qriib LMS Inbound Configuration

  1. Return to Qriib DevKit Portal → LMS Integration.
  2. Paste the values into the LMS Inbound Configuration form.
  3. Click Register LMS Integration.

Step 4: Add Virtual Classrooms to Courses (Instructor Workflow)

Instructors add Virtual Classrooms directly inside their respective Moodle courses (not in Site Administration):

  1. Go to My courses from the Moodle navigation bar and open your course (e.g., CS501 Computer Science).
  2. Toggle Edit mode ON in the top-right corner of the course page.
  3. Click Create course (or select an existing course).
  4. Click Participants in the course menu and click Enrol users.
  5. Select users, set Assign role to Teacher (or Student), and click Enrol users.
  6. Click More in the course top navigation bar.
  7. Select LTI External Tools.
  8. Find Qriib Virtual Classrooms and toggle Show in activity chooser to ON (active).
  9. Return to your course section, click + Add an activity or resource, and select Qriib Virtual Classrooms.
  10. Provide an Activity Name (e.g., CS501 Live Lecture).
  11. Expand the Privacy section and ensure Accept grades from the tool is checked.
  12. Expand the Grade section and set Type to Point and Maximum Grade to your desired value (e.g., 100).
  13. Click Save and return to course. When students or instructors click the link, a Deep Linking confirmation page is shown inside Moodle, then the Virtual Classroom workspace launches:

Qriib Virtual Classroom Inside Moodle


Workspace Roles & Capabilities

The workspace renders differently based on the user's LTI role:

Instructor View

When launched by an Admin or Instructor (Teacher), the workspace allows them to create and start a meeting immediately via the Create Quick Meeting button:

Instructor and Admin View - Create Quick Meeting

CapabilityDescription
✅ Create MeetingStart a new virtual classroom session immediately
✅ Join MeetingEnter the active session
✅ End MeetingTerminate the session for all participants and sync attendance grades (AGS)
✅ View Session HistoryPast session logs are accessible inside the workspace
✅ Manage RecordingsInstructors control when recordings are visible to students
✅ View Course RosterCourse members pulled automatically from Moodle

Learner (Student) View

CapabilityDescription
✅ Join Active MeetingEnters the live session when one is active
✅ View Published RecordingsLecture recordings published by your instructor
❌ Create / End MeetingNot allowed
❌ Manage RecordingsNot allowed