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

Using Canvas to post unique NSSE survey links for students

Is it possible to do this?  See the attachment?  Essentially it is posting a unique link to the NSSE on Canvas to each student that has a Freshman or Senior Standing.  Please see the attachment from NSSE.     We have a deadline to indicate interest by October 15. 


Marci Grant


24 Replies
Community Member

Hi ,

This thread is a bit old. But we are trying to the same unique survey links for students in canvas using the NSSE template. NSSE says it can be done in Canvas, Blackboard and Moodle. There is documentation on how to do this in Blackboard. But I can find none for Canvas. Has anyone done this in Canvas? If so how

Community Member

My boss is wanting me to find what other institutions are doing with this.  I went to the WikiSpaces site, yesterday, and put my 2 cents in, "Why isn't there an NSSE LTI for Canvas";-)  Seems if you can put students in a course site, and have an LTI authenticate them to a 3rd party site... and that site even be able to send back info (this person has already taken the survey), then an LTI might work here.

My other route was to see how/if Canvas can send targeted messages to users, and if so, how can I do that "in batch". 

Community Member

Bill Gibson,

This is like a mail merge kind of function...not an LTI kind of integration.

Basically the goal is to send specific students a unique personal  link to complete NSSE survey.

The solution is quite elegant in Blackboard , where only certain authorized students see a block of content and click on in to get served a unique link to the survey.

In Canvas the solution is a like a mail merge marketing email, here each student get an message in their canvas inbox with a message and an unique URL to the NSSE survey.

If you send me a message, I will send you information on how other schools have done this in Canvas. But for sure in Canvas you need a developer to develop a batch process using the Conversation API of Canvas and then executing the batch process.

Learner II

Same question as the above!

NSSE says that they'll provide a file of individualized student survey links, IT staff is solely responsible for posting them, it is very important to post each link accurately, and NSSE will not discuss any technical specifications.

  • The examples on their website only have one institution that puts the link in the LMS (Ball State), and it looks like the general link, not an individualized one.
  • Their presentation powerpoint sends you to a wiki that has no information on Canvas integration.
  • The wiki does have info on the Blackboard integration, and it seems to be possible only by writing a custom theme for Blackboard.

Has anyone does this successfully? I'm assuming that it involves custom javascript?


Hi and MG458913

One thing you might want to consider since this does sound very important, is to contact Canvas Professional Services for help through your CSM.

We had a problem awhile back with a much needed integration that was not really an integration at all, and we needed a similar link added to every course. Their services are reasonably priced.

I hope this helps,



I am hoping someone who is employed by Instructure answers this thread.

This is not a big job....can be done by an admin on Blackboard b creating a war file, uploading the mappings from NSSE and creating a custom block  without needing BB professional services or extra $$.

If this cannot be done in Canvas without custom integration services and $$, then Instructure should just say it.


Hi -

To be fair, my institution does pay good money to have EvaluationKit embed individualized survey links in Canvas, email, and the campus portal, so I was a little taken surprised that NSSE seemed to suggest this was for "campus IT staff" to figure out. I do suspect that for the right person, this job is possible - it's just that I can't spare my right person right now, so I was shamelessly hoping to profit off someone else's good work! - good suggestion! Last project we asked Professional Services about was cost-prohibitive (and turned out to not be easily outsourceable), so we're planning to do it in-house. Glad to hear it worked well for you, and we'll definitely keep them in mind for the future.


This PowerShell script will pull user info from a CSV file and create a Canvas Conversation for each, with the unique Survey URL for each.  **I'm not a programmer, and there is no guarantee with this script, but if it helps, please use it.


$token = "3474~MA07brX7mM7PzhkgIW0m8sp0H0XjHW5CUFJwoiNrRxnrOkWN0ONXDUEjAucDmYza"
$canvas_domain = "" # Your Canvas domain. Use the .test area at first
$headers = @{"Authorization"="Bearer "+$token}

Import-Csv C:\canvas_conversations\source_file.csv | ForEach-Object {
    $user_id = $_.user_id
    $first_name = $_.first_name
    $survey_url = $_."survey_url"

    $uri = "https://"+$canvas_domain+"/api/v1/conversations/?recipients[]=$user_id&subject=NSSE Survey&body=+$first_name, `r`nPlease take the NSSE Survey. `r`nEach survey is especially designed for you. `r`n+$survey_url"

   Write-Host $uri

Invoke-RestMethod -Method POST -uri $uri -Headers $headers



The source_file.csv would have three columns:  user_id, first_name, survey_url

*I have not seen the actual source_file provided by NSSE, but might have to translate the STUDENTID to the Canvas UserID which is used in the API call.  I generated the "Provisioning Report" from the Canvas Admin Menu to give me the Canvas UserID.  **Also remember that the access token needs to be generated by a user with enough permissions to create the Conversations.  I created a "NSSE" user and assigned them to the Account Admin role.

This is what the Canvas Conversation looks like for one student (with dummy Survey URL):


NOTES:  A further caveat...

What if you want to recall these generated Conversations?  The Conversations API does have a "delete" option, but you have to know the Conversation "ID".  I have not found an easy way to create a list of these Conversation IDs.  I thought pushing display output to a logfile would be nice, but it does not appear to be straightforward for PowerShell.  *So, if someone could find a way to generate a list of Conversation IDs to be used to remove them, if desired, that would be great!


Just ran my first complete test on our Canvas Test Site. A little over 2700 students in the list. It took almost 14 minutes to complete, and generated a log file of 10.5 MB. I'm not sure how much quicker it would complete if I did not generate a log file, but the file lists the canvas_user_id, and the survey URL, and a bunch of other data for each student that I really don't need, but don't want to take the time to figure out how to get the sparce info I do want in the log file. I randomly selected 4 students, and checked the generated conversations and the survey URL to make sure they matched with the data file, and they did.


Hi Bill,

Thank you so much for providing some guidance around this! : )

Here at Evergreen, we're looking into implementing unique links for students - any updates to the script, please, or new info?

Thanks so much for your time. : )

Bridget Irish (pronouns: she/her) 

Academic Technologies (Computer Center)

The Evergreen State College

Olympia & Tacoma, Washington

0 Kudos
Top Kudoed Authors