Skip to content

Instantly share code, notes, and snippets.

@akash1810
Last active October 13, 2021 13:42
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save akash1810/640a45d5997de1d95f4a to your computer and use it in GitHub Desktop.
Save akash1810/640a45d5997de1d95f4a to your computer and use it in GitHub Desktop.
Google Apps Script to post a message to Slack when someone responds to a Google Form.
/**
* ABOUT
* Google Apps Script to post a message to Slack when someone responds to a Google Form.
*
* Uses Slack incoming webhooks - https://api.slack.com/incoming-webhooks
* and FormsResponse - https://developers.google.com/apps-script/reference/forms/form-response
*
*
* AUTHOR
* Akash A <github.com/akash1810>
*
*
* USAGE
* Free to use.
*/
// Create an incoming webhook here - https://api.slack.com/incoming-webhooks
var POST_URL = "https://hooks.slack.com/services/XXXX/XXXX/XXXX";
function onSubmit(e) {
var response = e.response.getItemResponses();
var fields = [
{"title": "From", "value": e.response.getRespondentEmail()},
{"title": "When", "value": e.response.getTimestamp()}
];
for (var i = 0; i < response.length; i++) {
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
fields.push({"title": question, "value": answer});
}
var summaryAttachment = {
"fallback": FormApp.getActiveForm().getTitle(),
"pretext": "<!channel> New response submitted to: " + FormApp.getActiveForm().getTitle(),
"title": FormApp.getActiveForm().getTitle() + " (responses)",
"title_link": "https://docs.google.com/spreadsheets/d/" + FormApp.getActiveForm().getDestinationId(),
"fields": fields,
"color": "#393939"
};
var responseAttachment = {
"fallback": FormApp.getActiveForm().getTitle(),
"title": "Respond via email? (mailto link)",
"title_link": "mailto:" + e.response.getRespondentEmail() + "?Subject=" + encodeURI(FormApp.getActiveForm().getTitle())
};
var options = {
"method" : "post",
"payload": JSON.stringify({
"username": "Feedback",
"icon_emoji": ":speech_balloon:",
"attachments": [summaryAttachment, responseAttachment]
})
};
UrlFetchApp.fetch(POST_URL, options);
};
@Soegianto
Copy link

I have questions, my forms is using checkbox, it seems the answer is not posted on slack, can you help me? @akash1810 ?

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