無料のサービス連携ツール「n8n」で Gmail の内容を kintone に登録しよう

目次

はじめに

「いろんなサービスと連携して、kintone をもっと便利に使いたい!」

こんな時に思い浮かぶのが、IFTTT や Zapier に代表される「サービス連携ツール」ですよね。

この記事では、無料でさまざまなサービスを連携できる「n8n」を使って、Gmail と kintone を便利に連携する Tips を紹介します。

n8n とは

n8n (External link) は、メールや Slack、Dropbox などのサービスを「ノード」として登録し、複数のノードをつなげて一連のワークフローを作成できるソフトウェアです。
複雑なコードが不要でサービスを連携できる点では IFTTT や Zapier に似ていますが、n8n にはすべての機能を無料で使えるパッケージ版があります。

今回は n8n のパッケージ版を使って、無料でローコードな Gmail × kintone 連携を実現してみます。

Tips イメージ

Gmail で受信したメールの内容を、自動で kintone アプリのレコードに登録します。

事前に必要なもの

n8n のインストール

まずは、ターミナルやコマンドプロンプトで次のコマンドを実行し、n8n をサーバーにインストールします。

1
npm install n8n -g

インストールが完了したら、次のコマンドを実行して n8n を起動しましょう。

1
n8n

ブラウザーから http://サーバーのIPアドレス:5678 にアクセスし、n8n の画面が表示されればインストールは完了です。

kintone アプリの作成

kintone ではじめからアプリを作成し、次のようにフォームを作成してください。

フィールド名 フィールドの種類 フィールドコード
送信元 文字列(1行) from
送信日時 文字列(1行) date
件名 文字列(1行) subject
本文 リッチエディタ text

続いて、「設定」タブの「API トークン」へ移動します。
n8n から kintone へレコードを登録する際に利用する API トークンを生成し、アクセス権の「レコード追加」にチェックを入れておきます。

API トークンを発行できたら、アプリの設定を保存します。

n8n ワークフローの作成

メール受信ノードの作成

n8n の画面右上の「+」ボタンをクリックし、ノード選択画面を表示します。

「Trigger」タブにて「Email」で検索し、ヒットした「EmailReadImap」をクリックします。

「Select Credential」のボックスをクリックし、「Create New」をクリックします。

認証情報の名前や Gmail のユーザー名、アプリパスワードなどを入力し「Create」で Gmail の認証情報を作成します。

項目
Credential Name 好きな名称
User Gmail メールアドレス
Password アプリパスワード
Host imap.gmail.com
Port 993
SSL/TLS オン

Email のノードが返すメールのデータは 3 種類あります。
今回は「Resolved」を選択します。

Gmail を利用する場合は、「Add Option」から「Ignore SSL Issues」を追加し、オプションを有効にしておく必要があります。

ここまで設定できたら、実際にノードが動作するか確認してみましょう。
右上の「Execute Node」をクリックしてノードを実行し、Gmail のメールアドレス宛にメールを送信してみます。

画像のように、メールの内容が自動で取得できれば、正しくノードを設定できています。

HTTP リクエストノードの作成

続いて、メール受信ノードからメールの内容を受け取り、kintone REST API を実行する HTTP リクエストノードを追加します。
「+」ボタンから「Regular」タブにて「Request」と検索し「HTTP Request」をクリックします。

kintone で発行した API トークンを HTTP ヘッダーに配置して認証したいので、認証方法は「Header Auth」とします。

「Header Auth」の「Select Credentials」から「Create New」をクリックします。

認証情報の名称、ヘッダーに含める項目と値を入力し、設定を保存します。

項目
Credential Name 好きな名称
Name X-Cybozu-API-Token
Value API トークン

HTTP リクエストについては、次のように設定しておきます。

項目
Request Method POST
URL https://{subdomain}.cybozu.com/k/v1/record.json
JSON/RAW Parameters 有効

あとは、kintone REST API で kintone に送信する JSON を作成するだけです。
「Body Parameters」の歯車アイコンをクリックし、「Add Expression」をクリックします。

画像の赤枠部分に JSON を記述します。

1 件のレコードを登録する を参考にし、今回は次のように JSON を記述しました。
「html」パラメーターの内容には改行が含まれており、不適切な JSON となってしまうため、ここでは改行などがエスケープされた「textAsHtml」を利用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
    "app": "アプリID", // アプリID はお手元の環境に合わせて変更してください。
    "record": {
        "from": {
            "value": "{{$json["from"]["value"][0]["address"]}}"
        },
        "date": {
            "value": "{{$json["date"]}}"
        },
        "subject": {
            "value": "{{$json["subject"]}}"
        },
        "text": {
            "value": "{{$json["textAsHtml"]}}"
        }
    }
}

JSON を記述したら n8n のトップ画面に戻り、左側のメニューから「Save As」でワークフローを保存します。
保存しないままブラウザーを閉じると設定が消えてしまうので注意しましょう。

最後に「Execute Workflow」でワークフローを実行し、「Active」オプションを有効にしておきます。

動作確認

Gmail 宛にメールを送信すると、kintone にレコードが登録されました!

kintone のコメント機能やプロセス管理を組み合わせれば、チーム内でタスクをうまく共有・処理できそうですね。

おわりに

サーバーを用意する必要があるので「とっても簡単!」とまではいきませんが、n8n を使ってローコードな Gmail × kintone の連携を実現できました。

サーバーは Google Compute Engine の無料インスタンスなどを利用すると良さそうです。

n8n には 有料のクラウド版 (External link) も存在するので、サーバーを用意するのが難しい場合はクラウド版を利用する手もあります。

今回紹介したメールのほかにも、n8n にはさまざまな連携サービスが存在するので、kintone をより便利にするツールとして活用してみてください。

information

この Tips は、2021 年 5 月版 kintone で動作を確認しています。