Qlik Automateを活用したQlikとHubSpotの連携について、これまでは間にAmazon S3を置き、Qlik のアプリからAmazon S3にcsvをエクスポートし、Qli AutomateにてS3からcsvを読み込むという形で進めてきました。



今回は、Qlik Automateのアクション『Create Contacts In Batch』を使い、間にS3を挟まずに、Qlikのアプリより直接HubSpotのコンタクトを一括で作成する方法について説明します。
流れとしては、アプリ側でリストを用意し、Qlik Automateの『Create Contacts In Batch』にてリストを読み込みます。
リストの作成
Eメール・姓・名の3項目を元にコンタクトを作成するとします。
リストとして、最終的に下記の形を目指します。
[
{“properties”:{
“email”:”test1@mail”,
“firstname”:”test1姓”,
“lastname”:”test1名”
}},
{“properties”:{
“email”:”test2@mail”,
“firstname”:”test2姓”,
“lastname”:”test2名”
}}
]プロパティ名はHubSpotの内部名である必要があります。
また、1回のバッチで最大100件までしかレコードを送れないため、ループ処理で100件ずつリストを作成する必要があります。
Qlikアプリにて、下記スクリプトよりリストを作成します。
// プロパティの項目名とHubSpotの内部名のMappingテーブルを作成
Map_Hubspot_Contact_Property:
Mapping
Load * INLINE [
項目名,内部名
Eメール,email
姓,firstname
名,lastname
];
// 顧客データをロード
ContactCreate_before_crosstable:
LOAD
RowNo() as row_no,
Eメール,
姓,
名
FROM [顧客データ]
// 100件ずつのリストを作成
ContactCreate_cross:
CrossTable('key','value',1)
Load * Resident ContactCreate_before_crosstable;
Drop Table ContactCreate_before_crosstable;
ContactCreate_concat:
Load
row_no,
'"' & ApplyMap('Map_Hubspot_Contact_Property',key) & '"' & ':' & '"' & value & '"' as json_field
Resident ContactCreate_cross;
Drop Table ContactCreate_cross;
NoConcatenate
ContactCreate_concat2:
Load
row_no,
'{' & Concat(DISTINCT json_field,',') & '}' as json_field
Resident ContactCreate_concat
Group by row_no;
Drop Table ContactCreate_concat;
Let vRow_num_all_contactcreate = NoOfRows('ContactCreate_concat2');
Let vRow_num_split_contactcreate = Floor($(vRow_num_all_contactcreate)/100);
For i = 0 to $(vRow_num_split_contactcreate)
ContactCreate_concat3:
Load
row_no,
JsonSet('{}','/properties',json_field) as json_field2
Resident ContactCreate_concat2
Where row_no > $(i)*100 and row_no <=($(i)+1)*100;
Contact_create_json:
Load
'[' & Concat(json_field2,',') & ']' as json_Contact_create
Resident ContactCreate_concat3;
Drop Table ContactCreate_concat3;
Next i
Drop Table ContactCreate_concat2;これにて、Qlikアプリ上でリストが作成されました。
Qlik AutomateによるBatch処理
Qlik Automateにて、アクション『Create Contacts In Batch』より、コンタクトを作成します。

『List Valuses Of Fielf』で、App IDにて先ほどリストを作成したアプリ、Field Nameにて先ほど作成したリスト名(json_Contact_create)を選択します。
『Create Contacts In Batch』にて、リストを読み込み、コンタクトを一括作成します。
これにて、HubSpotのコンタクトが一括で作成されました。
最後に
Batch処理については、現状、コンタクトのCreateとUpdate、取引のCreateとUpdateの4つがQlik Automateに実装されています。
第2回で説明した差分更新や、第3回で説明したUPDATE_KEYとあわせ、コンタクト・取引の作成/更新を自動化してみてください。


