Skip to content

Instantly share code, notes, and snippets.

@andychase
Last active February 15, 2024 07:53
Show Gist options
  • Star 37 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save andychase/e0b1eaa1b9ecc00ef2d2 to your computer and use it in GitHub Desktop.
Save andychase/e0b1eaa1b9ecc00ef2d2 to your computer and use it in GitHub Desktop.
Google Forms Slack Notification
// Google Forms Slack Notification
// Andy Chase <github.com/andychase>
// License: CC0 1.0 Universal <creativecommons.org/publicdomain/zero/1.0>
// Install 1: This code goes in ( tools > script editor... ) of your google docs form
// Install 2: ( resources > current project triggers ) ( [onSubmit], [from Form], [On form submit] )
// Setup 1: Put your slack api url below
var POST_URL = "https://hooks.slack.com/services/";
function onSubmit(e) {
var response = e.response.getItemResponses();
// Setup 2:
// Modify the below to make the message you want.
// See: https://developers.google.com/apps-script/reference/forms/form-response
var d = e.response.getRespondentEmail() + " | " + response[0].getResponse();
var payload =
{ "payload": '{"text": "' + d + '"}' }
var options =
{
"method" : "post",
"payload" : payload
};
UrlFetchApp.fetch(POST_URL, options);
};
@ldanielswakman
Copy link

I've been getting an error for this snippet, which used to run smoothly without problems for the past year. It says Authorization is required to perform that action., which I found here. I re-authorised the script, which prompted the 'Review authorisations' as mentioned, but it didn't solve the issue. Any ideas?

image

@rahim-figs
Copy link

How do I get the API link to a private slack channel?

@rpsene
Copy link

rpsene commented May 9, 2017

if (typeof e === "undefined") {
e = {namedValues: {"blah": ["blah"]};
messagePretext = "blah blah blah";
}

@jolanbailey
Copy link

Any solutions for the following?

TypeError: Cannot read property "response" from undefined. (line 11, file "Code")

@jenkliu
Copy link

jenkliu commented Oct 3, 2018

Looks like Google changed their menu organization, so line 5 should be:

// Install 2: ( Edit > current project triggers ) ( [onSubmit], [from Form], [On form submit] )

("Current project triggers" is under "Edit", not "Resources".) After that it worked like a charm. Thanks for sharing!

@nicoarapaul
Copy link

I try the above script but give 400 response the Post call, and then I update this:
var payload =
{
"text": d
}
var options =
{
'method' : "POST",
'contentType': 'application/json',
'payload' : JSON.stringify(payload)
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment