Creating a Canvas/Slack integration

Jump to solution
sam_dickerman
Community Explorer

Hi Everyone:

I'm a high school Social Studies teacher looking to work on a side project.  We have a program called "Tutorial" which is a sort of structured study hall with about 10 students and 2 teachers.  I really like Slack as a communication platform and I would like to develop an integration that would post a student's Canvas information to a Slack channel that the tutorial teacher could monitor.  For example, past grades or upcoming assignments.

Is there a way to set up Canvas to push that data over to Slack automatically?  Or do I need to make cron jobs on some sort of middleware to hit the API and then push the data over to Slack via the Slack API?

I think I can build the latter option (using ColdFusion believe it or not - I'm an old dog from the .com days) but I'm unsure about building something more tightly integrated with Canvas.

Thanks for any ideas!

Sam Dickerman

Brookline High School

Brookline, MA USA

Labels (1)
1 Solution
tyler_clair
Community Champion

What content were you looking at pushing to Slack? There doesn't look like there is a push mechanism for content in the Canvas API but there is a push communication channel: https://canvas.instructure.com/doc/api/all_resources.html#method.communication_channels.create (Specifically in the communication_channel[type] request param section). In the Slack there are Bot Users https://api.slack.com/bot-users, that acts much like an IRC bot that responds to commands. It even looks like they have specific user accounts for bots. It uses web sockets to communicate so you could poll a discussion thread or conversation every few seconds or minutes to check for new messages or maybe the push communication channel can monitor that for you and the bot could post those new messages to a Slack channel. It doesn't look like there is a way for it to post as the user but you could still get the message. That is what I have found in the Slack API documentation, although I have never used the Slack API before.

I know you are looking for a side project but if you want to take the easy way out I remember seeing a vendor at InstructureCon called YellowDig https://www.yellowdig.com/. One of their tag lines was something like "Its like Slack for education". That may be an easier route as they already have an LTI integration and mobile apps.

View solution in original post