Qlik Automate (自動化)によるQlik SenseとHubSpotの連携④

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とあわせ、コンタクト・取引の作成/更新を自動化してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次