Skip to content

Instantly share code, notes, and snippets.

@huksley
Created June 4, 2025 10:44
Show Gist options
  • Save huksley/84131c6cefccc938b44e3cf6b31e185d to your computer and use it in GitHub Desktop.
Save huksley/84131c6cefccc938b44e3cf6b31e185d to your computer and use it in GitHub Desktop.
AppScript for Google Forms to handle onSubmit. Sends form responses to the URL, in this example to the Slack channel hook
// Your Slack webhook url
var webhookUrl = 'https://hooks.slack.com/services/.....';
/**
* Submit for forms "On form submit" event trigger (add in triggers)
*/
function onSubmit(e) {
var formTitle = FormApp.getActiveForm().getTitle();
var formUrl = FormApp.getActiveForm().getEditUrl();
var response = e.response.getItemResponses();
const email = e.response.getRespondentEmail()
var s = "Signup form response from" + email + "\n\n";
var formResponse = e.response;
var itemResponses = formResponse.getItemResponses();
const blocks = []
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
s += itemResponse.getItem().getTitle() + '\n\n ' + itemResponse.getResponse() + "\n\n"
blocks.push({
"type": "section",
"text": {
"text": "*" + itemResponse.getItem().getTitle() + "*",
"type": "mrkdwn"
},
"fields": [
{
"type": "plain_text",
"text": "> " + itemResponse.getResponse()
}
]
})
}
var payload = {
"payload": JSON.stringify({
"text": s,
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*๐Ÿš€ <" + formUrl + "|" + formTitle + "> got a response from " + email + "*"
}
},
{
"type": "divider"
},
...blocks,
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "๐Ÿ“… Submitted " + formResponse.getTimestamp().toUTCString(),
},
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Open responses"
},
"value": "click_me_123",
"url": formUrl + "/edit#responses",
"action_id": "button-action"
}
}
]
})
}
var options = {
"method": "post",
"payload": payload
};
UrlFetchApp.fetch(webhookUrl, options);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment