見出し画像

ノーコードツールと外部データベースを同期連携させる方法

ノーコードツールでアプリケーションを開発するときに、すでに利用中のCRMやデータベースと連携したいときがあります。

BubbleやAdaloなどのノーコードツールには、多くの場合、内製のデータベース機能が備わっています。

しかし、例えば、自社がすでに抱えているユーザー向けのアプリを作る場合は、既存のデータベースと、ノーコードツール側のデータベースの間で、連携が必要になることがあります。

しかし、データベース同士をノーコードで連携する方法は、参考になる情報が少なく、初心者にとっては挫折しやすいポイントといえます。

今回は、ノーコードツールと外部データベースの連携について、ノーコードでできる方法をご紹介します。

データベースの連携パターン

データ連携をパターンで分けると、以下の3つが考えられます。

1.レコード作成時に、連携しているデータベースでもレコードを作成する
2.レコード更新時に、連携しているデータベースでもレコードを更新する
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によるデータインポート・エクスポート機能を備えているため、これを利用して一括で紐付けを行います。

1.外部データベースと、ノーコードツールのデータベースの双方に、お互いのレコードIDを保存する項目を用意

2.外部データベースを、レコードIDを含む形式でCSVエクスポート

3.ノーコードツールのデータベースに2.のCSVをインポート。その後、ノーコードツールによって、インポートしたデータにレコードIDが付与される

3.ノーコードツール側のデータベースから、レコードIDの項目を含む形式で、CSVエクスポート

4.外部データベースに3.のCSVをインポートし、ノーコードツール側のレコードIDを挿入

※注意点
大量のデータを一括で扱う上で、CSVのインポートが一番手っ取り早い方法ですが、ノーコードツールによっては、CSVに対応していないケースがあります。

※Adaloは、なぜかCSVによるIDのエクスポートに対応していないため、残念ながらこの方法は使用できません。

また、ユーザーデータを移行する際に、パスワードはCSVインポート・エクスポートができない場合がほどんどです。

そのような場合にも、代わりにiPaaSを使って、データの一括インポートや紐付けを行うことができます。

B.iPaaS経由でデータを流し込む

iPaaSを使用し、一括でデータのインポートや紐付けを行います。

1.外部データベースから、レコードIDを含む必要なレコードをすべて取得

2.ノーコードツール側のデータベースに1.のデータを流し込む

3.ノーコードツール側が付与したレコードIDが自動的に取得される

4.外部データベースのレコードに、3.で取得したレコードIDを挿入

このiPaaSを利用する方法であれば、ほぼ全てのデータ更新の連携に対応できます。

データ通信が大量に行われるため、iPaaS側で課金が発生しますが、数千件〜数万件のレコードであれば、千円単位の課金で実行可能です。

2-2.更新が発生した際の「更新フラグ」を立てる

外部データベースとノーコードツールのデータベースの間で紐付けが完了したら、今度は「どのタイミングで更新処理をトリガーするか」を決めます。

iPaaSによっては、データベース内のレコードの変更を検知して、自動的に処理をトリガーすることもできます。

しかし、ノーコードツール側のレコードが変更された際に、何でもかんでも外部データベースも更新するのではなく、「レコードの特定の項目が更新された場合にのみトリガーしたい」場合があります。

そのような場合に、iPaaSでは細かい制御ができないことがあります。

そのため、より柔軟な手段として「更新フラグ(チェックボックスやブール値)」を、それぞれのデータベースのレコードの項目として用意します。

例えば、ノーコードツール側で、外部データベースに連携が必要なレコード項目の操作が行われた際にのみ、この更新フラグをTRUEにする設定を行います。

そして、iPaaS側では、更新フラグがTRUEになったことをトリガーに、外部データベースの更新を行います。

そして、レコードの更新完了後に、ノーコードツール側のレコードの更新フラグをOFFに戻します。

手順は増えますが、このように更新フラグを作成しておくことで、柔軟かつ確実なデータ更新を行うことができます。

3.データ削除時のデータ連携

更新のデータ連携と同じ要領で、外部のデータベースのレコードの削除の処理を行うこともできます。

ただし、レコードの削除は慎重を要する操作のため、できれば安全策をとりましょう。

具体的には、削除操作が行われた際に、そのレコードを一時保存するための別のテーブルを作成しておきます。

そして、レコードの削除操作を行った際に、その一時保存のテーブルにレコードを追加し、iPaaSで外部データベースのレコードを削除します。

このようにすることで、万が一誤ってデータを削除した際にも、データを復旧することができます。

データ作成・更新・削除時の動作

ここまでの下準備ができれば、あとは簡単です。

データの操作が行われたときに、iPaaSで以下を実行しましょう。

・データの作成時:ノーコードツール側にレコードが作成された際に、外部データベースに、ノーコードツール側のレコードIDを含む新規レコードを作成。続けて、外部データベースに作成されたレコードのIDを、対応するノーコードツール側のレコードにも登録

・データの更新時:レコードの更新フラグがTRUEになったことをトリガーに、あらかじめ登録済みの外部データベースのレコードIDを利用して更新処理を行う。処理完了後、更新フラグはFALSEに戻す。

・データの削除時:削除を行ったレコードを別のテーブルに一時保存。そのレコードのIDを用いて外部データベースのレコードを削除。その後、一時保存したレコードは削除済みと分かるフラグを立てておく。

これで、iPaaSを利用した一連のデータ連携を形にすることができました。

ノーコードでデータベースを連携しよう

ここまで、ノーコードでデータベース連携をするための方法をご紹介してきました。

本来コードを使ってデータベースの連携を行う場合は、非常に難しい実装になり、数百万円以上かかる案件になることもあります。

しかし、最新のノーコードツールやiPaaSを活用することで、自分で簡単にデータベース連携を行うことができます。

最初は、試行錯誤しながら操作することが多いと思いますが、その過程で、今後も必ず活きる、データベースの重要な概念を学ぶことができるでしょう。

ぜひ挫けずに取り組んでみてくださいね。

お読みいただきありがとうございました🙏

この記事が気に入ったらサポートをしてみませんか?