ノーコードツールと外部データベースを同期連携させる方法
ノーコードツールでアプリケーションを開発するときに、すでに利用中のCRMやデータベースと連携したいときがあります。
BubbleやAdaloなどのノーコードツールには、多くの場合、内製のデータベース機能が備わっています。
しかし、例えば、自社がすでに抱えているユーザー向けのアプリを作る場合は、既存のデータベースと、ノーコードツール側のデータベースの間で、連携が必要になることがあります。
しかし、データベース同士をノーコードで連携する方法は、参考になる情報が少なく、初心者にとっては挫折しやすいポイントといえます。
今回は、ノーコードツールと外部データベースの連携について、ノーコードでできる方法をご紹介します。
データベースの連携パターン
データ連携をパターンで分けると、以下の3つが考えられます。
データ連携では、これらの操作を滞りなく実現する必要があり、その上で、処理の方向性と方法についても検討を行います。
・方向性:データ連携を単方向で行うか、双方向で行うか
例えば、ノーコードツールのフォームで申し込みを受け付け、レコードが作成された際に、外部データベースにもデータを飛ばして、レコードを作成するような処理は単方向です。
一方で、双方向のデータ連携では、上記のような処理に加え、外部データベースにレコードが作成された際についても、ノーコードツール側のデータベースにレコードを作成します。
このように、相互にデータを操作(作成・更新・削除)し合うような双方向のデータ連携は「同期」と呼ばれます。
また、データ連携を行うデータ量とタイミングによって、レコードの処理の仕方が異なります。
・処理方法:リアルタイム処理か、バッチ処理か
リアルタイム処理は、あるレコードの操作が行われたタイミングで、対応する外部データベースのレコードに対して、リアルタイムで操作を行います。
しかし、一度に処理するレコード数が大量にあると、リアルタイムで捌き切れずに、エラーが出ることがあります。
そのような場合には、バッチ処理といい、決められたタイミング(例:10分おきに発動、ある時刻に発動等)に、データ連携を行う対象のレコードを抽出し、複数のレコードをまとめて処理します。
バッチ処理とリアルタイム処理は、いずれもこれから説明するiPaaSの機能に備わっており、容易に実現することができます。
データベース連携に使用するツール
ここからは、データベース連携をノーコードで行うための具体的な方法を紹介します。
1.データベースの同期に特化したノーコードツールを導入する
データベースの同期に特化したノーコードツールがすでに存在するため、要件に合えば導入することができます。
老舗ではCDATAというデータコネクタサービスがありますが、これは企業向けであり、価格も高く、個人が導入できるものではありません。
一方で、最新のノーコードツールに「whalesync」があり、これを使えば月額$49〜でデータベースの同期を行うことができます。
whalesyncは新しいサービスのため、まだ接続できるアプリに限りがありますが、様々なデータベース間で、双方向・リアルタイムの同期が簡単に行うことができそうです。
ただし、レコード数に応じた費用がかかるため、同期したいレコードが多い場合、導入のハードルになる可能性があります。
2.iPaaSやBaaSで処理を自分で作る
もし連携したいデータが数万件程度であれば、iPaaS(ZapierやMake等)を利用して、データ連携の処理を自作することができます。
企業向けの大規模なアプリケーションには向きませんが、小〜中規模のアプリケーションであれば、iPaaSを利用すれば安上がりです。
今回は、このiPaaSを利用し、データ連携を行う方法を学習していきます。
※iPaaSのほかBaaS(XanoやBackendless等)でも実現可能であり、データの処理速度などの面で優れています。
iPaaSでデータベース連携を行う方法
1.レコード作成時のデータ連携
まずは、基本的な操作である、レコード作成時のデータ連携です。
レコードの作成は、BubbleやAdalo等の有名なノーコードツールであれば、ZapierやMake等のiPaaSと統合されており、簡単に双方向・リアルタイムにレコードを作成することができます。
具体的には、iPaaSで、ノーコードツール内のテーブルにデータが作成されたことをトリガーに、外部データベースにもレコードを新規作成します。
逆に、外部データベースでレコードが作成されたことをトリガーとして、その情報をノーコードツール側のレコードにも追加します。
2.レコード更新時のデータ連携
次に、レコードの更新時に、データ連携させる方法です。
この更新時のデータ連携については、単なるレコードの作成よりテクニカルであり、下準備とちょっとしたノウハウが必要です。
2-1.データベースのレコードを紐付ける
データベース内のレコードを更新するには、基本的に「データベースのどのレコードを更新するのか」を判別するために、各レコードに割り振られた固有のID(レコードID)が必要です。
そのため、ノーコードツール側のデータベースと外部データベースでは、お互いにこのレコードIDを持ち合って、いずれかのレコードに更新があった際に、対応するもう片方のレコードも更新できるようにします。
実務的には、以下のいずれかの方法で紐付けを行います。
A.CSVインポート・エクスポートで一括登録する
多くのCRMやノーコードツールは、CSVによるデータインポート・エクスポート機能を備えているため、これを利用して一括で紐付けを行います。
※注意点
大量のデータを一括で扱う上で、CSVのインポートが一番手っ取り早い方法ですが、ノーコードツールによっては、CSVに対応していないケースがあります。
※Adaloは、なぜかCSVによるIDのエクスポートに対応していないため、残念ながらこの方法は使用できません。
また、ユーザーデータを移行する際に、パスワードはCSVインポート・エクスポートができない場合がほどんどです。
そのような場合にも、代わりにiPaaSを使って、データの一括インポートや紐付けを行うことができます。
B.iPaaS経由でデータを流し込む
iPaaSを使用し、一括でデータのインポートや紐付けを行います。
このiPaaSを利用する方法であれば、ほぼ全てのデータ更新の連携に対応できます。
データ通信が大量に行われるため、iPaaS側で課金が発生しますが、数千件〜数万件のレコードであれば、千円単位の課金で実行可能です。
2-2.更新が発生した際の「更新フラグ」を立てる
外部データベースとノーコードツールのデータベースの間で紐付けが完了したら、今度は「どのタイミングで更新処理をトリガーするか」を決めます。
iPaaSによっては、データベース内のレコードの変更を検知して、自動的に処理をトリガーすることもできます。
しかし、ノーコードツール側のレコードが変更された際に、何でもかんでも外部データベースも更新するのではなく、「レコードの特定の項目が更新された場合にのみトリガーしたい」場合があります。
そのような場合に、iPaaSでは細かい制御ができないことがあります。
そのため、より柔軟な手段として「更新フラグ(チェックボックスやブール値)」を、それぞれのデータベースのレコードの項目として用意します。
例えば、ノーコードツール側で、外部データベースに連携が必要なレコード項目の操作が行われた際にのみ、この更新フラグをTRUEにする設定を行います。
そして、iPaaS側では、更新フラグがTRUEになったことをトリガーに、外部データベースの更新を行います。
そして、レコードの更新完了後に、ノーコードツール側のレコードの更新フラグをOFFに戻します。
手順は増えますが、このように更新フラグを作成しておくことで、柔軟かつ確実なデータ更新を行うことができます。
3.データ削除時のデータ連携
更新のデータ連携と同じ要領で、外部のデータベースのレコードの削除の処理を行うこともできます。
ただし、レコードの削除は慎重を要する操作のため、できれば安全策をとりましょう。
具体的には、削除操作が行われた際に、そのレコードを一時保存するための別のテーブルを作成しておきます。
そして、レコードの削除操作を行った際に、その一時保存のテーブルにレコードを追加し、iPaaSで外部データベースのレコードを削除します。
このようにすることで、万が一誤ってデータを削除した際にも、データを復旧することができます。
データ作成・更新・削除時の動作
ここまでの下準備ができれば、あとは簡単です。
データの操作が行われたときに、iPaaSで以下を実行しましょう。
これで、iPaaSを利用した一連のデータ連携を形にすることができました。
ノーコードでデータベースを連携しよう
ここまで、ノーコードでデータベース連携をするための方法をご紹介してきました。
本来コードを使ってデータベースの連携を行う場合は、非常に難しい実装になり、数百万円以上かかる案件になることもあります。
しかし、最新のノーコードツールやiPaaSを活用することで、自分で簡単にデータベース連携を行うことができます。
最初は、試行錯誤しながら操作することが多いと思いますが、その過程で、今後も必ず活きる、データベースの重要な概念を学ぶことができるでしょう。
ぜひ挫けずに取り組んでみてくださいね。
お読みいただきありがとうございました🙏
この記事が気に入ったらサポートをしてみませんか?