This article helps you get started with setting up your LTI integration with your Learning Management System (LMS). It outlines the core topics, configuration options, and considerations you should understand before and during setup.
- Whitelist your LMS Instance
- What GivePulse supports with LTI 1.3
- Read+Write vs. Read-Only Mode
- Understanding LTI Roles
- How Courses are Mapped
- If Courses Cannot Be Mapped
- Frequently Asked Questions and Tips
- Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
Before You Begin
Before configuring the LTI integration, confirm the following:
- Your LMS instance has been whitelisted by GivePulse
- You know how courses are being created in GivePulse (API, SFTP, or manual)
- You are working in the correct environment (production vs test)
⚠️ Remember to Whitelist Your LMS Instance ⚠️
Email support@givepulse.com to request that your LMS instance URL be whitelisted before proceeding. If the LMS instance is not whitelisted, the integration may fail or produce errors.
Environment notes:
- If you use a GivePulse subdomain (for example, jcu.givepulse.com), use that URL instead of www.givepulse.com.
- For testing, use dev.givepulse.com or your subdomain dev site (for example, jcu-dev.givepulse.com).
- Contact Support if you need help accessing your Sandbox environment.
What GivePulse supports with LTI 1.3
- LTI launch and user authentication
- Course linking and mapping using identifiers (Term, CRN, course attributes)
- Deep linking into an existing GivePulse course
What GivePulse does not support
- Automatic class roster provisioning or syncing from the LMS
- Importing enrolled students into GivePulse courses via LTI 1.3 alone
Student enrollment note: If students appear in GivePulse, they were added through manual enrollment or separate integrations (SIS, SFTP, or API).
Consider Read-Only vs Read+Write Mode
When to use Read-Only:
Read-Only mode will be used to only read data from GivePulse.
Read-Only mode is recommended when you are mapping an existing GivePulse course (created via API, SFTP, or manually) to an already existing course in your LMS.
When to use Read+Write:
Read+Write mode will be used to write data to GivePulse if necessary (ex, if the GivePulse LTI app is unable to map the LMS course to a course on GivePulse, a new course will be created on GivePulse).
If you are trying to create a new course that does not exist on GivePulse and is not being synced via API or SFTP sync, you can use Read+Write Mode.
Understanding LTI Roles:
Only Instructor and Administrator roles will be mapped as Admin, while Student and Learner roles will be mapped as Member. No other roles will be supported at this time.
If the connection is read-only, and the user already exists in GivePulse, their access will reflect the existing role assigned within GivePulse.
If the connection is read+write, the integration will sync or create the user in GivePulse, but the user will not be assigned any course-specific role.
How Courses are Mapped
We need the following attributes to map courses between the LMS and GivePulse and keep students authenticated on both platforms.
User Attributes Needed
- lis_person_contact_email_primary - User e-mail address. Only provided if the privacy level is set to Public or EmailOnly
- lis_person_name_family - User family name. Only provided if the privacy level is set to Public or NameOnly
- lis_person_name_full - User full name. Only provided if the privacy level is set to Public or NameOnly
- lis_person_name_given - User given name. Only provided if the privacy level is set to Public or NameOnly
- lis_person_sourcedid - User identity, either person sync key (used across system integrations) or user id of Platform user entity id.
- user_id - Platform user entity id (not sync key in any case) Note: This is the platform user id and not the itslearning person id.
- roles - Comma-separated list with institution roles and context roles of the user. Full URN is always provided.
Course Attributes Needed (choose one)
- custom_canvas_course_id=TERM_CRN
- contex_label=TERM.CRN
- lis_course_offering_sourcedid
- You can use any other attributes and format, but we need to be informed.
If Courses Cannot Be Mapped
If the GivePulse LTI app is unable to map a course using the given info, and Read + Write mode is used for integration, it will create a new course on GivePulse with provided info in the request. If Read-Only mode is used, it will redirect to the Explore page and will not create a new course.
FAQ:
⚠️ Alert: If the connection is successful, you’ll be able to connect to the GivePulse site from Canvas via deeplinking. If you run into a login page or homepage, try impersonating a student or instructor assigned to that course, and you should then see the course.
⚠️ Alert: Be sure to confirm that the academic term is visible and not completed.
⚠️ Alert: GivePulse’s LTI 1.3 integration supports course launching and mapping but does not currently implement for automatic class roster syncing. Student enrollment must occur through other mechanisms (via SIS, SFTP, API, or manual processes).
⚠️ Alert: For LTI integrations, only Instructor and Administrator roles will be mapped as Admin, while Student and Learner roles will be mapped as Member. No other roles will be supported at this time.
⚠️ Alert: GivePulse recommends sending course/roster data separately via SFTP or API and using LTI Read Only to map those courses for deep linking in your LMS.
Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
Please review the items below if you are experiencing issues connecting Canvas and GivePulse.
Confirm the GivePulse LTI tool is installed in Canvas using LTI version 1.3
Confirm the tool is installed at the correct Canvas account or sub-account level
Confirm the following placements are enabled: Course Navigation and Editor Button
Confirm you are launching the tool as an Instructor or Administrator enrolled in the Canvas course
Confirm the academic term is active and visible in GivePulse
Confirm all the links are inserted as mentioned in the support article for Canvas 1.3
Confirm if you are setting up as canvas.instructure.com OR canvas.test.instructure.com
Read-Only Integration
If the integration is set to Read-Only, the course must already exist in GivePulse either by API or SFTP. If the course isn’t being sent via API or SFTP, the course should be created manually in GivePulse and mapped using the Course CRN or one of the supported course mapping attributes listed. This will also require a TERM to be created manually if it is not sent via API or SFTP. Once the course exists and the identifiers match, the Canvas integration will recognize and map the course correctly
Confirm Canvas is sending at least one matching course identifier:
- custom_canvas_course_id (example: TERM_CRN)
- context_label (example: TERM.CRN)
- lis_course_offering_sourcedid
Confirm the identifier sent from Canvas exactly matches the course data in GivePulse that was created manually.
This step might require engineers to see what exactly Canvas is sending, but this is the easiest and last step to map the course
Read+Write Integration
Before choosing to use Read+Write, you will need to request to whitelist your LMS instance first. It is not recommended that the institution send courses via SFTP or API, as this can result in the creation of duplicate courses. The expected read+write behavior is that if a matching course does not already exist in GivePulse, the LTI launch creates a new course using the provided identifiers listed above.
Student rosters are not synced via LTI and must be handled through SFTP, API, or manual processes. However, if the student's account does not exist on GivePulse and if that student accesses it via LMS/Canvas, it will create a new account on GivePulse.
- Confirm the academic term exists in GivePulse, is active, visible, and not marked as completed. If the term does not exist or is inactive, courses will still be created under Read+Write.
- Confirm no duplicate or conflicting LTI installations exist for GivePulse within Canvas (for example, old Developer Keys or test installs).
- Confirm the environment matches on both sides (production Canvas with production GivePulse, sandbox with Canvas Test Instance).
Embedding & Editor Button Checks
Confirm content is added using the Canvas Rich Content Editor button, not by pasting links
Confirm the Editor Button Target Link URI points to the GivePulse editor endpoint
Confirm privacy level is set to Public
Confirm the course where the event lives is still open, active, not marked as completed.
Authentication & Security Checks
Confirm the OpenID Connect Initiation URL is correct
Confirm the Public JWK URL is correct
Confirm no URL rewriting or security proxy links are being used in Canvas settings
⚠️ Alert: Be sure to remove any forward slash at the end of the URLs.
Expected Behavior
LTI supports course launching and deep linking only
LTI does not automatically sync student rosters
Student enrollment must be handled through SIS, SFTP, API, or manual processes
(updates to this behavior is being developed; stay tuned for announcements!)
If Issues Continue
Confirm Canvas and GivePulse environments match (production vs test)
Retest using a different instructor account, clear browser cache or use an incognito window, and capture the exact error message with a screenshot including address bar and timestamp for further review.
Capture screenshots of your Canvas configuration settings
Comments
0 comments
Article is closed for comments.