弊社は、お問い合わせフォームのプラグインにContactForm7を利用している。

最近、迷惑メールが多すぎて、お問い合わせフォームからいただいたメールを見逃すことが増えてきたため、ContactForm7から送られてきたものをSlackに送りたいと考えた。その記録を残しておく。

前提

  • GASを自分で組むのは初めて
  • 原始的でOK、イレギュラー対応を考える必要はない
  • スプレッドシートの方で削除、編集は考えていない

尚、誰かのお役に立てればいいなとは思っていますが、あくまでも備忘録的な記事であり、本件についてのお問い合わせはご遠慮ください。

★ほかに、基礎からしっかり解説しているページが多いため、本ページでは、基礎は不要な方を対象としています。

GoogleSpreadSheetに送るプラグインを入れる

CF7 Google Sheets Connector – WordPress plugin | WordPress.org

Send your Contact Form 7 data directly to your Google Sheets spreadsheet.

このプラグインを利用して、問い合わせ内容をGoogleスプレッドシートに転記する。

インストール後に認証を忘れないようにしましょう。

使い方はこちらをご参照ください

STEP
1

SlackにAppを設定する

従来のWebhookの設定は古いそうなので、新しい情報を得て設定。WebhookのURLをゲットする。

Appを設定する方法はこちらをご参照ください

ちなみに、Appの修正は、AppページのYourAppsからしか行けない。他に行ける方法はありそうだが…

STEP
2

GASを設定する

以下のように設定。GASの設定の仕方は、他のページに丁寧に解説されているので、そちらをご覧ください。

function onEdit() {
  //スクリプトに紐付いたスプレッドシートのアクティブなシートを読み込む
  let mySheet = SpreadsheetApp.getActiveSheet();
  //読み込んだシートの最終行を取得する
  let lastRow = mySheet.getLastRow();
  //最終行の内容を取得。5列分。(最後の5を変える)
  //列の最終行の自動取得をしなかったのは、フォームの全ての項目を埋めるとは限らないため
  let values = mySheet.getRange(lastRow,1,1,5).getValues();
  //分割代入
  let name,other;

 //1行目だけ配列を取得(これが正しいのかはわからない)
  [name,other]= values[0];

  notifySalck(`
  問い合わせが来ました
  お名前:${name}
  コメント:${other}
  `);
}

function notifySalck(message){
//下のURLは2でゲットしたものを入れる
  var postUrl="WebhookURL";
  var userName = "ユーザー名";
  var payloadObj = {
    username:userName,
    text:message
  }
  var payloadJson = JSON.stringify(payloadObj);
  var options = {
    method:"post",
    contentType:"application/json",
    payload:payloadJson
  }
  UrlFetchApp.fetch(postUrl,options);
}
STEP
3

トリガーの設定

GASのトリガーを変更時に設定。

STEP
4

以上。

参考書籍

助かりました。GASを学びたい方は必携。

Follow me!