4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GoogleフォームとSlackとメールをGASで連携する【後編 フォームで入力された内容をIncoming Web Hookを使ってSlackで通知する】

Last updated at Posted at 2020-05-14

この記事は、GoogleフォームとGメールを連携するの続きです。

この記事でやること

Googleフォームで送信された内容をGAS経由でIncoming Web Hookを使ってSlackに送ります。

Slack

Incomming Web hook をアプリに追加

1. Slack左側のメニューの下にある、「App + 」をクリック

スクリーンショット 2020-05-14 22.29.19.png

2. 右上のAppディレクトリをクリック

スクリーンショット 2020-05-14 22.29.34.png

3. Incoming Web hookを探して選択

スクリーンショット 2020-05-14 22.30.03.png

4. Slackに追加をクリック

スクリーンショット 2020-05-14 22.30.19.png

5. チャンネルを選択し、Incoming Webhook インテグレーションの追加

スクリーンショット 2020-05-14 22.31.02.png

7. Web hook URLをコピー

スクリーンショット 2020-05-14 22.38.17.png

8. 名前やアイコンを設定する

スクリーンショット 2020-05-14 22.32.30.png

GAS

Web hook URLを書き換える

下記のコードをGmailApp.sendEmail(sendToAddress,mailTitle,mailMessage,option);の下に付け足し、YOUR WEB HOOK URLを、先程コピーしたWeb hook URLに変更してください。

 // Slackへの通知
 var slackMessage = {
    method: 'post',
    contentType: 'application/json',
    payload: '{"username" : "お問い合わせBOT","text":"'+mailMessage+'"}'
  };
 
  UrlFetchApp.fetch("YOUR WEB HOOK URL", slackMessage);

外部サービスとの連携を許可

GASからメール送信することを許可する
の手順を参考に、外部サービスの連携を許可してください。

完成!

これで、Slackにも通知がいくようになりました!

コード全文

GAS
FormApp.getActiveForm();

function sendForm(e) {
  var sendToAddress ="あなたのメールアドレス";
  var serviceName = "【すごいアンケート】";
  var mailTitle = serviceName +'に関する新規のお問い合わせがありました';//メールのタイトルを設定
  var mailMessage = serviceName +'に関する新規のお問い合わせがありました。\n\n';
  var option = {};
  option.from = sendToAddress;
  

  var list=[];
  var itemResponses = e.response.getItemResponses();
  
  //フォームの項目に記述された内容を取得し、itemResponsesとlist
  itemResponses.forEach(function(itemResponse){
    mailMessage += '' + itemResponse.getItem().getTitle() + '\n'
    mailMessage += itemResponse.getResponse() + '\n\n'
    list.push(itemResponse.getResponse())
  });
  
  //フォームのメールアドレスと名前を取得し、それぞれの変数に格納する
  var userName = list[0]; 
  var userMail = list[1];
  
  // 自動返信メール件名
  var subject = serviceName +'にお問い合わせいただきありがとうございました。';
      
  // 自動返信メール本文
  var body = userName + '\n' +
    '\n' +
    'この度は'+serviceName +'にお問い合わせいただき、誠にありがとうございました。' +
    '\n' +
    '後日、弊社担当よりご連絡させていただきますので\n' +
    'よろしくお願い申し上げます。\n' + 
    '\n' +
    '─────────────────────────\n' +
    '署名をココに\n' +
    '─────────────────────────\n' +
    '\n';
  
  // メール送信
  GmailApp.sendEmail(userMail,subject,body,option);
  GmailApp.sendEmail(sendToAddress,mailTitle,mailMessage,option);
 
 // Slackへの通知
 var slackMessage = {
    method: 'post',
    contentType: 'application/json',
    payload: '{"username" : "お問い合わせBOT","text":"'+mailMessage+'"}'
  };
 
  UrlFetchApp.fetch("YOUR WEB HOOK URL", slackMessage);
  
  
}


4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?