無料のサービス連携ツール「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で動作を確認しています。