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