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