
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみた
さがらです。
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみたので、その内容について本記事でまとめてみます。
検証環境
- Snowflake:Enterprise(AWS東京リージョン)
- Census:Enterprise
- SendGrid:Free Trial
SnowflakeをSourceとして設定
まず、SnowflakeをCensusのSourceとして設定する必要があります。
この設定に関しては以下の記事が参考になると思います。
SnowflakeでSendGridに連携したいデータを定義
SendGridに連携するためのデータを、Snowflake上でテーブルとして定義します。
USE SCHEMA sagara_rawdata_db.sendgrid;
-- テーブルの定義
CREATE TABLE IF NOT EXISTS sendgrid_customers (
"email" VARCHAR(255),
"first_name" VARCHAR(255),
"last_name" VARCHAR(255),
"address_line_1" VARCHAR(255),
"address_line_2" VARCHAR(255),
"city" VARCHAR(255),
"state_province_region" VARCHAR(255),
"postal_code" VARCHAR(20),
"country" VARCHAR(255),
"phone_number_id" VARCHAR(20),
"external_id" VARCHAR(255),
"anonymous_id" VARCHAR(255)
);
-- 5レコードの日本仕様データを
INSERT INTO sendgrid_customers (
"email",
"first_name",
"last_name",
"address_line_1",
"address_line_2",
"city",
"state_province_region",
"postal_code",
"country",
"phone_number_id",
"external_id",
"anonymous_id"
) VALUES
('dummyuser1@example.com', '太郎', '山田', 'ダミー町1-2-3', 'ダミービル 101号室', 'ダミー市', 'ダミー県', '123-4567', 'Japan', '09012345671', 'ext_001', 'anon_001'),
('dummyuser2@example.com', '花子', '鈴木', '架空町4-5-6', '架空アパート 202', '架空市', 'ダミー県', '234-5678', 'Japan', '09012345672', 'ext_002', 'anon_002'),
('dummyuser3@example.com', '一郎', '佐藤', '見本町7-8-9', '見本マンション 303', '見本市', 'ダミー県', '345-6789', 'Japan', '09012345673', 'ext_003', 'anon_003'),
('dummyuser4@example.com', 'さくら', '高橋', 'テスト町10-11-12', 'テストハイツ 404', 'テスト市', 'ダミー県', '456-7890', 'Japan', '09012345674', 'ext_004', 'anon_004'),
('dummyuser5@example.com', '健太', '田中', 'サンプル町13-14-15', 'サンプルコーポ 505', 'サンプル市', 'ダミー県', '567-8901', 'Japan', '09012345675', 'ext_005', 'anon_005');
INSERT後にテーブルを確認すると、このようにデータが見えます。
SendGridをDestinationとして設定
次に、SendGridをCensusのDestinationとして設定していきます。
SendGridのAPIキーを取得
まず、SendGridのAPIキーを取得します。
左のメニューのSettings
からAPI Keys
を押します。
右上のCreate API Key
を押します。
API Key Name
は任意のものを入れて、API Key Permissions
はFull Access
で、右下のCreate & View
を押します。
APIキーが表示されるため、コピーして保持しておきます。(後のCensusの設定で利用します。)
Destinationの設定
Censusの左のメニューから、Destinations
を押します。
右上の+ New Destination
を押します。
SendGrid
を選択します。
Name
に任意の名称を入れて、API Token
には先程SendGridで確認した内容を入れて、右下のConnect
を押します。
次の画面で接続テストが行われます。問題なければ、右下のFinish
を押します。
Syncの設定
SnowflakeからSendGridにデータを転送するための、Syncの設定を行います。
左のメニューからSyncs
を押し、+ Create a sync
を押します。
Select a Source
では、事前に作成したテーブルを選択します。(データベースなどが選択できるようになるまで、少し時間がかかるためご注意ください。)
Select a Destination
では、先程Destinationとして作成したSendGridを設定し、Object
はContact
とします。
Select a Sync Behavior
は、Update or Create
とします。
Select a Sync Key
では、SendGridのContactのEmail
とSyncさせるカラムを設定します。
Set Up SendGrid Field Mappings
では、「Snowflakeのテーブルのカラム」と「SendGridのフィールド」をどうマッピングさせるか設定します。(下図は、Generate Mappings
で設定した内容です。)
Run a Test Sync
では、Run Test
を押してテスト実行します。
テスト実行が問題なく終われば、下図のように表示されるため、Next
を押します。(ちなみにRun Test
を行うと、画像2枚目のように、1件だけSendGridにデータがSyncされております。)
Select a Run Mode
を必要なものに設定して、Create
を押します。
Syncを手動実行
実際に作成したSyncを手動実行してみます。
作成したSyncのページに移動し、Run Now
を押します。
Syncが完了すると、下図のように表示されます。
この後、SendGridでContactsを確認すると、5レコード同期されていることが確認できました!
あるContactの詳細画面を見ると、下図のように表示されます。Snowflake上のデータが同期されていることがわかりますね。
最後に
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみました。
Censusを使うことで、SnowflakeからSendGridにとても簡単にデータを同期できますので、ぜひご活用ください!