自由に働くスタッフのブログ

食欲の秋、Raspberry Pi + Node-RED + Salesforce で自動化はいかが?

2021.09.21

今年の中秋の名月🌕、残念ながら私の家からは雲に遮られ見えませんでした。
月は見えずともこの季節、食べ物が美味しくてついつい食べ過ぎてしまいますね。
団子やバーガーも良いですが、趣向を変えて、 Raspberry Pi を「味わって」みるのはいかがでしょうか。

Salesforce と他のクラウド上のシステムを連携させ、業務の自動化を図る場合、 Microsoft Power Automate、 Zapier や IFTTT を使用することが多いかと思います。ただ、 Salesforce のコネクターはプレミアムプランの契約が必要であったり、連携フローのステップ数がフリープランでは不足していたりと、少し試してみるには敷居が高いように思えます。

そこで、今回は Raspberry Pi (ラズパイ)で自動化する方法をご紹介します。(なお、Raspberry Pi を購入すると、先ほどご紹介した連携ソリューション数か月分の費用が掛かりますが、優しい気持ちで読み進めていただければ幸いです)

Raspberry Pi OS をインストール(インストール方法は割愛します。こちらを参照してください)すると、 Node-RED というソフトウェアが標準でインストールされています。 Node-RED はブラウザ上でGUIによって、ビジュアルにフローをプログラミングするツールです。
Salesforce に詳しい方には「フロー」と似たものと言えば分かりやすいでしょう。

Node-RED で Salesforce と連携させる「ノード」と呼ばれるプラグインは複数ありますが、今回は node-red-contrib-force を使用してみたいと思います。

Raspberry Pi の IPアドレスのポート 1880 を開くと、 Node-RED のパレットが表示されます(Raspberry Pi 自身のブラウザで開くこともできますが、少々重いですので、他のマシンのブラウザから開くことをお勧めします)。このパレットに対してフローをプログラミングしていきます。
パレットが立ち上がらない場合は、 シェルから node-red-start を実行してからリトライしてください。

「ノード」の追加方法は、公式ドキュメント パレットにノードを追加するを参照してください。

以下の画像のように、ノードを配置してみてください。ノードの配置は、左側のパネルからドラッグアンドドロップで行えます。配置したノードをダブルクリックすると、ノードの設定が現れます。
1つ目の Salesforce のノードを配置した際には、ノードの設定から Salesforce の認証情報を入力してください。

上側の「timestamp」左のボタンをクリックすると、 Salesforce のレコードが更新されます。
また、下側の「timestamp」左のボタンをクリックすると、 Salesforce からレコードを取得して更新します。

これを応用すれば、自由自在にレコードの取得、更新、他システム連携が出来るようになります。

node-red-contrib-force は、レコードの操作だけでなく、Chatterメッセージの取得・書き込みも可能です。
(現時点のバージョンでは、組織にアクティブな Chatter グループが1つ以上存在しないと、UIでエラーが発生し、上手く設定できません。ご注意ください)

Node-RED は「ノード」で提供されるクラウドとの通信やファイルの読み書きだけでなく、他のAPIをコールアウトしたり、また、自身が REST API のエンドポイントとなることもできます。
これにより、クラウド上のシステムだけでなく、オンプレミスのシステムや RPA とも簡単に連携することができます。

Raspberry Pi での Salesforce 連携、是非ともご賞味ください!

スタッフ H