無料のサービス連携ツール「n8n」でGmailの内容をkintoneに登録しよう
はじめに
「いろんなサービスと連携して、kintoneをもっと便利に使いたい!」
こんな時に思い浮かぶのが、IFTTTやZapierに代表される「サービス連携ツール」ですよね。
この記事では、無料でさまざまなサービスを連携できる「n8n」を使って、Gmailとkintoneを便利に連携するTipsを紹介します。
n8nとは
n8n
は、メールやSlack、Dropboxなどのサービスを「ノード」として登録し、複数のノードをつなげて一連のワークフローを作成できるソフトウェアです。
複雑なコードが不要でサービスを連携できる点ではIFTTTやZapierに似ていますが、n8nにはすべての機能を無料で使えるパッケージ版があります。
今回はn8nのパッケージ版を使って、無料でローコードなGmail × kintone連携を実現してみます。
Tipsイメージ
Gmailで受信したメールの内容を、自動でkintoneアプリのレコードに登録します。
事前に必要なもの
- kintone
- Googleアカウント
- Googleアカウントにて、n8nで利用するアプリパスワードを発行してください。
アプリ パスワードでログインする - Googleアカウント ヘルプ
- Googleアカウントにて、n8nで利用するアプリパスワードを発行してください。
- Node.js
- パッケージマネージャを利用したNode.jsのインストール | Node.js (nodejs.org) を参考にして、事前にNode.jsをサーバーにインストールしてください。
- クラウドのVMなど、n8nをインストールするサーバー
n8nのインストール
まずは、ターミナルやコマンドプロンプトで次のコマンドを実行し、n8nをサーバーにインストールします。
|
|
インストールが完了したら、次のコマンドを実行して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」を利用します。
|
|
JSONを記述したらn8nのトップ画面に戻り、左側のメニューから「Save As」でワークフローを保存します。
保存しないままブラウザーを閉じると設定が消えてしまうので注意しましょう。
最後に「Execute Workflow」でワークフローを実行し、「Active」オプションを有効にしておきます。
動作確認
Gmail宛にメールを送信すると、kintoneにレコードが登録されました!
kintoneのコメント機能やプロセス管理を組み合わせれば、チーム内でタスクをうまく共有・処理できそうですね。
おわりに
サーバーを用意する必要があるので「とっても簡単!」とまではいきませんが、n8nを使ってローコードなGmail × kintoneの連携を実現できました。
サーバーはGoogle Compute Engineの無料インスタンスなどを利用すると良さそうです。
n8nには 有料のクラウド版 も存在するので、サーバーを用意するのが難しい場合はクラウド版を利用する手もあります。
今回紹介したメールのほかにも、n8nにはさまざまな連携サービスが存在するので、kintoneをより便利にするツールとして活用してみてください。
このTipsは、2021年5月版kintoneで動作を確認しています。