レビュー

無料でIFTTTやZapierっぽく全自動連携できる「n8n」を自サーバー上に構築してみた


複数のウェブサービスを連携し、定型作業を自動化してくれるサービスはIFTTTZapierが有名ですが、特定のサービス以外は使えなかったり、有料プランでしか使用できない機能があったりします。オープンソースで使える自動化サービス「n8n」は無料で利用でき、自社製ソフトのような他の自動化サービスでは未対応のサービスも自動化できるとのことなので、実際に使ってみました。

n8n.io - Workflow Automation
https://n8n.io/

まずはn8nのホームページにアクセスします。


ホームページ下部へと進むとインストール方法が記載されていました。今回はWindows 10の機能の一つであるWSL上のUbuntuにn8nをインストールします。


n8nを動作させるにはNode.jsが必要なので、記事作成時点で最新の推奨バージョンのNode.jsをインストールしておきます。

Node.js
https://nodejs.org/ja/


公式ページに記載されているコマンドではパーミッションが足りずインストール時にエラーが発生したので、下記コマンドを実行してn8nをインストールしました。

sudo npm install n8n -g --unsafe-perm=true --allow-root


インストールが完了したら、下記コマンドを実行してn8nを起動させます。

n8n


n8n起動後、ブラウザから「http://localhost:5678」へアクセスすると、n8nの画面が表示されました。n8nでは「ノード」と呼ばれる作業の単位をつなぎ合わせて、一連の作業の流れである「ワークフロー」を作成していきます。


n8nで実際にワークフローを登録している様子を記録した公式動画がこれ。

n8n.io - Slack Notification on Github Star - YouTube


試しに「GIGAZINEのRSSフィードを取得し、JSON形式でローカルに保存する」ワークフローを作ってみます。「+」ボタンを押すと……


作業の単位である「ノード」のリストが表示されました。IFTTTやZapierに比べると連携できるサービスの数は少なめです。


まずはRSSフィードを取得したいので「RSS」で検索してみると、「RSS Read」がヒットしたのでクリックします。


RSSフィードのURLの入力を促されました。


URLの入力が完了したら、きちんとRSSフィードを取得できるかどうか確認するために「Execute Node」をクリックします。


JSON形式でRSSフィードを取得できました。


ホームに戻ると「RSS Feed Read」のノードが表示されました。「Start」ノードが作業のスタート地点なので、2つのノードの端と端をドラッグしてつなげます。


つなげると、2つのノード間に線が表示されました。


次は「RSS Feed Read」ノードで取得したJSON情報をファイルに書き込める形式に変換します。ノードの検索画面に「binary」と検索し、「Move Binary Data」をクリック。


JSONからファイルに書き込める形式に変換するので「JSON to Binary」にモードを設定。


「RSS Feed Read」ノードと「Move Binary Data」ノードもドラッグしてつなげます。


最後に変換したJSON情報をファイルに書き込むため、「Write Binary File」ノードを使用します。


ファイル名を入力してホームに戻ります。


すべてのノードをつないで「Execute Workflow」ボタンを押すと……


ワークフローが実行され、右下に実行成功のメッセージが表示されました。


出力したファイルはn8nを実行した時のカレントディレクトリに保存されています。ファイルの中身を見ると、きちんとRSSフィードが出力されていました。


決まった時間にワークフローを開始する「Cron」ノードなど、何かのアクションをきっかけに動作するワークフローを作成することもできます。その場合は右上の「Active」をオンにしておく必要があります。


左側のリストの一番上のアイコンにカーソルを合わせると、ワークフローの保存や削除が行えます。


二番目の鍵マークをクリックすると、連携するウェブサービスのアカウントを管理する画面が現れます。


三番目のリストマークをクリックすると、ノードの動作履歴を確認できます。


ワークフローはn8nの公式ページにアップロードされているものを簡単に使うこともできます。使いたいワークフローのページへ進んで……


ワークフローのコード部分をクリック。これでワークフローがコピーされた状態になります。


n8nのホームに戻りCtrl+Vを押すと、ワークフローを簡単にコピーできました。


連携できるサービスは少ないですが、「Execute Command」ノードという、n8nを実行しているサーバーのコマンドを実行できる便利なノードを使えば自動化の可能性はかなり広がります。


基本的なコマンドの実行結果はもちろん出力可能。


n8nが対応していないウェブサービスの各種APIも利用することができます。例えばLINE Messeging APIを利用すれば……


RSSフィードをLINEに投稿することができます。


サーバーで収集している各種ログももちろん取得可能。


UPSから入力側の電圧を取得して毎分LINEに投稿するというマニアックな使い方もできます。


実際に使用してみたところ、公式に連携できるサービスは少ないものの、サーバー側のコマンドを実行できる「Execute Command」ノードがあるので、実質的には連携できるサービスは無限大。使い方によってはかなり便利な自動化サービスだと感じました。

この記事のタイトルとURLをコピーする

・関連記事
ツイート・メール・株価などあらゆる情報を表示&IFTTT連携で無限の可能性を感じるスマートクロック「LaMetric TIME」を使ってみた - GIGAZINE

Gmailがあらゆるサービス同士を連携させる「IFTTT」のサポートを打ち切る模様 - GIGAZINE

リアルタイムでアニメを4Kサイズにアップスケーリングできるオープンソースのアルゴリズム「Anime4K」 - GIGAZINE

オープンソースで誰でも簡単に短縮URLを生成できるWebサービス「Kutt.it」レビュー - GIGAZINE

わずか11万円で自動車を「完全自動運転カー」に改造できる手作りキット「comma two devkit」発売 - GIGAZINE

in レビュー,   ウェブアプリ, Posted by log1n_yi

You can read the machine translated English article here.