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

by 杉本和也 | 2020年02月13日

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

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

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

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

f:id:sugimomoto:20200213192954p:plain

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

f:id:sugimomoto:20200212215537p:plain

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

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

f:id:sugimomoto:20200213193054p:plain

CData Arc とは?

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

arc.cdata.com

f:id:sugimomoto:20191111155027p:plain

今回はこのCData Arcと 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

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

f:id:sugimomoto:20200212215604p:plain

必要なもの

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

事前準備

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

https://arc.cdata.com/download/

f:id:sugimomoto:20200108105906p:plain

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

f:id:sugimomoto:20200108105913p:plain

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

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

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

f:id:sugimomoto:20200212215739p:plain

CData Arc にログイン

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

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

f:id:sugimomoto:20200108105941p:plain

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

f:id:sugimomoto:20200108105946p:plain

CData Arcは「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: [email protected]
  • 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

実行方法

CData Arcのフローの実行方法は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

おわりに

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

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

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

f:id:sugimomoto:20200108110242p:plain

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。