Kintone × Google Apps Scritでメール通知実装機能を実装する方法

<h2>はじめに</h2>
Kintoneの標準機能では、レコード追加、編集後にメールを送る機能は1アカウントごとに設定が必要です。
1アカウントを使いまわしている企業にとっては不便な仕様となっています。
この問題を解決するために、KintoneとGoogle Apps Scriptをwebhookで連携し、任意のユーザーに対してメール通知を送る機能を実装します。
<blockquote>Webhook は、2 つのアプリケーション・プログラミング・インタフェース (API) 間の軽量なイベント駆動型の通信を可能にする HTTP ベースのコールバック機能であり、Webhook はさまざまな Web アプリケーションで他のアプリケーションから少量のデータを受信するのに使用され、また GitOps 環境での自動化ワークフローのトリガーにも使用されます。</blockquote>

<h2>Google Apps Script側での設定方法</h2>
<ol>
  <li>Googleアカウントにログインする</li>
  <li>Googleドライブを開く</li>
Chromeの場合、アプリメニューからドライブをクリックするとドライブが開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/020e5518-a3a4-1d65-d518-4c54d38bbfbe.png)

  <li>スクリプトファイルの作成</li>
ドライブにログイン後、スクリプトファイルを作成したい場所で右クリック→その他→Google Apps Scriptを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/556383ad-b2ee-6888-9675-eed4e62a5b8d.png)

<li>コーディング</li>

```javascript:Kintone.js
function doPost(e) {

  /********************/
  /* 問い合わせ情報の取得 */
  /********************/
  const parsedJson = JSON.parse(e.postData.getDataAsString());
  const support_Days = parsedJson.record.対応年月日.value; 
  const support_Time = parsedJson.record.対応日時.value;
  const supporter = parsedJson.record.対応者.value; 
  const incident = parsedJson.record.障害内容.value; 
  const result = parsedJson.record.結果.value; 

  /*************/
  /* 通知先情報 */
  /*************/
  const subject = "ここに件名を記載する";
  const email_to = "ここに宛先メールアドレスを記載する";
  const email_from = "ここに送信者メールアドレスを記載する（GmailアカウントでOK）";

  /**************/
  /* メッセージ本文 */
  /**************/
  let message_body = "対応を行いました。\n";
      message_body += '■対応年月日\n';
      message_body += support_Days+'\n';
      message_body += '■対応日時\n';
      message_body += support_Time+'\n';
      message_body += '■対応者\n';
      message_body += supporter +'\n';
      message_body += '■障害内容\n';
      message_body += incident +'\n';
      message_body += '■結果\n';
      message_body += result +'\n';

  /**************/
  /* メッセージ送信 */
  /**************/
  GmailApp.sendEmail(
    email_to,
    subject,
    message_body,
    {
      from: email_from, 
      name: "送信者の名前"
    }
  ); 
}
```
</ol>

<h2>スクリプトの説明</h2>
<B>Kintoneアプリのレコード情報の取得</B>
parsedJson.record.○○.value
<br>〇〇を使用するアプリの各名称を記入してください。

```javascript:
  const parsedJson = JSON.parse(e.postData.getDataAsString());
  const support_Days = parsedJson.record.対応年月日.value; 
  const support_Time = parsedJson.record.対応日時.value;
  const supporter = parsedJson.record.対応者.value; 
  const incident = parsedJson.record.障害内容.value; 
  const result = parsedJson.record.結果.value; 
```
<B>メール送信</B>
””の中に各項目の記載をしてください。
email_toはスクリプト作成しているGmailアドレスを記載してください。
```javascript:
  const subject = "ここに件名を記載する";
  const email_to = "ここに宛先メールアドレスを記載する";
  const email_from = "ここに送信者メールアドレスを記載する（GmailアカウントでOK）";
```
<B>送信者の名前</B>
ここに受信者へ表示させたい送信者の名前を記載してください。
```javascript:
name: "送信者の名前"
```
<h2>スクリプトの公開設定</h2>
<ol>
  <li>デプロイをする</li>
デプロイ→新しいデプロイをクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/1dd7506d-76f8-31b7-05e6-e35e5316d857.png)

  <li>公開設定</li>
種類の選択:ウェブアプリ
アクセスできるユーザー:全員

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/92e59ac4-f0e3-6127-74dc-20d98c3a11f6.png)
</ol>
<h2>Kintone側での設定方法</h2>
<ol>
  <li>webhookを有効にする</li>
アプリ内設定から設定タブのwebhookをクリックしてください。
  <li>追加するをクリック</li>
  <li>Webhook URLを貼り付け、通知を送信する条件を選択する</li>
Webhook URLは、GAS上でデプロイ完了後に表示されます。
また、デプロイの管理から確認することもできます。
https://を除いたURLを貼り付けてください。
</ol>