Marketo のLeads データをkintone 顧客アプリにデータ連携（RSSBus Connect）

RSSBus Connect は、XML メッセージングベースの次世代データ連携ツールです。以下の連携機能がワンセットになっているサーバー製品です。
・クラウド連携
・ファイル転送
・EDI
・API 管理


この例では、Marketo のLeads 情報をkintone の顧客アプリに挿入する処理を組みます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/116843/2fb3ab92-84c3-8720-8113-e51ed0f85a5f.png)

#RSSBus Connect のダウンロード
[https://www.rssbus.com/](https://www.rssbus.com/) から製品をダウンロードします。Windows 版とJava/Linux 版があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/116843/5babb629-effc-8bac-5ca3-6f426b3c17c9.png)

#ビジュアルFlow によるMarketo -> kintone フローのデザイン
RSSBus Connect を起動し、Web コンソールにログインします。
「FLOW」タブを開き、フローデザイナを開きます。
左ペインの「Connectors」からMarketo およびkintone のポートをドラッグして、デザイン画面にドロップします。間に「Map」ポートもドロップします。ポートとポートを線でつなぎます。

![スクリーンショット (1221).png](https://qiita-image-store.s3.amazonaws.com/0/116843/ef82f64f-e0bb-6b5f-de36-6c2705c89f0f.png)

＃Marketo 側の設定
Marketo ポートのギア印をクリックして、設定画面を開きます。
Marketo のREST Endpoint、OAuth Client Id、OAuth Client Secret を入力します。保存して、テスト接続します。
Mappinng からテーブル・ビューの選択画面を開きます。
![スクリーンショット (1223).png](https://qiita-image-store.s3.amazonaws.com/0/116843/880e3a4f-8ecd-a28d-f7b6-7a96249b925b.png)

Marketo のエンドポイントのリストが表示されるので、今回はLeads を選択します。
OK をおして、どのカラム（フィールド）を同期するかをクリックして選択します。
![スクリーンショット (1224).png](https://qiita-image-store.s3.amazonaws.com/0/116843/37a9b2a1-39ff-a8d0-cb78-d37c314c4a23.png)

「Automation」タブで、受送信の設定をします。今回はデータを取得してくる方なので、「Receive」に☑をします。
![スクリーンショット (1225).png](https://qiita-image-store.s3.amazonaws.com/0/116843/aa998190-f86a-914b-9ba8-49d0ab3abc41.png)

#kintone 側の設定
kintone 側は既存のアプリでもいいですし、新しくMarketo データを同期するアプリを作っても可です。
![スクリーンショット (1230).png](https://qiita-image-store.s3.amazonaws.com/0/116843/b6a24efa-6f20-445d-b9e8-ffc0bb9f8734.png)

Marketo の時と同様にRSSBus 側でkintone の接続および同期先オブジェクトを設定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/116843/f1f8f394-2679-d19d-2636-9d26958bddda.png)

#マッピング設定
XML ファイルベースのメッセージングなので、サンプルとなるXML ファイルを指定する必用があります。
各ポートの「<>」コード印からXML のサンプルを参照することができるので、ファイルとして保存します。

Marketo XML
```
<Items>
    <Leads table="[Leads]" selectQuery="SELECT [Id], [Company], [Email], [LastName] FROM [Leads]">
        <Id key="true" />
        <Company />
        <Email />
        <LastName />
    </Leads>
</Items>
```

kintone XML
```
<Items>
    <______ table="[新しいアプリ]">
        <RecordId type="int" key="true" />
        <Company />
        <Email />
        <Last_Name column="Last Name" />
    </______>
</Items>
```
Map ポートのSetting でSource File、Destination File をアップロードして選択します。

![スクリーンショット (1232).png](https://qiita-image-store.s3.amazonaws.com/0/116843/993a55ed-7c5a-14cc-ecbc-c7a537046dfc.png)


Source、Destinatio の項目間のマッピングを行います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/116843/de9f70fa-7c6c-cab9-19a2-a255c2c88b66.png)

あとはジョブ設定を行って終わりです。

#手動で起動
テストのために手動で起動してみましょう。
Marketo ポートを開き、Out ジョブを実行します。
するMarketo からLeads 情報がXML メッセージとしてRSSBus に格納されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/116843/c7ad0ea2-4358-38ce-e5db-2639a562d9dc.png)

Output で確認すると、レコードがReceived になっています。

![スクリーンショット (1214).png](https://qiita-image-store.s3.amazonaws.com/0/116843/90a6a212-9697-8643-8ac2-3fe739be0950.png)

Map ポートの「Send」にレコードが移り、kintone に挿入されるとステータスが「Sent」となります。

kintone 側をブラウザで確認すると、Marketo のLeads データが確かに同期されています。

![スクリーンショット (1215).png](https://qiita-image-store.s3.amazonaws.com/0/116843/032d63b6-907d-8d6b-d7f4-5ae9c06b90d0.png)

（おわり）