はじめに
UiPathには、Integration ServiceというiPaaS的なプロダクトがあり、これを使うと外部サービスのイベントをトリガにして、UiPathのプロセスを簡単に起動することができます。
Integration Serviceと類似したWorkatoというiPaaS製品についても記事を書いていますので、合わせてご覧ください。
使うもの
※クラウド環境は2022年4月時点のもの
- UiPath Integration Service
- UiPath Cloud Orchestrator
- UiPath Studio 2021.10.4
コネクションを作成
今回は、Salesforceで取引先レコードが作成されたことをトリガにして、ロボットを起動してみます。
Integration Serviceの「コネクター」から対象のサービスを選択します。

以降は選択した外部サービスによって変わります。
Salesforceの場合は、対象環境が「Production」か「Sandbox」かを選択します。

OAuth認証に対応しているサービスの場合は、認証ページに飛ばされ、アクセスを許可します。お馴染みの流れです。

ワークフローを実装
次にトリガから呼び出されるワークフローを実装します。
基本的には好きなように実装すればいいのですが、1点だけルールがあります。
以下の引数を作成してください。これらの引数はトリガからジョブが実行される際に自動的に値がセットされます。
- [IN] String UiPathEventConnector
- [IN] String UiPathEvent
- [IN] String UiPathEventObjectType
- [IN] String UiPathEventObjectId
実装が完了したら、Orchestratorへパブリッシュして、プロセスを作成しておきます。
現時点のIntegration Serviceの仕様では、トリガからジョブを実行する際、特定のマシンやアカウントを指定することができないので、マシンを特定の1台に絞りたい場合は、フォルダーを分けて対応してください。

トリガを作成
Integration Serviceに戻り、トリガを作成します。
接続コネクターと、トリガイベント、実行するプロセスを選択します。
トリガイベントは外部サービスによって異なりますが、Salesforceの場合は「レコード作成時」と「レコード変更時」をトリガとすることができます。
また、対象のオブジェクト(テーブル)(Integration Service上では「記録」とか、ちょっと翻訳が変)は、接続したSalesforceの環境上のものが選択できます。標準オブジェクトもカスタムオブジェクトも選択できます。ちなみにオブジェクト名が、API参照名(物理名)での表示なので、表示名(論理名)にしてほしいなあと思っています。

試してみます
数分後、ジョブが実行されたことが確認できました。
公式のドキュメントによると、5分おきのポーリングでSalesforceの状態を監視しているようです。現時点の仕様ではポーリング間隔の変更はできません。

Orchestratorのジョブ画面でも確認できます。実行元が「連携トリガー」となっています。

ジョブの引数を確認してみます。
「UiPathEventObjectId」にセットされた値は、Salesforce上の作成された取引先レコードの主キーとなるものです。
Salesforceからは作成した取引先レコードの中身(会社名や電話番号などの値)は渡されないのが残念です。ワークフロー内で作成されたレコードの値を使いたい場合は、別途Integration Serviceアクティビティパッケージを使って、値取得する必要があります(UiPathEventObjectIdをキーにしてレコード取得)。
おわりに
いかがだったでしょうか。割と簡単だったと思います。
外部サービスのイベントをトリガにできることにより、更に自動化の幅が広がるかと思うので、積極的に活用していきたいプロダクトだと思いました(通常のStudioやRobotのライセンスにIntegration Serviceの無償枠が付いているようです)。
本記事は以下の公式情報を参照しています。




