Overview
This guide walks through connecting Moodle (4.x or later) to Veydra using LTI 1.3. By the end, students in your Moodle course will be able to click an activity link and land directly in a Veydra lab — no separate registration needed.Time required: ~10 minutes
What you need: Moodle site admin access + a Veydra account with at least one lab
What you need: Moodle site admin access + a Veydra account with at least one lab
Part A: Configure Moodle
Open External Tool Management
In Moodle, go to Site administration → Plugins → Activity modules → External tool → Manage tools.You’ll see a list of any previously configured external tools.
Add Veydra as an External Tool
Click configure a tool manually (the link at the bottom of the page).Fill in the following fields using the values from your Veydra LTI Integrations page (app.veydra.io/account/lti):
Under Tool configuration usage, select:
Show as preconfigured tool when adding an external tool
| Moodle Field | Value |
|---|---|
| Tool name | Veydra |
| Tool URL | Paste the Tool URL / Launch URL from Veydra |
| LTI version | LTI 1.3 |
| Public key type | Keyset URL |
| Public keyset | Paste the Public Keyset URL (JWKS) from Veydra |
| Initiate login URL | Paste the Login Initiation URL from Veydra |
| Redirection URI(s) | Paste the Redirect URI(s) from Veydra |
| Default launch container | New window (recommended) or Embed |
Show as preconfigured tool when adding an external tool
Save and Copy the Client ID
Click Save changes.Moodle redirects you back to the Manage tools page. Find Veydra in the list and click View configuration details (the ⓘ icon or the link text).Copy the Client ID — this is a string like
a1b2C3d4E5f6g7. You’ll enter it in Veydra next.Also note the Platform ID (your Moodle URL, e.g. https://moodle-demo.veydra.io) and the Deployment ID shown on the details page.Part B: Register Moodle in Veydra
Open LTI Integrations in Veydra
Sign in at app.veydra.io → go to Account → LTI Integrations in the left sidebar.
Click Register Platform
Click the Register Platform button in the top right of the Registered Platforms section.
Select Moodle Preset
In the modal that opens, set LMS Type to Moodle. This auto-fills the three endpoint URL paths.
Fill in Platform Details
| Field | What to enter |
|---|---|
| Platform Name | A friendly name, e.g. University Moodle |
| Issuer (Platform ID) | Your Moodle URL, e.g. https://moodle-demo.veydra.io — the endpoint URLs auto-fill as you type |
| Client ID | The Client ID you copied from Moodle (Step A3) |
| Deployment ID | The Deployment ID from Moodle (optional, often 1) |
| Default Lab | Select the lab students should land on |
| Default Role | Usually Student |
The Authentication Login URL, Access Token URL, and Public Keyset URL are auto-filled by the Moodle preset:
https://your-moodle.edu/mod/lti/auth.phphttps://your-moodle.edu/mod/lti/token.phphttps://your-moodle.edu/mod/lti/certs.php
Part C: Add a Veydra Activity to a Course
Add an External Tool Activity
In the section where you want the activity, click Add an activity or resource → select External tool.
Configure the Activity
| Field | Value |
|---|---|
| Activity name | e.g. System Dynamics — Population Model |
| Preconfigured tool | Select Veydra from the dropdown |
| Launch container | New window (recommended) |
Targeting a Specific Lab (Optional)
If you want this activity to open a different lab than the default, expand Tool configuration and in the Custom parameters field add:your-lab-slug with the slug of the lab (visible in the URL when you visit the lab, e.g. population-dynamics).Verifying the Integration
After completing the setup, verify these scenarios:✓ First-time student launch
✓ First-time student launch
- Log in to Moodle as a student enrolled in the course
- Click the Veydra activity
- The student should be redirected to the Veydra lab
- In Veydra’s Account → Manage Labs → [Lab] → Users, the student should appear with the configured role
✓ Returning student launch
✓ Returning student launch
- The same student clicks the activity again
- They should be signed in instantly (no new account created)
- Their previous work in the lab is preserved
✓ Instructor launch
✓ Instructor launch
- Log in to Moodle as the course instructor
- Click the Veydra activity
- The instructor is provisioned with the role configured on the platform registration (change to “Instructor” for elevated access)
Troubleshooting
"This tool is not configured correctly" in Moodle
"This tool is not configured correctly" in Moodle
This usually means one of the URLs is wrong. Go back to Manage tools → Veydra → Settings and verify:
- The Tool URL matches the Launch URL from Veydra
- The Initiate login URL matches the Login Initiation URL
- The Public keyset URL matches the JWKS URL
- LTI version is set to LTI 1.3 (not 1.0/1.1)
Blank screen or redirect loop
Blank screen or redirect loop
Check that your Moodle site URL uses HTTPS and is accessible from the internet. Veydra’s backend needs to reach Moodle’s keyset URL (
/mod/lti/certs.php) to verify signatures."Platform not found" error in Veydra
"Platform not found" error in Veydra
The Issuer field in the Veydra platform registration doesn’t match what Moodle sends. Verify:
- No trailing slash (use
https://moodle.example.comnothttps://moodle.example.com/) - The protocol matches (
https://vshttp://) - The domain is exactly right (check for
www.prefix differences)
Students see a different lab than expected
Students see a different lab than expected
Check these in order:
- Does the activity have a
lab_slugcustom parameter? That takes priority. - If not, the Default Lab on the platform registration is used.
- If neither is set, students may see an error. Set a default lab on the platform registration.
Student accounts are created but not linked to existing Veydra accounts
Student accounts are created but not linked to existing Veydra accounts
Linking happens by email address. If the student’s Moodle email differs from their existing Veydra email, a new account is created. To merge accounts, contact support.
Moodle Version Notes
| Moodle Version | LTI 1.3 Support | Notes |
|---|---|---|
| 4.0+ | ✅ Full | Recommended. Full LTI Advantage support. |
| 3.10–3.11 | ✅ Full | LTI 1.3 available but UI slightly different. |
| 3.7–3.9 | ⚠️ Partial | LTI 1.3 added in 3.7 but keyset URL support improved in 3.10. |
| < 3.7 | ❌ None | Only LTI 1.1 supported. Upgrade recommended. |

