こんにちは。CData Software Japan リードエンジニアの杉本です。
CData Software Japanでも展示会にはよく参加するのですが、その後なかなか面倒なのが展示会やセミナーの参加者リストをSendGridのコンタクトリストに登録する作業です。
よくあるのが、メールでCSVファイルが送られて来るタイプのものですね。
さらに、パスワード付きZIPファイルで送られてくる、というのもよくあるシチュエーションではないでしょうか?
このパスワード付きが地味に面倒で、これが手動作業の根源とも言えると思います。
もうAPIで連携してくれよと言いたいところですが、企業間でのリードデータのやりとりとなると、そう単純には解決できません。
そこで、今回は CData ADO.NET Provider とノーコードでデータ連携を行うことができるArcESBを組み合わせて、メールに添付されたパスワード付きZIPファイルからSendGridのコンタクトリストへ自動登録を行うフローを作成してみたいと思います。
ArcESB とは?
ArcESB はノーコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。
今回はこのArcESBと CData ADO.NET Provider for SendGrid を組み合わせて、Contact連携をするための方法を解説します。
シナリオ
今回は以下の「疑似個人情報生成」サービスを使って生成したCSVをセミナーや展示会のリード情報と見立てて、取り込むことにしました。
https://hogehoge.tk/personal/generator/
このCSVファイルをパスワード付きZIPとして、Office365 Outlookで受信します。
その受信したファイルを以下のようなArcESBのフローで取得し、パスワード付きZIPファイルを解凍、SendGridのContactに登録するための情報にMappingし直した上で、登録処理を行います。
必要なもの
以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。
事前準備
まず使用する製品をそれぞれインストールします。以下のページから、ArcESBの本体を入手できます。必要に応じて、Windows、Java/Linux、Cloud Hostedのバージョンから選択してください。なお、本記事ではWindowsベースで進めます。
https://www.arcesb.com/download/
インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。
またArcESBには SendGrid の接続用コネクタが含まれていませんので、それらを個別で CData のサイトから入手し、インストールします。
それぞれ以下のURLから入手可能です。
https://www.cdata.com/jp/drivers/SendGrid/ado/
ArcESB にログイン
それでは、実際にArcESBを使って連携処理を開発していきます。
ArcESBが起動すると、以下のようにログイン画面が表示されるので、UserName:adminとインストール時に入力したパスワードを使って、ログインします。
ログイン後、「About」へ移動し、トライアルライセンスをアクティベーションします。以下はすでにアクティベーション済みの画面です。
ArcESBは「Flows」からデータ連携のデザイナー画面へ移動できます。
メールの受信コネクタの構成
最初にメールの添付ファイルを受信するためのコネクタを構成します。
メールサービスは Office365 に含まれる Outlook(Exchange)をIMAPで利用しました。
Connection の一覧から「Email Receive」をドラッグ・アンド・ドロップでフロー画面に配置します。
Connector Idに任意の名称を入力して保存してください。
次に接続設定を行います。IMAPポートを利用するので、Host・Portは以下の通り、User・PasswordにはOutlookにログインするためのOffice365 アカウントを指定します。SSL Typeも忘れずに指定しましょう。
ポイントはDownload Typeで「Atttachments」を選択することです。これでこのコネクターを使って添付ファイルだけ取得できます。
- Host: outlook.office365.com
- Port: 993
- User: XXXX@XXXX.onmicrosoft.com
- Password: 対象のユーザーパスワード
- Mailbox: INBOX
- SSL Type: SSL/TLS
- Download Type: Attachments
ZIPファイル解凍コネクタの構成
次に受信したZIPファイルを解凍するためのコネクタを構成します。コネクタの一覧から「ZIP」コネクタをドラッグ・アンド・ドロップでフローに配置し、任意のIDで作成します。
接続設定画面では、解凍を行うのでOperation「Decompress」を選択し、Archime FormatでZIP、そして受信するファイルの想定パスワードを入力します。今回は固定値としてパスワードを指定しました。
SendGrid コネクタの配置
次にSendGridコネクタを構成します。このコネクタを利用してSendGridのContactにデータを登録します。
なお、前述した通りSendGridコネクタはCData ADO.NET Providerを利用しているので、専用のコネクタである「CData」をドラッグ・アンド・ドロップでフローに配置します。
接続設定ではDataSourceの一覧から「CData SendGrid」を選択し、SendGridにログインするためのユーザーIDとパスワードを入力します。
また、もう一つ追加のプロパティとしてAdvancedタブに存在する「API Key」を入力してください。これで設定を保存します。
接続設定を保存後、データを登録するための処理を指定します。MappingsのInputから「Table or View」をクリックし
対象のテーブル一覧からContact情報を管理している「Recipients」テーブルを選択します。
最後のMapping Editorで登録する際の項目情報を指定します。今回はEmailの値を元にUpsertをかけるので、Upsert Keyから「Email」を指定して作成しました。
CSVマップコネクタの構成
最後にCSVマップコネクタを作成し、添付されていたCSVファイルとSendGridのContact情報の項目同士を紐付けて、処理できるようにします。
コネクタの一覧から「CSV MAP」をドラッグ・アンド・ドロップで配置し、構成します。
コネクタを配置後、一旦接続設定画面は閉じて、すでに配置している各コネクタを接続します。これにより、CSV MAPコネクタが前後の接続設定ファイルを検知できるようになります。接続後、右下にある保存ボタンを忘れずにクリックしましょう。
次に再度接続構成ファイルを開きます。後続のSendGridのコネクタからDestination Fileは読み取れているので、Source FileのCSVのみアップロードを行って指定します。
CSVファイルをアップロードすると、以下のようにCSVファイルの各項目紐付けができるようになるので、必要な情報をSendGridのContactの項目へ紐付けていきます。
これで保存すれば、すべてのフローの作成が完了です。
実行方法
ArcESBのフローの実行方法は2種類あります。一つは一番最初のフローで定期実行のAutomationを組む方法です。以下のAutomationタブから、実行頻度を指定できます。
手動で実行する場合は、Outputタブにある「Receive」ボタンをクリックします。
このOutlookの添付ファイルが
以下のように受信できます。
あとはそれぞれのコネクタの処理を経て、最終的にSendGridコネクタのInputタブで処理結果がSentになっていればOKです。
SendGridの画面も見てみると、正常に登録されていました!
おわりに
このように、ArcESBとSendGrid ADO.NET Providerを活用することで、面倒なCSV登録処理を簡単に構築することができました。
CDataでは kintone 以外にも、SalesforceやDynamics 365といった様々な ADO.NET Providerを提供しています。是非任意のツール・サービスに接続するために試してもらえればと思います。