CData Software Blog

クラウド連携のCData Software の技術ブログです。

メールに添付されたパスワード付きZIPのCSVファイルをSendGridのContactに自動で登録する

こんにちは。CData Software Japan リードエンジニアの杉本です。

CData Software Japanでも展示会にはよく参加するのですが、その後なかなか面倒なのが展示会やセミナーの参加者リストをSendGridのコンタクトリストに登録する作業です。

よくあるのが、メールでCSVファイルが送られて来るタイプのものですね。

さらに、パスワード付きZIPファイルで送られてくる、というのもよくあるシチュエーションではないでしょうか?

f:id:sugimomoto:20200213192954p:plain

このパスワード付きが地味に面倒で、これが手動作業の根源とも言えると思います。

f:id:sugimomoto:20200212215537p:plain

もうAPIで連携してくれよと言いたいところですが、企業間でのリードデータのやりとりとなると、そう単純には解決できません。

そこで、今回は CData ADO.NET Provider とノーコードでデータ連携を行うことができるArcESBを組み合わせて、メールに添付されたパスワード付きZIPファイルからSendGridのコンタクトリストへ自動登録を行うフローを作成してみたいと思います。

f:id:sugimomoto:20200213193054p:plain

ArcESB とは?

ArcESB はノーコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。

www.arcesb.com

f:id:sugimomoto:20191111155027p:plain

今回はこのArcESBと CData ADO.NET Provider for SendGrid を組み合わせて、Contact連携をするための方法を解説します。

シナリオ

今回は以下の「疑似個人情報生成」サービスを使って生成したCSVセミナーや展示会のリード情報と見立てて、取り込むことにしました。

https://hogehoge.tk/personal/generator/

f:id:sugimomoto:20200212215548p:plain

このCSVファイルをパスワード付きZIPとして、Office365 Outlookで受信します。

f:id:sugimomoto:20200212215555p:plain

その受信したファイルを以下のようなArcESBのフローで取得し、パスワード付きZIPファイルを解凍、SendGridのContactに登録するための情報にMappingし直した上で、登録処理を行います。

f:id:sugimomoto:20200212215604p:plain

必要なもの

以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。

事前準備

まず使用する製品をそれぞれインストールします。以下のページから、ArcESBの本体を入手できます。必要に応じて、WindowsJava/Linux、Cloud Hostedのバージョンから選択してください。なお、本記事ではWindowsベースで進めます。

https://www.arcesb.com/download/

f:id:sugimomoto:20200108105906p:plain

インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。

f:id:sugimomoto:20200108105913p:plain

またArcESBには SendGrid の接続用コネクタが含まれていませんので、それらを個別で CData のサイトから入手し、インストールします。

それぞれ以下のURLから入手可能です。

https://www.cdata.com/jp/drivers/SendGrid/ado/

f:id:sugimomoto:20200212215739p:plain

ArcESB にログイン

それでは、実際にArcESBを使って連携処理を開発していきます。

ArcESBが起動すると、以下のようにログイン画面が表示されるので、UserName:adminとインストール時に入力したパスワードを使って、ログインします。

f:id:sugimomoto:20200108105941p:plain

ログイン後、「About」へ移動し、トライアルライセンスをアクティベーションします。以下はすでにアクティベーション済みの画面です。

f:id:sugimomoto:20200108105946p:plain

ArcESBは「Flows」からデータ連携のデザイナー画面へ移動できます。

f:id:sugimomoto:20200108105952p:plain

メールの受信コネクタの構成

最初にメールの添付ファイルを受信するためのコネクタを構成します。

メールサービスは Office365 に含まれる Outlook(Exchange)をIMAPで利用しました。

Connection の一覧から「Email Receive」をドラッグ・アンド・ドロップでフロー画面に配置します。

f:id:sugimomoto:20200212215824p:plain

Connector Idに任意の名称を入力して保存してください。

f:id:sugimomoto:20200212215853p:plain

次に接続設定を行います。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

f:id:sugimomoto:20200212215915p:plain

ZIPファイル解凍コネクタの構成

次に受信したZIPファイルを解凍するためのコネクタを構成します。コネクタの一覧から「ZIP」コネクタをドラッグ・アンド・ドロップでフローに配置し、任意のIDで作成します。

f:id:sugimomoto:20200212220058p:plain

f:id:sugimomoto:20200212220106p:plain

接続設定画面では、解凍を行うのでOperation「Decompress」を選択し、Archime FormatでZIP、そして受信するファイルの想定パスワードを入力します。今回は固定値としてパスワードを指定しました。

f:id:sugimomoto:20200212220112p:plain

SendGrid コネクタの配置

次にSendGridコネクタを構成します。このコネクタを利用してSendGridのContactにデータを登録します。

なお、前述した通りSendGridコネクタはCData ADO.NET Providerを利用しているので、専用のコネクタである「CData」をドラッグ・アンド・ドロップでフローに配置します。

f:id:sugimomoto:20200212220313p:plain

f:id:sugimomoto:20200212220400p:plain

接続設定ではDataSourceの一覧から「CData SendGrid」を選択し、SendGridにログインするためのユーザーIDとパスワードを入力します。

f:id:sugimomoto:20200212220406p:plain

また、もう一つ追加のプロパティとしてAdvancedタブに存在する「API Key」を入力してください。これで設定を保存します。

f:id:sugimomoto:20200212220449p:plain

接続設定を保存後、データを登録するための処理を指定します。MappingsのInputから「Table or View」をクリックし

f:id:sugimomoto:20200212220611p:plain

対象のテーブル一覧からContact情報を管理している「Recipients」テーブルを選択します。

f:id:sugimomoto:20200212220647p:plain

最後のMapping Editorで登録する際の項目情報を指定します。今回はEmailの値を元にUpsertをかけるので、Upsert Keyから「Email」を指定して作成しました。

f:id:sugimomoto:20200212220713p:plain

CSVマップコネクタの構成

最後にCSVマップコネクタを作成し、添付されていたCSVファイルとSendGridのContact情報の項目同士を紐付けて、処理できるようにします。

コネクタの一覧から「CSV MAP」をドラッグ・アンド・ドロップで配置し、構成します。

f:id:sugimomoto:20200212220833p:plain

コネクタを配置後、一旦接続設定画面は閉じて、すでに配置している各コネクタを接続します。これにより、CSV MAPコネクタが前後の接続設定ファイルを検知できるようになります。接続後、右下にある保存ボタンを忘れずにクリックしましょう。

f:id:sugimomoto:20200212220942p:plain

次に再度接続構成ファイルを開きます。後続のSendGridのコネクタからDestination Fileは読み取れているので、Source FileのCSVのみアップロードを行って指定します。

f:id:sugimomoto:20200212221034p:plain

CSVファイルをアップロードすると、以下のようにCSVファイルの各項目紐付けができるようになるので、必要な情報をSendGridのContactの項目へ紐付けていきます。

f:id:sugimomoto:20200212221141p:plain

これで保存すれば、すべてのフローの作成が完了です。

f:id:sugimomoto:20200212221222p:plain

実行方法

ArcESBのフローの実行方法は2種類あります。一つは一番最初のフローで定期実行のAutomationを組む方法です。以下のAutomationタブから、実行頻度を指定できます。

f:id:sugimomoto:20200212221249p:plain

手動で実行する場合は、Outputタブにある「Receive」ボタンをクリックします。

f:id:sugimomoto:20200212221352p:plain

このOutlookの添付ファイルが

f:id:sugimomoto:20200212221920p:plain

以下のように受信できます。

f:id:sugimomoto:20200212221846p:plain

あとはそれぞれのコネクタの処理を経て、最終的にSendGridコネクタのInputタブで処理結果がSentになっていればOKです。

f:id:sugimomoto:20200212222016p:plain

SendGridの画面も見てみると、正常に登録されていました!

f:id:sugimomoto:20200212222137p:plain

おわりに

このように、ArcESBとSendGrid ADO.NET Providerを活用することで、面倒なCSV登録処理を簡単に構築することができました。

CDataでは kintone 以外にも、SalesforceやDynamics 365といった様々な ADO.NET Providerを提供しています。是非任意のツール・サービスに接続するために試してもらえればと思います。

https://www.cdata.com/jp/ado/

f:id:sugimomoto:20200108110242p:plain