Skip to content

Instantly share code, notes, and snippets.

@danromero
Created February 2, 2017 18:37
Show Gist options
  • Save danromero/34f4b97b082b19ab720cbe60303bf89b to your computer and use it in GitHub Desktop.
Save danromero/34f4b97b082b19ab720cbe60303bf89b to your computer and use it in GitHub Desktop.
// Unique Slack WebHook to post payload (obtained from Slack API website)
// Replace 'XXX' with the unique WebHook URL generated for your application
var webhookUrl = 'https://hooks.slack.com/services/XXX';
// Function that sends payload message to Slack upon form submit
function onSubmit(e) {
// Get most recent form submission as array of fields
var response = e.response.getItemResponses();
// Set each item in array response as separate variable
var recruiter = e.response.getRespondentEmail();
var offer_type = response[0].getResponse();
var candidate = response[1].getResponse();
var candidate_position = response[2].getResponse();
var candidate_level = response[3].getResponse();
var offer_salary = response[4].getResponse().toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
var offer_equity = response[5].getResponse();
// Create payload with a Slack-style message attachment using values for each variable
var payload = {
"payload": '{"attachments": [{"fallback": "A new offer.", "color": "#36a64f", "pretext": "<!channel> Hey everyone! There is a new offer to discuss!", "author_name": "Recruiter: ' + recruiter + '", "title": "Candidate", "text": "' + candidate + '", "fields": [{"title": "Position", "value": "' + candidate_position + '", "short": true }, {"title": "Level", "value": "L' + candidate_level + '", "short": true }, {"title": "Salary", "value": "$' + offer_salary + '", "short": true }, {"title": "Equity", "value": "' + offer_equity + '%", "short": true } ] } ] }'
}
// Method for posting payload
var options = {
"method": "post",
"payload": payload
};
// Send payload to Slack WebHook
UrlFetchApp.fetch(webhookUrl, options);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment