13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zapierとn8nでの自動化を比較してみた 新着RSSフィードをSlackへ

Posted at

タスク自動化ツールの「Zapier(ザピエル/ザピアー)」と、OSSのタスク自動化ツールである「n8n」を比較してみました。ワークフローの設定手順も含めて解説します。

お題

Webサイトの新着情報RSSフィードを取得し、新着があればSlackへ通知する。
今回は「Yahoo!ニュース IT」にしてみました。

結論

結論から申し上げます。
今回のお題で比較してみたところ、**Zapierは簡単!便利!**という結論に至りました。
定期実行で新着を確認する必要もなく、トリガーで自動的に新着をキャッチしてくれるのも大変便利でした。

Zapier n8n
価格 無料〜有料 無料
連携サービス 2000以上 150程度
難易度 易しい 難しい
拡張性 低い 高い
コーディング NoCode LowCode
サーバー 不要 必要

Zapierの場合、無料では月の実行数がかなり限られるので、毎月のコストは必要ですが、コスト削減に十分寄与できるパフォーマンスであると考えています。

Zapier Pricing(2020/05 執筆時点)
image.png

一方、n8nはOSS(Open Source Software)ですので、全て無料で使用できるところは魅力ではありますが、

  • サーバー構築が必要
  • 接続可能なサービス数がZapierには及ばない
  • ワークフローがプログラミングチックで多少のコーディングが必要になる

という点から、ある程度のエンジニアリングスキルが必要になります。

タスク自動化

今回のお題で作成したワークフローを先に記載します。
Zapierは2ステップであるのに対してn8nは5ステップとなりました。

  • Zapier
    image.png

  • n8n
    image.png

Zapier

Zapierでのワークフロー構築手順です。

1. Zapを新規作成

ダッシュボードから「Create Zap」を選択します。

image.png

2. トリガーを設定

「When this happens」を選択します。
※トリガーとは「引き金」を指します。要は「何かが起きた時に何かをする」の「何かが起きた」の設定です

image.png

「Built-In Apps」の中から「RSS by Zapier」を選択します。

image.png

「Choose Trigger Event」で「New Item in Feed」を選択します。
新着フィードが発生したら、というトリガーです。

image.png

選択したら「CONTINUE」を押下します。

image.png

「Feed URL」にYahoo!ニュース ITのURLを入力します。
Yahoo!ニュース - RSS
https://news.yahoo.co.jp/pickup/computer/rss.xml

image.png

※今回はログイン不要の公開RSSなのでUsernameとPasswordは設定しません

「CONTINUE」を押下します。

image.png

「Test trigger」を押下してテストします。

image.png

こんな感じで結果が表示されればOKです。「CONTINUE」で次に移ります。

image.png

3. アクションを設定

「何かをする」のActionを設定します。(Do this)
今回は「Slackへ通知」するという設定を行います。

「Your Apps」から「Slack」を選択します。

image.png

今回は通知先はチャンネルにします。
「Send Channel Message」を選択します。

設定したら「CONTINUE」で次へ。

image.png

「Slack account」を選択します。
※このアカウントを使ってフローを実行します。

設定したら「CONTINUE」で次へ。

image.png

「Channel」で通知先のチャンネルを選択します。
「Message Text」にフィードの項目(Item)を入力します。(Insert Data内の項目を選択するとMessage Textに追加されます)

image.png

「TEST & CONTINUE」でテストしてみます。

image.png

Slackに通知されればOKです。

(引用元:Yahoo!ニュース)
image.png

「Done Editing」で設定完了します。
すると、冒頭のワークフローと同じものができあがります。

このワークフローを動作させるためにスイッチを「ON」にします。

image.png

これで完成です。

n8n

n8nでのワークフロー構築手順です。

まずはサーバーを用意します。ローカルPCでも構いません。

n8n公式サイトの手順にはCLIとDockerでの2通りの構築方法がありますが、
今回は手軽なDockerで構築しました。(1コマンドです)

image.png

1. ワークフローを作成

「New」で新規にワークフローを作成します。

2. トリガーを作成

Cron

ワークフローにアイテムを追加します。「+」を押下します。

image.png

「Trigger」の中から「Cron」を選択します。
※Cronとは決められた日時に定期実行してくれるものです

「Parameters」に以下の設定をします。
新着1件のみを取得する設計にしたいため、1分おきに実行するようにしました。

項目 設定値 説明
Mode Every Minute 毎分

RSS Feed Read

RSSフィードの読み込みアクションを追加します。

「Parameters」に以下の設定をします。

項目 設定値 説明
URL https://news.yahoo.co.jp/pickup/computer/rss.xml RSSフィードのURL

image.png

これを実行するとこんな感じになります。
8件の結果が出てきました。

image.png

SplitInBatches

RSSフィードの結果配列から先頭の1件だけを抜きます。
「Split In Batches」を作成します。

項目 設定値 説明
Batch Size 1 先頭1件のみ

実行後、Resultsが1件になっていればOKです。

image.png

Function

ここまでの設定だと、毎分同じものが流れてしまうので、重複を排除します。
「Function」を作成します。

項目 設定値 説明
Function 下記コード 前回日時と異なる(=新着)の場合は新着データを返却
Function
const staticData = getWorkflowStaticData('global') // グローバル変数を取得

const lastIsoDate = staticData.lastIsoData // 前回の日時

const currentIsoDate = items[0].json.isoDate // 今回の日時

if (lastIsoDate != currentIsoDate) { // 更新があったら処理
  staticData.lastIsoData = currentIsoDate
  return items // 新着を返却
} else {
  return [] // 何も返さない
}

Slack

Slackへの通知を設定します。
※事前にSlack側でbotの作成が必要ですが、割愛します

「Slack API」の設定をします。

項目 設定値 説明
Credentials Name 任意の名前 Slack Credentailsの名前
Access Token アクセストークン Slackのアクセストークン

image.png

「Parameters」の設定をしていきます。

項目 設定値 説明
Resource Message メッセージ
Operation Post POSTメソッドで送信
Channel 任意のチャンネル名 投稿先のチャンネル

「Text」の設定です。
「Nodes」からひとつ前の「SplitInBatches」を選択し、「Output Data」の「JSON」「enclosure」から取得要素を選択します。
※SplitInBatchesの実行結果が0件だとOutputDataが表示されないので要注意

「Expression」にSlack通知の本文を設定します。

image.png

Activeを「ON」にして完了です。

image.png

おわりに

以上でZapierとn8nの設定はおしまいです。
Zapierの方が設定内容が楽だったと思います。

(完成形を再掲)

  • Zapier
    image.png

  • n8n
    image.png

実際、n8nで構築中もOutput Dataが取れないなど、問題と解決が必要なことが何回かありました。
その点、Zapierはサクサクと設定できたので「もう終わり?」というくらいあっという間でした。

ワークフロー自動化ツールは他にもありますので、ぜひ比較の参考にしてみてください。
ありがとうございました。

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?