メール購読フォームを作るとき、皆さんはデータベースに何を使っていますか?個人開発でなるべくお金をかけたくない場合、選択肢が少ないのではないかと思います。(HerokuのPostgresやmLabの無料枠など)
私が現在作っているものではSendGridのマーケティングキャンペーン機能(以降MCと省略)を使うことにしました。MCでは宛先を2,000件まで無料で登録できるので、データベース代わりに使えます。
MCと連携する部分はMicrosoft AzureのLogic Appsを使います。メール購読フォームからMCに登録するまでのフローは次のイメージです。
前編ではSendGridにメールアドレスを登録するまでの流れを紹介します。
SendGridに宛先を登録する流れ
宛先の登録はMCのWeb APIを利用します。MCは画面操作が中心の機能で、Web APIは使いづらい部分もあるので利用の際はご注意ください。
宛先リストの作成
最初に、宛先をまとめる「宛先リスト」を作ります。
Contact APIのListsを使います。
宛先リストを作成するとlist_idが返ってくるので、本来ならば、このlist_idを使ってメールアドレスを登録したいところなのですが、残念ながらメールアドレスを直接指定することができません。
先に宛先を作成して、recpient_idを取得する必要があります。
Logic Appsで作成するフロー
冒頭で紹介しましたが、次のフローとなります。
当初Microsoft Flowで作ろうとしたのですが、以前は使えていたHTTPのトリガーがPremiumアカウントのみに変わっていました。HTTPを選ぶとダイアログがでてきます。
そのため、AzureのLogic Appsを使うことにしました。Microsoft Flow、Logic Apps、Azure Functionsは使い分けが難しいのですが、公式ドキュメントで整理されていました。(細かくはまだ把握できていない…)
docs.microsoft.com
Logic Appsの使い方はMicrosoft Flowとほぼ同じで、処理を作ってつなげていくだけです。
とりあえず前編はここまで。後編はLogic Appsで具体的にフローを作っていきます。