---
title: "Moodle LTI Integration"
slug: "moodle-lti-integration-1"
updated: 2026-03-30T21:06:36Z
published: 2026-03-30T21:06:36Z
canonical: "docs.skillable.com/moodle-lti-integration-1"
stale: true
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skillable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Moodle LTI Integration

To communicate with the Moodle LMS using the LTI 1.3 specification, an API Consumer will need to be configured with standard settings in Skillable Studio. This article will help you configure the values necessary to enable Skillable to provide LTI 1.3 Tool services.

## Best Practices for Integrating with Moodle

The Learning Tools Interoperability (LTI) 1.3 specification allow Learning Management Systems (LMS) or platforms to integrate remote tools and content in a standard way. Follow the step-by-step instructions in this guide to integrate the Moodle LMS with Skillable using LTI 1.3.

## Obtain LTI 1.3 Credentials

Prior to beginning the Moodle LTI 1.3 configuration and integration you will need to request some information by opening a support request with our [customer support team](http://www.skillable.com/customer-support/). In the support details be sure to request the following information.

| **Skillable Field Name** | **Moodle Field Name** | **Field Value Example** |
| --- | --- | --- |
| LTI 1.3 Login / Connect Url | **OpenID Connect Initiation Url** | http://lod-lti-api.labondemand.com/ltiv13/connect/*{API Consumer ID}* |
| LTI 1.3 JWKS Url | **Public Keyset URL** | http://lod-lti-api.labondemand.com/ltiv13/config/jwks/*{API Consumer ID}* |

The following fields are required to configure different aspects of the Moodle LTI 1.3 setup. Copy the field value to Notepad or another text editor for quick reference

| **Skillable Field Name** | **Moodle Field Name** | **Field Value** |
| --- | --- | --- |
| LTI 1.3 Launch Url | **Redirection URI(s)** | https://lod-lti-api.labondemand.com/ltiv13/launch |
| LTI 1.3 DeepLink Url | **Content Selection URL** | https://lod-lti-api.labondemand.com/ltiv13/link |
| LTI 1.3 Icon URL | **Icon Url** | https://www.skillable.com/favicon.svg |

API Consumer Required

To complete an LTI 1.3 integration you must be a current client of Skillable with an API Consumer configured for your organization.

Skillable may require your Customer or Organization ID, Moodle Instance URL, Platform name or other information. It is always recommended to provide as much information as possible with any support request.

## Enable LTI 1.3 support in Moodle

In Moodle 2.2 onwards, the External tool enables users to interact with LTI-compliant learning resources and activities on other websites. This means that LTI 1.3 support is already enabled within Moodle and no special preparation is required for Moodle to accept LTI 1.3 communications.

## Set up the External Tool in Moodle

To set up Skillable as a LTI 1.3 Tool you will need to define Skillable as an External App. The following section will guide you through this process.

### Adding Skillable as an External Tool

In order for Skillable labs to be made available by the Moodle LMS, Skillable must be registered as an external tool within Moodle. This section will guide you through the steps necessary to complete this integration.

1. To access the Site administration options select **Site administration** from the top menu [1].
2. Select **Plugins** from the Site administration menu [2] to view the Plugins and Activity Modules.
3. To be able to manage external tools, from the Activity modules section [3], you will have to select **External tool** [4] --> **Manage tools** [5].

![Moodle Site administration Highlighted](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Site%20administration%20-%20Highlighted%281%29.png)
4. Since Skillable represents a custom LTI 1.3 tool you will need to manually configure it within Moodle. To do this, in the **Add tool** section of Manage tools, select the **configure a tool manually** link.

![Moodle configure a tool manually](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20configure%20a%20tool%20manually.png)
5. Complete the Tool Settings configuration of the External Tool using the following values:

| Field | Value |
| --- | --- |
| **Tool name** | A tool name that instructors will recognize. • **Skillable Labs** |
| **Tool URL** | Selects specific tool configurations within the tool. This value should be supplied by Skillable support and include the lab to be launched. • **https://lod-lti-api.labondemand.com/ltiv13/connect** OR • **https://lod-lti-api.labondemand.com/ltiv13/launch**{Lab ID} **Notes**: (1) The *launch* URL should only be used if you intend to dedicate this External Tool to a single Skillable Lab. (2) The Tool URL can not end in a forward slash |
| **Tool description** | Describes the external tool • **Skillable LTI 1.3** |
| **LTI version** | Skillable only supports LTI 1.3 for this configuration • LTI 1.3 |
| **Public key type** | The Public Key is used to secure the communications. • Keyset URL |
| **Public keyset** | The LTI 1.3 JWKS URL used to determine the key. This value should be supplied by Skillable support. • **http****://lod-lti-api.labondemand.com/ltiv13/config/jwks/**{API Consumer ID} |
| **Initiate login URL** | The connection URL. This value should be supplied by Skillable support. • **http****://lod-lti-api-labondemand.com/ltiv13/connect/**{API Consumer ID} |
| **Redirection URI(s)** | The URI(s) used when making authorization requests. This value should be supplied by Skillable support. • **https://lod-lti-api.labondemand.com/ltiv13/launch** |
| **Custom parameters** | (Optional) To enable instructor access to Skillable’s lab instance monitoring feature, configure these custom fields in the Custom parameters section: lmsclassid=$CourseSection.id lmsclassname=$CourseSection.title lmsstartdate=$CourseSection.timeFrame.begin lmsenddate=$CourseSection.timeFrame.end |
| **Tool configuration usage** | Determines how the tool is displayed to an instructor. • Select **Show as preconfigured tool when adding an external tool** |
| **Default launch container** | Affects the container in which tools are launched. • Select **New window** |
| **Support Deep Linking** | Skillable supports Deep Linking in LTI 1.3. • **Selected** |
| **Content Selection URL** | Used to launch a content selection page from the tool provider. • **https://www.labondemand.com/ltiv13/link** |
| **Icon URL** | Specifies the icon used in the course listing for this activity. This value should be supplied by Skillable support. • **https://www.skillable.com/favicon.svg** |
| **Secure icon URL** | Similar to the **Icon URL** but accessed securely through SSL. • Leave blank |

Note

Your **External tool configuration - Tool Settings** should look similar to the screenshot below.

![Moodle Site administration Highlighted](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Site%20administration%20-%20Highlighted.png)

Lab ID Parameter

You can limit a course to a specific Skillable Lab provided by the External Tool by adding the Lab ID to the **Custom parameters** field of the External tool *after* it has been added to a course. The custom parameter should be entered in the format ***labid={value}***.

1. To make good use of the LTI 1.3 specification, expand the **Services** section and External Tool configuration using the following values:

| Field | Value |
| --- | --- |
| IMS LTI Assignment and Grade Services | Use this service for grade sync and column management |
| IMS LTI Names and Role Provisioning | Use this service to retrieve members' information as per privacy settings |
| Tool Settings | Use this service |

Note

Your **External tool configuration - Services** should look similar to the screenshot below.

![Moodle External Tool Services](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20External%20Tool%20-%20Services.png)
2. Complete the Privacy section configuration of the External Tool using the following values:

| Field | Value |
| --- | --- |
| Share launcher's name with tool | Always |
| Share launcher's email with tool | Always |
| Accept grades from the tool | Always |
| Force SSL | Depends on your scenario (Default: Unselected) |

Note

Your **External tool configuration - Privacy** should look similar to the screenshot below.

![Moodle External Tool Privacy](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20External%20Tool%20-%20Privacy.png)
3. To create your Skillable External Tool select **Save changes**.

Optional Configuraitons

The Miscellaneous section contains optional configurations for your External Tool and can be set to your specific needs.
4. Saving the External Tool in Moodle creates some basic information required to configure a trust relationship. To obtain this information select the **View configuration details** icon on the Tool panel for your new External Tool.

![Moodle External Tool View Configuration](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20External%20Tool%20-%20View%20Configuration.png)
5. On the Tool configuration details dialog, to email a record of the External Tool details to yourself, select the **Email** button and fill out the email for appropriately.

![Moodle External Tools Email Configuration](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20External%20Tools%20-%20Email%20Configuration.png)

Congratulations!

You have now added Skillable as an External App within the Moodle LMS. If it has not already been completed you can continue to Establish Trust between Moodle and Skillable which is the final step in the Skillable to Moodle LTI 1.3 integration process.

## Establish Trust between Moodle and Skillable

The establishment of the trust relationship between Moodle and Skillable is handled in the setup of LTI 1.3 on the Skillable platform. It is secured through the use of private and public keys.

This configuration must be performed by the Skillable support team. The Moodle Client ID may be required to complete this configuration. The Client ID is part of the External Tool configuration details.

Non-Cloud Hosted Instances

If your instance of Moodle is not Cloud-Hosted you must build the base URLs used for Trust enablement.

1. Reply to the original Skillable Support ticket and supply the following information to be used to complete the Trust Relationship

| **Field** | **Tool Configuration** |
| --- | --- |
| LTI 1.3 Issuer | Platform ID • Example: https://moodle.myco.com |
| LTI 1.3 Access Token URL | Access Token URL • **Example**: https://moodle.myco.com/mod/lti/token.php |
| Enable Custom Aud | No |
| LTI 1.3 Authorize Url | Authentication request URL • **Example**: https://moodle.myco.com/mod/lti/auth.php |
| LTI 1.3 JWK Set Url | Public Keyset URL • **Example**: https://moodle.myco.com/mod/lti/certs.php |
| LTI 1.3 Client Id | Client ID • **Example**: 3K6C2LaEwKuK7s |
| LTI 1.3 Scoring | Select one of - Send Activity Level Scores - Send Exam Level Scores - Send Both Activity and Exam Level Scores |
| LTI 1.3 Send Activity Score | If you only want a final summary score select "No" If you want a score for each activity select "Yes" |

Congratulations!

Once Skillable has confirmed that they have completed the LTI 1.3 configuration on the API Consumer for your organization you can continue on to the next exercise, 5. Test the Integration.

## Test the Integration

Now that the setup and configuration of both your Moodle instance and the Skillable API Consumer for your organization have been completed it is time to test the integration. Follow these basic steps to ensure that LTI 1.3 is working for you.

**Prerequisites**:

- A completed Moodle LTI 1.3 setup
- A Skillable API Consumer with LTI 1.3 configured
- A Skillable Lab published to the API Consumer

---

1. Add or edit a course in Moodle. See: [Moodle - Create a Course](https://docs.moodle.org/402/en/Create_a_course)

ID & Secret

You will need the Consumer and Shared Secret. Skillable refers to these as the **API Consumer ID** and the **Secret**.
2. As an administrator, Course Creator, Instructor or other user with permissions to edit a course configuration, search for, and select, the course you just created.
3. Ensure that **Editing** has been turned **on** for the course.

![Moodle Turn editing off](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Turn%20editing%20off.png)
4. To add a new External Tool to your course, on the right-hand side of a course activity, you need to select the **+ Add an activity or resource** link.

![Moodle Add an activity](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Add%20an%20activity.png)
5. From the **Add an activity or resource** dialog, search for and select the **External tool**

![Moodle Add External Tool](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Add%20External%20Tool.png)
6. In the **Adding a new External tool** dialog, enter a descriptive name in the **Activity name** field.
7. From the **Preconfigured tool** field select the name of the External Tool that you have created for Moodle.

![Moodle Adding a new External Tool](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Adding%20a%20new%20External%20Tool.png)
8. Select the **Show more...** link and add a description for the activity in the **Activity description** field.
9. To ensure proper display of your lab content set the **Launch container** field to **New window**.
10. If you have configured a *generic* External Tool you may need to define the Lab ID in the Custom parameters field. To do this select the **Show more...** link and then, in the Custom parameters field add the value ***labid={Lab ID}***.

![Moodle Custom parameters](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20Custom%20parameters.png)
11. Add any other configuration that suits your External tool or lab settings and select **Save and return to course** to submit your External tool configuration.
12. On the **Course** page, select the launch link for the external tool you just configured to launch your lab in a new window and complete the testing of the Moodle LTI 1.3 to Skillable integration.

![Moodle External Tool launch link](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/Moodle%20-%20External%20Tool%20-%20launch%20link.png)

Congratulations!

You have now completed the Skillable Moodle LMS LTI 1.3 integration. To fine-tune your integration or if you have any questions please contact Skillable Support.

Learning Tools Interoperability (LTI) is an education technology specification developed by the IMS Global Learning Consortium. It specifies a method for a learning system to invoke and to communicate with external systems.

API Consumers store unique settings for each API call and use an API key for secure connections that enable the launch of labs and the retrieval of reporting analytics. Configured for Labs by admins, they serve as the bridge between your applications and Skillable Labs to enable a wide array of data integration and automation possibilities.

## Related

- [Blackboard LTI Integration](/blackboard-lti-integration.md)
