Showing results for 
Search instead for 
Did you mean: 
Community Member

Configuring multiple External Tools with the same base URL

If we configure more than one external (LTI) tool with the same URL (but with different custom fields) there doesn't seem to be a way to select the one you want. When setting up the "External Tool URL" it always chooses the same one. Is there a way around this?

Tags (1)
6 Replies
Adventurer III

This is an issue caused by the 2016-02-20 update. When this change was deployed, they essentially cut down the number of possible ​external tools within a given account/course​ path to one per Launch URL. This was a HUGE issue for our use of Chalk & Wire​, as it's configuration utilized the Custom Parameters for identify the assignment within the external tool that was to be loaded. Same Launch URL, different Custom Parameters.

Sadly, it was determined that Instructure has no plans to alter the current functionality of Canvas to accommodate multiple external tools with a single Launch URL.

In our case, it was determined that an alternate implementation was possible wherein we would have the single external tool without any Custom Parameters. When it is selected as the submission type for an assignment or to be linked into the Modules page, we then append the Custom Parameters to the end of the URL as GET variables. Thus far, it has worked for us.

I can't promise this will work for you, though. I'm not an expert on external tools and don't want to get your hopes up, but it may be worth looking into.

Basically, you'd set-up the external tool exactly as you normally would, except that any UNIQUE Custom Parameters would not be included. Say you have an LTI portal for third-party assessments for various types, you only use the "quiz" type, but the configuration requires a type to still be specified. The type can still appear in the Custom Parameters field of the external tool configuration, but any unique identifier for the target activity would need to be appended when the external tool is attached to the course.

Basic External Tool

Name: LTI Quizzes

Launch URL:

Custom Parameters: type=quiz

Default URL When Linking

Modified URL When Linking

I made a little video the other day that basically demonstrates the process: Canvas External Tool (Multi)


Thanks - that is exactly our use case, and I think your workaround will work for us as well. Both Moodle and Acrobatiq allow you to add custom parameters when creating an assignment in a course - would be nice if Canvas supported that as well.


Instructure did support a more traditional external tool system until the update I noted. That traditional system was dropped in favor of a more user-friendly option.

I've been trying to brainstorm an idea for how to restore that functionality without sacrificing the user-friendliness that it was dropped for, but it's not a simply task. Any solution I can think of to suggest would essentially require an overhaul of their external tool selection system, which I'm certain would be shot down regardless of how many votes the idea were to get. Instructure was clear with us that it is not the direction they wish to take it. :S

Community Member

It seems like with this change they are forcing/encouraging content selection at assignment creation time rather than when setting up an App. So each external service will only appear once in the list of Apps?


That was essentially what I got from the situation, but it makes little sense to me. Any other LMS would allow you to configure as many external tools to a single target without so much as batting an eye, they did the same thing prior to this change. I can understand wanting to make it more user-friendly, but it shouldn't have come at the cost of the functionality.

Surveyor II

I took the leap into LTI for the purpose of exposing additional SIS integration tools and custom reports for faculty.

So my initial cartridge XML contained a <blti:launch_url> pointing to my default web page, and I had a single extension entry for the toolkit <lticm:options name="course_navigation"> pointing to the same URL as the launch_url.

This worked perfectly.

My next goal was to understand how to pass a grade back to the gradebook, so I created a custom assignment in the same domain as my toolkit, and tried to create a new extension for the <lticm:options name="homework_submission"> entry.  I pointed <lticm:property name="url"> to the URL of my custom assignment, re-installed my config, and voila, I had a custom assignment type to choose from.  Unfortunately it launched to <blti:launch_url>, which was unexpected, I mean, what is the point of the <lticm:property name="url"> property if it's ignored, right?

So for testing purposes, i.e. I wanted to continue testing my custom assignment and confirm it was properly posting the grade, I updated the <blti:launch_url> to point to my custom assignment, re-installed my app, and boom, I was able to create an assignment using my custom assignment, and grades posted back to the gradebook properly.  Yay : )

At this point, just for fun, I clicked on the toolkit from the menu option...low and behold it launched!

So the <blti:launch_url> works as expected for the "course_navigation", but not for the "homework_submission"?

Here is a sample to illustrate how the XML was defined:


I am not at all sure I would do this in production, it feels very "hackish", and I haven't spent a lot of time testing additional variations.  But, I stumbled across this conversation and thought I would share my observation.