Workatoを初めて触ってみる①（初心者向け）

※2022年4月時点の情報に基づいています

# はじめに
Workatoを始めてみました。
超々初心者向きで、見るべき情報は少ないのが恐縮ですが、Recipeを自力で作るところまでの記録を残しておきます。
本稿では、Project作成からConnection作成まで対象です。

Workatoとは、巷でよく耳にするiPaaS（Integration Platform as a Service）と言われる、異なるサービスやシステムを繋ぐプラットフォームの1つです。
単にiPaaSの機能だけかと言われると、そうでもなく、様々な機能が付随しています。
Recipeと呼ばれるワークフローの自動化や、Bot（SlackやTeamsと連携可能）、ETLなどを備えています。

# Projectを作る
Projectが無いと始まらないので、何でもいいのでとりあえず作ります。
Folderはあってもなくても、今のところは大丈夫そうです。
![NewProject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/7876e741-6f28-0140-7a13-7bd63fd580ab.png)

PojectとFolderはリソース（ConnectionやRecipe）を整理するためのものになります。Project単位にユーザ（ロール）に対する権限を付与できるので複数チームで開発する際は、チーム単位にProjectを作り、アクセスできる範囲を絞るなどします。

# Connectionを作る
各種クラウドサービスとWorkatoをつなぎます。

## 既にあるConnectorを使う
メジャーなクラウドサービスは、予めConnectorが用意されいます。
![Connector.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/7c433b75-0044-9f91-5a9a-ca110eb3d720.png)

Salesforceを例にConnectionを作ってみます。
OAuth認証に対応したクラウドサービスの場合、特に難しいことはありません。必要な事項を入力し（Salesforceの場合はSandboxかProductionかを選択）、Connectボタンを押せば、クラウドサービス側の認証に飛ぶので、ID/PWを入力し、外部（Workato）からのアクセスを許可するだけです。
![SFDC1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/81549681-2548-a53e-7f6d-3f01141b8f97.png)
![SFDC2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/b83773d8-9b1b-fbdd-16ac-a16097bf47da.png)
Salesforce以外のクラウドサービスでもOAuth認証なら手順はだいたい同じです（ワンタイムパスワードを入力させるサービスもありますが）。

クラウドサービス側のセキュリティ設定で外部アクセスを禁止している場合、設定の変更が必要です。
私の勤務先のboxアカウントはエラーとなりました。
![box.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/64b8c422-f865-6be5-2920-dc7fa876b838.png)

OAuth認証ではなく、APIキーなどで接続するサービスの場合は、WorkatoのConnection作成時に必要なキーを入力します。
AWS S3の例です。IAMで作成したアクセスキーとシークレットをWorkatoに登録します。
![s3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/786a55d0-c5f9-8504-742c-4b911892d364.png)

## コミュニティで作成されたCostom Connectorをインストールする
Connectorを検索しても、ちょっとマイナーなクラウドサービスは見つからない場合があります。
その場合は、コミュニティで作成されたCostom Connectorを探してみます。
個人・団体や企業が自作のConnectorを作成し、コミュニティに無償公開しています。

私が普段使うUiPathもコミュニティにありました。
![uipath1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/588b8480-c11e-e212-b99d-8e7dd1fdd86d.png)

Install connectorボタンを押して、自分の環境のインストールします。
![uipath2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/aefc1054-9930-89f6-3c58-3c07b798d313.png)

インストールしたCostom Connectorはソースがオープンとなっていて、カスタマイズもできるようです。
Release lastest versionボタンを押して、Connectorを使用可能な状態にします。
![uipath3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/d010f25a-245b-ce51-809c-e479c142aa91.png)

## コミュニティにも無い時は、自作する
コミュニティにも無いマニアックなクラウドサービスをつなぐ場合は、SDKか公開されているのでConnectorを自作します。
詳細はよく分かっていないので今後、検証してからにします。
![自作.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/39b1b1b0-9fd0-6501-bc79-30bd8d1bc398.png)

自作が難しい場合は、汎用的なHTTP接続のConnectorがあるので、それを利用しても良いかもしれません。

## 余談
細かい話ですが、一度作成したAWS S3のConnectionについて、使用している認証キーを無効化にしてみましたが、Workato上のConnectionステータスは「Connected」まま変わらず（リロードしても）。このステータスはリアルタイムな情報ではなく、初回作成時に認証成功したら、ステータスはそのままみたいです。Recipeを動かした際にエラーになると思われます。
![Connection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/39f7ebe4-a0e6-ff8e-2b64-e8ea5595a714.png)

# さいごに
APIを使ったクラウドサービスのアプリ連携は、イチからプログラミングしてもいいのですが、認証の仕組みを理解していないと大体ハマります。その点、WorkatoのようなiPaaS製品は、GUIで簡単につなぐことができるので、ECU開発など非ITエンジニアの方も使いこなしやすいかなと思います。

次回は、Recipeを作って簡単な自動化フローを作ってみます。