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 = "https://hooks.slack.com/services/xxxxxxxxxxxxxxxx";
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);
}