今回は下記2つのツールを使用します。
マーケティングオートメーションツールのMauticとハードウェア、API、WebサービスなどをつなぐNode-REDを用いて、マーケティング活動で取得した顧客情報を、別のシステムにデータを渡したり、ハードウェアで読み上げたりするための、基本のサンプルについて見ていきましょう。
Mautic
Mautic(マウティック)は、オープンソースのマーケティングオートメーションです。今までに10万社以上が導入し、日々顧客1人1人とコミュニケーションし新しい商談を獲得するために使用しています。
Node-RED
もう1つは、Node-REDです。元々はIBMが中心になって開発していました。現在は、オープンソースプロジェクトとしてMauticと同じように世界中の開発者が協力して進めています。
環境構築
まずはツールを用意します。
Mauticの用意
Mauticは自社サーバーやIBM Cloud、Microsoft Azure、GCP、AWS等に導入する「セルフホスティッド版」とSaaS版(ドットネット版やドットコム版と言われることがあります)、どちらでも良いので用意します。SaaS版はこちらから無料プラン[Mautic Cloud Free]を申し込むことができます。導入時は英語ですが、日本語に切り替えることができます。
Node-REDの用意
Node-REDは、IBM Cloud ライトプランを申し込み、ボイラーテンプレートで「Internet of Things Platform Starter」を選択するとNode-RED環境が用意されます。あるいは「Node.js Cloudant DB Web Starter」を用いて独自にNode-RED環境を構築します。通常の大人向けNode-REDを使用する方は、「Internet of Things Platform Starter」を選択すると良いでしょう。
ひらがな化された子供向けのNode-REDを使用する場合は、「Node.js Cloudant DB Web Starter」を用います。子供向けNode-REDの構築には、こちらの手順書をご覧ください。
フローの読み込み
始めはNode-REDから作業します。
Node-REDにアクセスし、画面右上から「読み込み」→「クリップボード」→「フローをクリップボードから読み込み」にて、下記をコピー&ペーストします。読み込み先は「現在のタブ」とします。
[
{
"id": "cc848aaf.817d38",
"type": "tab",
"label": "Mautic New Contact",
"disabled": false,
"info": "using checkd Contact Identified Event in Mautic Webhook settings."
},
{
"id": "ee1e1b82.b0e1f8",
"type": "debug",
"z": "cc848aaf.817d38",
"name": "",
"active": true,
"console": "false",
"complete": "payload",
"x": 410,
"y": 40,
"wires": []
},
{
"id": "bcbac79d.aee308",
"type": "function",
"z": "cc848aaf.817d38",
"name": "output_new_contact_email",
"func": "msg.payload = msg.payload[\"mautic.lead_post_save_new\"][0].contact.fields.core.email.value\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 460,
"y": 140,
"wires": [
[
"8d87321f.7ddab",
"88d3657b.14aa08"
]
]
},
{
"id": "8d87321f.7ddab",
"type": "debug",
"z": "cc848aaf.817d38",
"name": "new contact's email",
"active": true,
"console": "false",
"complete": "payload",
"x": 710,
"y": 140,
"wires": []
},
{
"id": "1825b1a7.1e89ae",
"type": "http in",
"z": "cc848aaf.817d38",
"name": "",
"url": "/mautic",
"method": "post",
"upload": false,
"swaggerDoc": "",
"x": 190,
"y": 100,
"wires": [
[
"ee1e1b82.b0e1f8",
"bcbac79d.aee308"
]
]
},
{
"id": "88d3657b.14aa08",
"type": "http response",
"z": "cc848aaf.817d38",
"name": "",
"statusCode": "",
"headers": {},
"x": 660,
"y": 60,
"wires": []
}
]
「読み込み」をクリックし、画面右上の「デプロイ」をクリックします。
下図のようになります。
Node-REDのURLを確認します。
例 https://xxxx.yyyy.mybluemix.net/red/#flow/
Node-REDのURLは例のようになっていますので、/red/#flow/ を /mautic に変更し、メモしておきます。このURLは、Mautic側のWebhook設定で使用します。
変更例 https://xxxx.yyyy.mybluemix.net/mautic
Mautic Webhook設定
Mauticにログインします。画面右上の歯車のアイコンをクリックし、「Webhooks」をクリックします。Webhook管理画面が表示されます。画面右上の「新規」をクリックし、Webhook設定を作成します。
「名前」と「Webhook POST url」に先ほどメモしました、/mauticのURLを記述します。また、「Webhook Events」では、「Contact Identified Event」にチェックを入れます。
画面右上の「適用」→「保存して閉じる」の順にクリックします。
動作確認
Mauticの「Contacts」画面から、顧客情報を新規作成します。Webhookは、Mautic SaaS版の無料プランでは、8~9分置きに実行されます。セルフホスティッド版では導入時に設定したCronの設定値に依存します。Webhookが実行されますと、Node-RED側の「デバッグ」に作成した顧客情報のメールアドレスが出力されているはずです。
まとめ
Mautic内の特定のイベントが発生したときにJSON形式でデータをPOSTする「Webhook」とNode-REDを用いることで、コーディングを極力減らして受け側のシステムやハードウェアにデータを渡すことができます。
Webhookは、Mautic上で顧客情報が更新や削除されたり、フォームを受信したときなど他のイベントがありますので、Node-REDを用いて試してみると良いでしょう。
参考資料
- Node-RED User Group Japan ドキュメント こちらから