以前に投稿したGoogle Apps Scriptでメールを送信するに、お問い合わせの送信があった際にSlackの特定のチャンネルに通知されるようにしてみます。
設定方法
Slackへの通知の実装にIncoming Webhookを使用しますが、設定方法は以前記事を投稿していますので、詳しくはそちらを確認ください。
Incoming Webhookで作成したWebhook URLを使って、以前作成したGoogle Apps Scriptのコードを以下のように変更します。
function doPost(e) { // POSTした内容を取得 var name = e.parameter.name; var mail = e.parameter.mail; var body = e.parameter.body; // スプレッドシートへの書き込み var spread = SpreadsheetApp.getActiveSpreadsheet(); var lastRow = spread.getSheets()[0].getLastRow(); spread.getSheets()[0].getRange((lastRow + 1), 1).setValue(name); spread.getSheets()[0].getRange((lastRow + 1), 2).setValue(mail); spread.getSheets()[0].getRange((lastRow + 1), 3).setValue(body); // 自動返信メールの送信 sendAutoReply(mail, { name: name, body: body, }); // Slackへの通知 notifyToSlack({ name: name, mail: mail, body: body, }); // returnの設定 var jsonData = { name: name, mail: mail, body: body, result: 'ok' } return ContentService.createTextOutput(JSON.stringify(jsonData)) .setMimeType(ContentService.MimeType.JSON); } function sendAutoReply(mail, data) { var title = 'お問い合わせありがとうございます。'; var body = '以下の内容でお問い合わせが送信されました。\n'; body += 'お名前:' + data.name + '\n'; body += 'お問い合わせ内容:\n'; body += data.body + '\n'; MailApp.sendEmail(mail, title, body); } function notifyToSlack(data) { var webhookUrl = 'WebhookのURL'; var body = '以下の内容でお問い合わせがありました。\n'; body += '名前:' + data.name + '\n'; body += 'メールアドレス:' + data.mail + '\n'; body += 'お問い合わせ内容:\n'; body += data.body + '\n'; var jsonData = { text: body }; var options = { method: 'post', contentType: 'application/json', payload: JSON.stringify(jsonData) }; UrlFetchApp.fetch(webhookUrl, options); }
50行目にSlackのIncoming Webhookで作成したWebhook URLを追加してください。
コード変更後にデプロイを行い、お問い合わせフォーム内のウェブアプリURLを変更します。
お問い合わせフォームの送信を行い、その内容がSlackで通知されたらOKです。
コメントが承認されるまで時間がかかります。