AnsweredAssumed Answered

Deep Link launch issue?

Question asked by Glenn Oslin on Feb 20, 2020
Latest reply on Mar 21, 2020 by Stephen Vickers

Posting this on behalf of one of my developers, we've had radio silence from support for over a week and would really like to get this working in Canvas since it works in the other major LMS 


So we are trying to improve the flow of some of our LTI’s and after some research decided that deep linking is a good way to do it. I might be missing something because I can’t create one yet.


I was taking a look at


  • What “Lti advantage service” should my dev key have? (I just activated them all, so we shouldn’t have any issue here)
  • What “placements” should my dev key have? I have editor button and assignment selection
  • The one for editor button works but I’m not expecting AGS there. But according to
  • It looks like assignment selection is the correct one


There are 7 steps

  1. the user can select "External Tool" from the Submission Type dropdown.
  2. They then choose "Find" and select the tool they wish to select content from.
  3. Canvas then performs a Deep Linking launch request (if configured) to the tool and the user is presented with a tool-side UI to select or create a single LTI resource.
  4. The tool can return an LTI deep linking message back to Canvas with a URL for the LTI resource. Usually this is a URL with resource identifiers in the url.
  5. When students view the assignment, Canvas launches to the URL returned by the tool.
  6. If a resource identifier was provided as part of the url, then the tool will see this in the launch payload and be able to look up and render the correct resource.
  7. After completing the tool-side assignment, tools may optionally return a grade and/or submission. See the Grading ( documentation for more details.


Step 1, 2, 3 are correct. But I’m stuck at step 4, I’m pretty sure I’m sending a correct JWT


Here’s a video


Here’s an example JWT that I’m sending back (You can see the custom parameters and line item)




BTW, this flow is working correctly in Blackboard and D2L. Which makes me think I’m just missing one step or placement.


Does Canvas not support sending custom params/line item at that point of the process?