Integrating external tools such as GivePulse can greatly enhance the functionality and learning experience within Canvas. If you're looking to integrate GivePulse with Canvas using LTI 1.3, this comprehensive guide will walk you through the process step-by-step. From configuring the LTI Key settings to adding GivePulse as an app in Canvas, we can ensure that you have a smooth and seamless integration of the two applications.
⚠️ Please review this documentation before starting: Things to Know About LTI/LMS ⚠️
This article will cover:
- Setting up Givepulse to Canvas
- How to make the GivePulse LTI app hidden/disabled by default
- Opening GivePulse in a New Tab vs. the Same Tab
- Adding the GivePulse App to Canvas
- Account (Root) Level Set up:
- Sub-Account Level Set up:
- GivePulse Configuration
-
Accessing the GivePulse App inside Canvas (For Instructors)
For Canvas 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. GivePulse LTI does not support automatic roster syncing via Canvas LTI; student enrollment/rosters must be managed separately through (SIS, SFTP, API, or manual). - Frequently Asked Questions and Tips
- Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
What GivePulse currently supports in Canvas LTI 1.3 is:
- LTI launch and authentication
- Course linking/mapping based on identifiers (Term, CRN, course attributes)
- Deeplinking into an existing GivePulse course
What it does not support:
- Does not automatic roster provisioning or syncing from Canvas
- Does not import or create enrolled students via Canvas LTI 1.3
So if students appear in GivePulse, that is due to:
- Creating users via Manual/SIS/SFTP/API processes
Setting up GivePulse to Canvas
1. First, go to your group’s Admin dashboard.
2. Click on 'More Tools' and then 'LTI.'
3. You will then see the LTI Configuration screen below.
4. Use a different browser window/tab to log into Canvas as an admin. Navigate to the Admin section:
5. Navigate to 'Developer Keys' in the navigation.
6. Click on Developer Key and select LTI Key.
7. Fill in the Key Settings information.
-
- a. Key Name - Set to GivePulse
- b. Redirect URIs - Copy the value from the OIDC Redirect URL field in GivePulse. Paste the value in the following fields in Canvas. For deeplinking/Editor button support, add the editor URL as shown in the screenshot. (https://{your-subdomain}.givepulse.com/lti/editor)
- c. Target Link URI - Same as Redirect URI.
- d. Method - Choose Manual Entry.
- e. Title Set to GivePulse.
- f. Description - GivePulse.
- g. OpenID Connect Initiation URL - Copy the OIDC Connect Initialization URL out of GivePulse. Paste the value in the following field in Canvas.
- h. JWK Method - Choose Public JWK URL.
-
i. Public JWK URL - Copy the Keyset URL out of GivePulse. Paste the value in the following field in Canvas.
⚠️ Alert: Be sure to remove any forward slash at the end of the URLs.
8. In the LTI Advantage Services section, you want to check everything to ON.
9. Copy the Domain value out of GivePulse. Paste the value In the Domain field in the Additional Settings section. (Please be sure to remove the slash / at the end of the URL - You will receive an error if included.)
10. Make sure the Privacy Level is set to Public.
11. In the Placements section, click the drop-down menu and choose Course Navigation, Editor Button to add it.
12. Add Target Link URI for both placements as shown in the screenshot
Click the Save button.
13. In the Developer Keys list, find the key we set up, toggle the State to ON, and copy the value (Client ID) in the Details column.
14. Copy the value of the Key from the Show Key button under Client ID. Paste this value in the GivePulse configuration for both the application key and secret.
How to make the GivePulse LTI app hidden/disabled by default
Following this process, the tool will be set to be hidden by default in the course navigation. After the LTI is fully installed, navigate to the Developer Keys page and select 'Edit' for the GivePulse integration. Change the configuration method to 'Paste JSON' to access the entire integration code, which includes information about the tool's placement in the course navigation.
Review the highlighted additions below; copy and paste those 2 lines in the given course_navigation placement code fragment.
(Optional)Opening GivePulse in a New Tab vs. the Same Tab
If your institution wants to open the modal in a new tab instead of inside an iframe they can follow these steps:
-
Create the developer key as per the instructions.
-
Edit the key, switching the configure method from Manual Entry to Paste JSON to reveal the code.
- Add the line "window target": "_blank", to the “placements” config:
- After saving the developer key, delete the original App instance and created a new one so it would inherit the code fix.
- Update the Client ID and Deployment ID in the GivePulse Admin Dashboard for the LTI.
Adding the Givepulse App to Canvas
In Canvas, go to the account, subaccount, and/ or course that you’d like to be available in as an LTI 1.3 app.
Account (Root) Level Set up:
The steps below enable a one-time setup of GivePulse so you won't need to reinstall the app with each new course/semester.
- Navigate to Admin - Settings - Apps - View App Configurations - +App.
- Select Configuration Type: By Client ID and enter the Client ID of the Developer Key (from the previous step).
-
Click Submit and save your Deployment ID for a later step.
Sub-Account Level Set up:
Same setup as a root-level placement, but add the app in the relevant sub-account instead.
Course Level App Placement
The steps below are for those who prefer to do a manual install of GivePulse each time it is added to a new course and/or each time a new semester begins.
- Navigate to Courses - Select the Course - Settings - Apps - View App Configurations - +App.
- Change Configuration Type to By Client ID by clicking the drop-down menu. Paste in the Client ID value we copied in the above step.
- Click Submit, click Install, and save your Deployment ID for a later step.
GivePulse Configuration
Go back to the GivePulse Configuration browser window/tab and fill in:
- Client ID - Paste the Client ID value we copied in the above step.
- Deployment ID - Paste the Deployment ID value copied in the above step.
- Application Key and Secret - Paste the Key value copied in the above step.
- OIDC Issuer - Set to https://canvas.instructure.com
- Auth Request Endpoint - Set to https://canvas.instructure.com/api/lti/authorize_redirect
- Keyset URL - Set to a URL like https://<your-canvas-domain>/api/lti/security/jwks For example, if your canvas domain is https://example.instructure.com, then you should fill in https://example.instructure.com/api/lti/security/jwks
- Auth Token Endpoint Set to URL like https://<your-canvas-domain>/login/oauth2/token
- Click Save
Accessing the GivePulse App inside Canvas (For Instructors) (Deep Linking)
Once the GivePulse app is installed in Canvas, instructors can access it in two primary ways:
- Course Navigation
- Editor Button
1. Course Navigation:
This visibility depends on proper course and user mapping. If the GivePulse app is set to be hidden/disabled by default, an instructor will have to go to the course settings and enable the app. (Make sure to click Save)
Once properly enabled and saved, an instructor will be able to see the link for the GivePulse app in the sidebar course navigation in Canvas.
If the mapping of the course and the user is done correctly, by clicking on the course navigation link, an instructor will be logged in and see the manage page for the course in GivePulse.
When students are logged in, they will see the public page of the course in GivePulse.
2. Editor Button:
Instructors can embed GivePulse content using the Editor Button available in assignment sections, as shown in the following screenshots below. This functionality uses LTI deep linking to insert content or iframes directly into assignments.
For Canvas 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.
If you have any questions, please review Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
Your options for syncing course data with GivePulse so you have a full understanding of the available approaches, the pros and cons of each, and can continue testing to ensure everything is functioning correctly.
Consider the Institution’s Current Courses Setup
Consider how the institution is creating courses on GivePulse.
If the institution is syncing courses via API or SFTP, then your LTI should be set to Read Only.
If you are using Read Only and are not syncing courses then your team/instructors/admins will need to create courses manually by follow these steps: Create, Duplicate Class/Course, and Manage Class/Course
Read + Write Canvas (LTI 1.3) requires the LMS to be the source of truth for courses and rosters. When enabled, GivePulse will automatically create courses and assign student memberships based on Canvas data at the time of sync. However, the roster will not be updated. It is only created once when the student clicks on their course in Canvas.
When a user (student or instructor) clicks the GivePulse link inside Canvas, Canvas sends an LTI launch to GivePulse and checks whether a user with that email already exists. If not, GivePulse automatically creates the user account if it cannot find a match. The user is then placed into the correct course context and assigned membership based on their role.
To safely use Read + Write, the institution must have clear filtering parameters in place (such as term, department, course tags, CRNs, or SIS identifiers) so that only intended courses are synced. Without these constraints, Read + Write can unintentionally create a large number of courses. Roster updates (adds/drops) do not automatically resync after the initial creation, which is why Read+Write works best for tightly scoped or static course sets.
Please review Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
Course Sync Pathways
There are two primary ways institutions sync courses using systems like Canvas and/or API/SFTP:
Option 1: SFTP Sync + Canvas Integration (Read Only)
Recommended approach
This option uses the instituition's SIS Student data sync to send course and roster data, while keeping the Canvas integration in Read Only mode. You can send students.csv and instructors.csv to sync user information. You also have the option to include additional files such as terms.csv, courses.csv and course_students.csv, which allow courses to be automatically created in GivePulse and students to be assigned membership in their respective courses.
If you are not sending terms or courses csv, the courses will need to be created manually.
By including these additional files, courses and rosters can be automatically created and updated whenever changes occur, as students are added or dropped mid-semester.
With Canvas set to Read Only, GivePulse scans existing courses and attempts to match them using a unique identifier (i.e., a CRN). Once a match is detected, the systems sync and enable the GivePulse navigation link within Canvas. Please note that in Read Only mode, students are not automatically assigned membership to courses through Canvas alone.
Option 2: Canvas Integration (Read & Write)
When the Canvas integration is set to Read & Write, GivePulse treats Canvas as the source of truth for both courses and rosters. Courses are automatically created in GivePulse, and students are immediately assigned membership based on the Canvas roster.
One important consideration with this setup is that roster membership is only created at the time of the initial sync. If a student adds or drops a course after that point, their GivePulse course membership will not automatically update. This limitation is why Option 1 is typically recommended, as it helps with roster changes are reflected within 24 hours via the data sync.
Please review Canvas LTI 1.3 + GivePulse Setup & Troubleshooting Checklist
Comments
0 comments
Article is closed for comments.