Publish Email Messages to Slack with Google Scripts

You can easily publish important email messages coming into your Gmail to a Slack channel using Google Apps Script. Your Slack channel has a Webhook URL and you can send a POST HTTP request to this URL with the email message in JSON format as the payload parameter.

You can archive the message, or apply a specific Gmail label, to prevent duplicate posts in Slack for the same message. Credit: @matsuyoro

var postUrl = "";
var postChannel = "#labnol";
function postGmailToSlack() {
  var threads = GmailApp.getInboxThreads();

  for(var m in threads) {
      sendHttpPost(threads[m].getFirstMessageSubject() + " link:" + threads[m].getPermalink(), "GMAIL");

function sendHttpPost(message, username)
  var jsonData =
     "channel" : postChannel,
     "username" : username,
     "text" : message
  var payload = JSON.stringify(jsonData);
  var options =
    "method" : "post",
    "contentType" : "application/json",
    "payload" : payload

  UrlFetchApp.fetch(postUrl, options);