Googleの新しいiPaaS「Application Integration」からkintoneに繋いでみた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/8ad6cbec-ecb5-c340-bda1-97d1613db890.png)

# はじめに

Google CloudよりiPaaSと呼ばれるクラウドサービス上でのデータ連携プラットフォーム「Application Integration」がリリースされました。

- [Google Cloud社のBlog](https://cloud.google.com/blog/products/api-management/announcing-the-ga-of-application-integration)
- [Publickey社のリリース](https://www.publickey1.jp/blog/23/googleipaasapplication_integrationsalesforcekintonebigquerymysqlgui.html)

同サービスではGoogle Cloud サービスとサードパーティのビジネス アプリケーションに接続可能なIntegration Connectorsと呼ばれる[55種類のコネクタ](https://cloud.google.com/integration-connectors/docs/all-integration-connectors?hl=ja)（2023/7/26筆者調べ）がビルドインされており利用できるようになっています。その中には、サイボウズのkintoneやSalesforceといったSaaSアプリケーションも含まれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/1a87dd84-4ea6-2106-93a5-6bce748b4480.png)

本記事では、リリースされたばかりのApplication Integrationを利用して、kintoneのデータに接続してみましたのでその手順についてご紹介します。

# 作成したフロー

Application IntegrationではGUI上のマウス操作のみでノーコードで以下のような自動化フローを構築することが出来ます。今回は、kintoneの顧客リストを対象に前日更新された顧客レコードのみを抽出して特定のメールアドレスへ通知するフローを作成してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/46ce52df-fd9d-e2e6-7554-299ea12ee1b8.png)

トリガーとしてはスケジュールなども標準で準備されていましたが、今回はテスト用にAPIトリガーを配置して手動で実行して確認しました。

# 前提として必要なもの

- Google Cloudのアカウント
- kintoneのアカウント

# 手順

## Application Integrationの初期設定

Application Integrationには既に日本語のドキュメントガイドがあります。まずは、こちらの
「[Application Integration を設定する](https://cloud.google.com/application-integration/docs/setup-application-integration?hl=ja)」内の「[準備と計画](https://cloud.google.com/application-integration/docs/setup-application-integration?hl=ja#prereq)」と「[Application Integrationの設定を開始する](https://cloud.google.com/application-integration/docs/setup-application-integration?hl=ja#start-application-integration-setup)」の手順をGoogle Cloud環境にて設定します。

## インテグレーションコネクタからkintoneへの接続を作成する

日本語ドキュメントガイド「[接続を作成する](https://cloud.google.com/integration-connectors/docs/createconnection?hl=ja&_ga=2.8609974.-282106243.1663362527)」を参考に接続ページを開きます。kintoneへの接続を追加するため「+Create New」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/4eb43a71-231b-8fd0-5a9e-9db0bd6cd9e2.png)

Locationを選択します。本手順では「asia-northeast1(東京)」を選択しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/2a4c877a-792f-b7c1-e810-1edc6dc65a46.png)

Connection Detailsで以下の項目を選択もしくは入力します。
- Connector : Kintone(Preview)を選択
- Connector version : 1(Connectorをセットすると自動で1がセットされる)
- Connection Name : kintone-customer(任意)
- Check Fro Subtables In : * (アスタリスク)
- Subtable Separator Character : _ (アンダースコア)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/ebc5ee45-3bb5-8333-84d8-1e1abdd145b1.png)

kintoneコネクタに関する情報は[こちらのページ](https://cloud.google.com/integration-connectors/docs/connectors/kintone/configure)を参照しました。

DestinationsではURLにkintoneのサブドメインを含むURL（例：https://SUBDOMAIN_NAME.cybozu.com ）をセットします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/ca905832-a109-ee05-0bf5-e2ca387bf445.png)

Authernticationの種類はUser、Passwordを選択しました。

- UserName : kintoneへのログインユーザー
- Password：kintoneへのログインパスワード
- Secretのバージョン（シークレット初回作成時にはデフォルトで1）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/ed3356dc-a550-37af-ae57-4ea6079cbed5.png)

最後に設定値をReviewしてCreateします。私の環境では接続が作成されてActiveになるまで数分かかりました。接続のリスト画面に戻りステータスがActiveになりましたら接続の作成は成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/67684d52-e678-9d52-3cc9-d746f2ae8718.png)

## 統合（Integration）デザイナでフローを作成

日本語ドキュメントガイド「[統合デザイナー](https://cloud.google.com/application-integration/docs/integration-designer-layout?hl=ja#open-integration-designer)」を参考に「アプリケーションの統合」の概要ページを開き「+CREATE INTEGRATION」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/fa5f7d1e-fba9-88e4-6a26-35a3ad20c833.png)

Integration nameに任意の名称（本例ではkintoneCustomer2Email）を設定してRegion（本例ではasia-east1）を選択してCREATEボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/738f8e6a-9005-2c85-b8bc-018924074de6.png)

デザイナが開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/febf8acd-6503-977f-60ac-f93063692f8b.png)

TRIGGERSプルダウンからフローの実行起点となるAPI Triggerを選択してキャンパスに配置します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/ca36df69-ccf7-0b4a-cd53-e462e9a34e25.png)

TASKSプルダウンからkintoneへ接続するためのConnectorsを選択してキャンパスに配置します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/d4575480-0385-7d46-293d-72c40a69c34d.png)

API TriggerからConnectorsにフローを繋ぎ、ConnectorsのLabelをkintoneなど任意の名称に変更します。続いてCONFIGURE CONNECTORボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/69fcfaa8-3160-8cd8-d5a8-fd9c3738f316.png)

Select connectionにてRegion（本例ではasia-northeast1）、および、接続（本例ではkintone-customer）を選択して次に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/840481c8-c8ab-7045-144d-c4ce27ce38a1.png)

TypeではEntitiesを選択して次に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/cc739687-8921-1c07-58f8-06270838ce1b.png)

Set entities/actionsにてエンティティのプルダウンメニューを開くとkitntoneのアプリ一覧がリストで表示されますので任意のアプリ（本例では顧客リスト）を選択、オペレーションはListを選択して次に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/73a995a9-018e-2067-be50-8fddfe6f650e.png)

デザイナに戻りConnectors(kintone)をリクックします。右側に設定メニューが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/0be9e8ba-9d9e-ba4a-3b4b-93e6842621de.png)

Task inputに以下の値を設定します。

- List entities page size : デフォルトだと25の取得のようですので必要に応じて1000など大きな値に変更
- Filter clause : アプリ内の全レコードではなく前日更新のあったレコードのみを取得するため「更新日時 >= DATEADD('d', -1, CURRENT_DATE())」をセット

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/491b8712-c11b-43b8-4bd5-3374d44c255c.png)

デザイナに戻りTASKSからSendEmailを選択してデザイナに配置してConnectors(kintone)からフローを繋げます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/af3e70ef-ebe8-3109-3dde-401ff2ab4a0a.png)

Task inputの以下の値をセットします。

- To Recipient(s) : 送信先のメールアドレス
- Subject：メールのタイトル（本例では「顧客リスト更新分」）
- Body in Plain Text : 変数から「connectionOutputPayload(kintone)」を選択

上記をセットしたらデザイナでのフロー作成は完成です。

## フローの実行

それでは作成したフローをテスト実行してみましょう。デザイナ上段メニュー内のTESTボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/d49041ea-2148-6226-7e70-74daa668919c.png)

デフォルト設定のままでTEST INTEGRATIONボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/a7ad5166-0d15-39be-c6da-2c41522e5078.png)

Integration execusion succeeded.のメッセージが表示されれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/de8b710f-2358-bc11-b9ab-05846dfa53c2.png)

SendEmailで指定したメールボックスを確認してみましょう。以下のようにkintoneの顧客リスト内の前日の更新データのみJSON配列として表示されていれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123181/2ad2340a-95a6-9527-26ff-a116f2f5f74c.png)

上記では手動でフローを実行しましたがAPI Triggerは外部アプリケーションからAPI経由で実行することが可能です。詳細は[こちらのドキュメント](https://cloud.google.com/application-integration/docs/configure-api-trigger?hl=ja#invoke-api-trigger-from-an-application)を参照しました。

# まとめ

本記事ではGoogleの新しいiPaaS「Application Integration」を利用してkintoneアプリ内の特定条件に合致したレコードデータのみを抽出してメールで通知するフローをノーコードで作成することが出来ました。Application Integrationにはkintoneの他にも様々なコネクタがあるので他のシステムとも同様に連携できるようです。本記事がApplication Integrationでフローを作成する際のご参考となれば幸いです。