What LMS integration enables
Once your LMS is connected to Puddin via LTI 1.3, the following capabilities are available across all supported platforms:- Single sign-on (SSO) — Students and teachers access Puddin writing assignments directly from your LMS using their existing LMS credentials. No separate Puddin login is required.
- Automatic student enrolment — When a student accesses a Puddin assignment through your LMS for the first time, they are automatically enrolled. No manual enrolment or CSV import is needed.
- Assignment sync — Puddin assignments appear as activities in your LMS course, and submission status is reflected in both systems.
- Grade passback — Where enabled, submission confirmation can be passed back to your LMS gradebook.
- Role mapping — LMS roles (instructor, student) are automatically mapped to the corresponding Puddin roles (Teacher, Student), so permissions are applied correctly from first access.
LTI 1.3 integration requires administrator-level access to both your LMS and your Puddin institution account. If you do not have the necessary LMS permissions, work with your institution’s LMS administrator to complete the configuration steps on the LMS side.
Supported platforms
Puddin Core supports LTI 1.3 integration with the following learning management systems. Select your platform for detailed setup instructions.Moodle
Configure Puddin as an external tool in Moodle using LTI 1.3 with Dynamic Registration or manual key exchange.
Canvas
Add Puddin as a developer key and external app in Canvas for institution-wide or course-level deployment.
Blackboard
Register Puddin as an LTI 1.3 tool in Blackboard Ultra or Original with REST API integration.
Brightspace (D2L)
Set up Puddin in Brightspace by D2L using the External Learning Tools configuration panel.
Manaba
Integrate Puddin with Manaba using LTI 1.3 for Japanese higher education institutions.
How LTI 1.3 integration works
LTI 1.3 (Learning Tools Interoperability 1.3) is the current industry standard for connecting external tools to an LMS securely. The integration uses OAuth 2.0 and JSON Web Tokens (JWTs) to authenticate users and pass context between your LMS and Puddin without exposing credentials. The integration flow works as follows:- A teacher creates a Puddin assignment in the LMS (as an external tool activity).
- When a student clicks the assignment link, the LMS sends a signed launch request to Puddin, containing the student’s identity, their role, and the course context.
- Puddin verifies the request, creates or matches the student’s account, enrols them in the assignment, and launches the writing environment — all without the student needing to sign in separately.
- When the student submits, Puddin records the submission and (if grade passback is configured) notifies the LMS.
Puddin uses the LTI Advantage services — specifically Assignment and Grade Services (AGS) for grade passback and Names and Role Provisioning Services (NRPS) for roster sync. Your LMS must support LTI Advantage for these features to work. Basic LTI 1.3 launch (SSO and enrolment) works without LTI Advantage.
Before you start
Before configuring any LMS integration, confirm the following:Puddin prerequisites
Puddin prerequisites
- Your institution account is created and the data processing agreement is signed.
- Your data retention policy is configured.
- You are signed in to Puddin as an Administrator.
- You have navigated to Integrations → LMS in the Administrator dashboard.
LMS prerequisites
LMS prerequisites
- You have administrator access to your LMS (or can coordinate with someone who does).
- Your LMS is running a version that supports LTI 1.3. Check the platform-specific guide for minimum version requirements.
- You have access to your LMS’s external tools or developer key configuration area.
Network prerequisites
Network prerequisites
- Your LMS server can make outbound HTTPS requests to Puddin’s LTI endpoints.
- If your institution uses an allowlist or firewall rules for outbound connections, add Puddin’s domain to the allowlist before beginning. Contact Puddin support for the current list of required domains and IP ranges.
General integration steps
While the exact steps differ by platform (see the platform-specific guides linked above), the general process follows this pattern for all supported LMS integrations:1
Retrieve your Puddin LTI configuration details
In the Puddin Administrator dashboard, go to Integrations → LMS → Add Integration and select your LMS platform. Puddin displays the configuration values you need to enter in your LMS:
- Issuer / Platform URL
- Client ID
- Deployment ID
- JWKS URL
- Access Token URL
- Authentication Request URL
- Launch URL
2
Register Puddin in your LMS
In your LMS administration area, create a new external tool or developer key and enter the Puddin configuration values from the previous step. The exact location and field names differ by platform — see your platform-specific guide for screenshots and field mappings.
3
Enter your LMS configuration details in Puddin
After registering the tool in your LMS, your LMS generates a set of values (typically a Client ID and platform endpoint URLs) that you enter back in Puddin to complete the handshake. Return to Integrations → LMS in Puddin and enter these values.
4
Test the integration
Use the Test Connection button in Puddin to verify that the LTI handshake succeeds. Then create a test assignment in your LMS, access it as a test student, and confirm that the Puddin writing environment launches correctly and that the student is automatically enrolled.
Troubleshooting common issues
The LTI launch fails with an 'Invalid JWT' error
The LTI launch fails with an 'Invalid JWT' error
This usually means the JWKS URL is incorrect or unreachable, or there is a clock skew between your LMS server and Puddin’s servers. Confirm the JWKS URL is exactly as shown in your Puddin integration settings, and check that your LMS server’s system clock is synchronised.
Students are not automatically enrolled
Students are not automatically enrolled
Check that the NRPS (Names and Role Provisioning Services) endpoint is configured correctly in your LMS and that the Deployment ID in Puddin matches the one registered in your LMS. Also confirm that the LMS is sending a
roles claim in the launch message — without it, Puddin cannot determine the user’s role.Grade passback is not working
Grade passback is not working
Grade passback requires LTI Advantage AGS. Confirm your LMS version supports LTI Advantage and that the AGS endpoint URL is entered in your Puddin integration settings. Some LMS platforms require AGS to be explicitly enabled per tool or deployment.