cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
angela_kim
Community Member

Mail Merge in Canvas Message?

Jump to solution

Hello,

I am wondering if there's any way to do mail merge-type of messaging in Canvas.

For example, if I have an Excel file with student's last name, first name, along with some other data.  Could I use Canvas message just like email?

The only reason I would like to use this is because I know my students check Canvas inbox a bit more than email.

Thank you. 

1 Solution

Accepted Solutions
kmeeusen
Community Coach
Community Coach

Hi  @angela_kim  

Because the Canvas Inbox is not email, it lacks the kind of functionality necessary to do what you are asking. Addressing an Inbox message is limited to choosing a course, then the users in that course, with no back end functionality that would permit entering some kind of recipient list.

There is a feature idea open for voting which might meet your needs, and you can check it out at https://community.canvaslms.com/ideas/4717-email-message-multiple-classes-at-one-time 

If not, then you may  want to suggest this as a feature idea yourself. Learn how at How does the feature idea process work in the Canvas Community?

Kelley

View solution in original post

0 Kudos
8 Replies
kmeeusen
Community Coach
Community Coach

Hi  @angela_kim  

Because the Canvas Inbox is not email, it lacks the kind of functionality necessary to do what you are asking. Addressing an Inbox message is limited to choosing a course, then the users in that course, with no back end functionality that would permit entering some kind of recipient list.

There is a feature idea open for voting which might meet your needs, and you can check it out at https://community.canvaslms.com/ideas/4717-email-message-multiple-classes-at-one-time 

If not, then you may  want to suggest this as a feature idea yourself. Learn how at How does the feature idea process work in the Canvas Community?

Kelley

View solution in original post

0 Kudos
robotcars
Community Champion

 @angela_kim 

Welcome to the Canvas Community. I'm going to share this with the Canvas Developers‌ and Canvas Admins‌ user groups for extra visibility, maybe they'll have some more suggestions.

As far as I know the only way to do anything similar to what you're describing is with the API, specifically Conversations - Canvas LMS REST API Documentation. With this end point you can pass arguments to create conversations in Canvas to specific users, with a custom message, and context (course or group). This method requires some programming, and an access token. How do I manage API access tokens as an instructor? 

I use this endpoint to send notifications to student's. I use a database to generate my list of recipients, but a spreadsheet exported to CSV can work too. If this seems like a solution you'd use I'd be happy to provide details and assistance.

robotcars
Community Champion

minions pulling rope

Thank you so much for the comment. 

Just to clarify, if I'm able to figure this out, would I be able to send multiple, yet individualized conversations at once?

If so, I would like to give this a try.  What would you say a difficulty level of the "some programming" required?

Thank you so much. 

How individualized is the message, is the content the same with some values changed, or is each message unique for the student? Are the messages associated with a single course, or specifically sent to the student? The entire script would be a couple of files and some dependencies, with some help from the community I'd call it intermediate. What kind of computer are you using, Mac or PC?

James
Community Champion

As far as I know, there is no facility for customization of messages. Every time the body of the message differed, even if by a single word or number, it would need to be a new message. You would only be able to send a message to multiple students at the same invocation if the messages were identical.

Now, if you write a script or program to do this, then it appears the user that it is a single run, but if you had 20 students and started it with "Hello <first name>, you currently have <score> in the class" then you're going to a need 20 API calls.

robotcars
Community Champion

That's what I do. Assuming a Mail Merge is a templated message with some substitutions.

I populate a queue in SQL of the values for each message, the teacher, student, and course. The message is standard with interpolation, and each message is sent from the teacher to the student, customized, with a context_code for the course. I logged the conversation_id to the queue after success, and can tie these back to Canvas Data after refresh, tracking comments, and removing students who opt out.

I was thinking this would be similar in CSV (from Excel) if she wants to send each student in the sheet a standardized message, with a few columns of personally relevant values. The script would read an exported CSV and iterate, sending one conversation request to the API for each row.

@robotcars 

I'd like to be able to do something like this, could you help me? Basically, I'd like to send a message like:

Dear [name]

Your [nameoftest] has been scheduled for [date/time] in room [room].

from a csv with those column names.

TIA!