Sansanからkintoneにデータを移行する方法

Sansanの名刺データに含まれる会社と人についての情報を、kintoneの取引先とリードの2つのアプリに分けて移行したい。



Sansanのデータを正とし、また既存のkintoneの取引先アプリ・リードアプリのデータに対して、既にあった場合は更新、なければ追加、つまりUPSERTを行いたいとします。
Sansan Sourceのテーブルは次のようになっています。

会社と名刺のデータそれぞれにIDが振られており、Sansan上で同じ会社であれば同じ会社IDとなります。会社と名刺のデータを分けた上で、それぞれのユニークなIDでUPSERTを行いたいのですが、kintoneのUPSERTは現在、kintone内部で自動的に割り振られるIDでのみ可能であるため、次のようにkintone Sourceを用いた上で、kintoneのIDもReckoner上に取り込むようにします。

Sansan Sourceを左側にした上で、各kintoneアプリと左結合を行い、kintone上にデータがあれば、そのIDが、なければNULLになるようにします。

その後、各テーブルを必要なカラムのみに投影を行って絞り、最後にkintoneの各アプリへUPSERTを行います。
このUPSERTの操作でkintoneの既存アイテムが更新される場合、会社名や名字・名前等のカラムは、Workflowを実行するたびに、すべてSansanの最新のデータで上書きされます。
会社名や名字・名前等の更新が不必要な場合は、SQLによってkintoneのデータがあった場合はそちらを優先するようにして、対象外にすることが可能です。


上のように、取得 したい状態は範囲を設定します。


上のような設定で、各kintoneのアプリのすべてのカラムを読み取るようにします。


上のように、Sansan Sourceを左においた上で、kintone Sourceと左外部結合を行います。条件は、Sansan側の会社/名刺IDが、kintone側に保持しているSansanの会社/名刺IDと同一であればというものにします。


上のように、Sansanのカラムを絞った上で、kintone側のアプリのカラムと同じ名前にします。


上のように、Sansanのカラムを絞った上で、kintone側のアプリのカラムと同じ名前にします。

上のように、取引先アプリに対して、kintoneの内部IDであるRecordIdをKeyにした上でUPSERTを行います。
取引先アプリのスキーマは、次にようになっています。各フィールドの型は、すべて「文字列(1行)」になっています。


上のように、リードアプリに対して、kintoneの内部IDであるRecordIdをKeyにした上でUPSERTを行います。
リードアプリのスキーマは、次にようになっています。各フィールドの型は、すべて「文字列(1行)」になっています。
