CData API Server を使って Power Automate で Workday タスクを自動化
Microsoft Power Automate は、クラウドベースのローコード/ノーコードプラットフォームで、さまざまなアプリケーションやサービス間で反復タスクの自動化やビジネスプロセスの効率化を簡単に実現できます。
CData API Server は、オンプレミスやクラウドを問わず、複数のソースやアプリケーションからデータへのアクセスを可能にし、Power Automate の機能を拡張します。API Server の Workday コネクタ(または 250 種類以上の他のコネクタ)を使用すると、OData や Swagger などの業界標準のデータアクセスプロトコルを使用して、Power Automate でアクションや複雑なワークフローをネイティブに作成し、トリガーできます。
この記事では、Power Automate と CData API Server をセットアップし、Workday テーブルのリードが特定の条件に一致したときにメールや通知を送信するシンプルなトリガーを作成します。
それでは始めましょう!
前提条件
- CData API Server: こちらから無料トライアルをダウンロードできます。
- Microsoft Power Automate: こちらから無料トライアルにサインアップできます。
- データにアクセスできるアクティブな Workday アカウント。
概要
以下の手順で進めていきます。
- CData API Server をインストールし、Workday への接続を設定して、API Server 内で Workday のデータ の OData API エンドポイントを作成します。
- これらのエンドポイントを Power Automate で使用し、Workday テーブルから特定の条件が満たされたときにトリガーに基づいて自動的にメールを送信するフローを構築します。
Workday データ連携について
CData は、Workday のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:
- Prism Analytics Data Catalog で作成したテーブルやデータセットにアクセスでき、Workday システムの忠実性を損なうことなく、ネイティブの Workday データハブを操作できます。
- Workday Reports-as-a-Service にアクセスして、Prism から利用できない部門データセットや、Prism の許容サイズを超えるデータセットのデータを表示できます。
- WQL、REST、または SOAP でベースデータオブジェクトにアクセスし、より詳細で細かいアクセスを実現できます(ただし、クエリの作成には Workday 管理者や IT の支援が必要な場合があります)。
ユーザーは、Tableau、Power BI、Excel などの分析ツールと Workday を統合し、当社のツールを活用して Workday データをデータベースやデータウェアハウスにレプリケートしています。アクセスは、認証されたユーザーの ID とロールに基づいて、ユーザーレベルで保護されます。
Workday を CData と連携させるための設定についての詳細は、ナレッジベース記事をご覧ください:Comprehensive Workday Connectivity through Workday WQL および Reports-as-a-Service & Workday + CData: Connection & Integration Best Practices
はじめに
ステップ 1:API Server のインストールと Workday への接続設定
1.1 API Server のインストール
まだインストールしていない場合は、CData API Server ページからお使いの OS 用のインストーラーをダウンロードしてください。インストールウィザードに従ってセットアップを完了します。
インストールが完了したら、以下の方法でサーバーを起動できます。
- Windows: CData API Server はデフォルトでサービスとして実行されます。サービスが実行されていることを確認し、ブラウザで http://localhost:8080/ を開いて API Server 管理コンソールにアクセスします。
- Linux/Mac: サーバーを手動で実行するか、サービスとして実行できます。手動で起動するには、インストールディレクトリに移動して java -jar apiserver.jar を実行します。
- また、root 権限で service.sh を実行して、API Server を Linux システムサービスとしてセットアップすることもできます。
1.2 CORS の有効化
Microsoft Power Automate と CData API Server が異なるドメインでホストされている場合、シームレスなクロスドメイン通信を可能にするために CORS(Cross-Origin Resource Sharing)を有効にする必要があります。API Server で CORS を有効にするには:
- 「Settings」に移動し、 アイコンをクリックして CORS 設定を編集します。
- Cross-Origin Resource Sharing (CORS) を有効にします。
- Allow all domains without '*' を有効にして、すべてのオリジンを許可します。
- Access-Control-Allow-Origin に Workday のオリジンドメインを入力するか、* を使用してすべてのドメインを許可します(パブリック API に適しています)。
- Access-Control-Allow-Credentials を有効にして、Cookie と認証ヘッダーを許可します。
- Access-Control-Allow-Methods に GET, PUT, POST, OPTIONS を入力します。
- Access-Control-Allow-Headers に Authorization, Content-Type を入力します。
- Access-Control-Max-Age(デフォルト:3600 秒)を設定して、プリフライトリクエストをキャッシュします。
- 「Save」をクリックします。
1.3 API Server で Workday 接続を追加
- 「Settings」に移動し、右上の Add Connection をクリックします。
- Workday を選択します。表示されない場合は、Only Installed をオフにしてすべてのコネクタを表示します。
- Install Connector をクリックして自動インストールします。手動セットアップの場合は、Manual Install を選択してダウンロードした ZIP ファイルをアップロードします。
- インストールが完了したら、Workday を再度クリックして接続設定を開き、以下の詳細を使用して設定します。
- https://domain.com(URL のサブディレクトリと会社名の前の部分)はBaseURL です。
- mycompany(URL の最後のスラッシュの後の部分)はTenant です。
- Workday を開きます。
- 検索バーにView Domain と入力します。
- プロンプトにWorkday Query Language と入力します。
- Allowed Security Group Types のいずれかに、接続するユーザーが含まれていることを確認します。
- 「Save & Test」をクリックして接続設定を検証し完了します。
Workday 接続プロパティの取得・設定方法
ここでは、4つのWorkday API の接続パラメータを設定する方法、およびTenant とBaseURL を取得する方法について説明します。必要なAPI のパラメータが設定され、カスタムOAuth および / またはAzure AD API クライアントを作成したら、接続の準備は完了です。
接続の前提条件
API / 前提条件 / 接続パラメータ
WQL / WQL サービスを有効化(下記参照) / ConnectionType: WQL
Reports as a Service / カタログレポートの設定(ヘルプドキュメントの「データアクセスのファインチューニング」参照) / ConnectionType:
Reports
REST / 自動で有効化 / ConnectionType: REST
SOAP / 自動で有効化 / ヘルプドキュメントのWorkday SOAP API への認証を参照
BaseURL およびTenant の取得
BaseURL およびTenant プロパティを取得するため、Workday にログインしてView API Clients を検索します。 この画面では、Workday はBaseURL とTenant の両方を含むURL であるWorkday REST API Endpoint を表示します。
REST API Endpoint のフォーマットは、
https://domain.com/
例えば、REST API エンドポイントがhttps://wd3-impl-services1.workday.com/ccx/api/v1/mycompany の場合、 BaseURL はhttps://wd3-impl-services1.workday.com であり、Tenant はmycompany です。
WQL サービスを有効化
Workday WQL API を介して接続するには、はじめにWQL Service を有効にする必要があります。
Workday への認証
Basic 認証以外のほとんどのWorkday 接続では、認証のためにOAuth ベースのカスタムAPI クライアントアプリケーションを作成する必要があります。これには、ユーザーがAzure AD 資格情報を介して接続するエンタープライズインストールも含まれます。 Workday への認証につての詳細は、ヘルプドキュメントの「Workday への認証」セクションを参照してください。
1.4 ユーザーの追加と設定
作成した OData エンドポイントへの安全なアクセスを許可するために、CData API Server でユーザーを作成・設定します。各ユーザーには認証情報とロールベースのアクセス制御があり、適切なロールを持つ承認されたユーザーのみが接続されたデータをクエリできるようになります。
- ナビゲーションペインから「Users」に移動し、右上の Add User をクリックします。
- Username を入力し、ユーザーの安全な Password を設定します。
- Role を選択します:
- Admin: 設定や接続を含むすべての機能へのフルアクセス。
- Query: API エンドポイント経由のデータアクセスに限定(Power Automate での使用に適しています)。
- (オプション)レート制限を設定:
- Requests Per Hour: 1 時間あたりの許可される API コール数(デフォルト:1000)。
- Max Concurrent Requests: 許可される並列 API リクエスト数(デフォルト:10)。
- ユーザーの Privileges を定義:
- GET: データの取得を許可。
- POST: 新しいレコードの作成を許可。
- PUT, MERGE, PATCH: 既存レコードの更新を許可。
- DELETE: レコードの削除を許可。
- 「Add User」をクリックしてユーザーアカウントを保存し、有効化します。
ユーザーを追加すると、Authtoken が自動的に生成されます。このトークンは、パスワードの代わりに安全な認証方法として API リクエストで使用できます。
また、Authtoken を更新したり、無効にしたり、ユーザー設定で Token Expiration オプションを有効にして有効期限ルール(例:有効期限までの日数)を設定することもできます。
1.5 エンドポイント用のテーブルを追加
Workday のデータを OData 経由で Power Automate で利用できるようにするには、API Server を通じて目的のテーブルを公開する必要があります。手順は以下のとおりです。
- CData API Server で、左側のナビゲーションから「API」に移動し、右上の Add Table をクリックします。
- 先ほど設定した Workday 接続を選択し、「Next」をクリックします。
- Tables セクションを展開して、利用可能なエンティティとスキーマを参照します。個々のテーブルを選択するか、上部の TABLE NAME チェックボックスをクリックしてすべてを選択します。次に「Confirm」をクリックします。
1.6 Power Automate でエンドポイントにアクセス
API の設定が完了したので、Power Automate から OData エンドポイントに接続してタスクを自動化できます。以下は使用できる OData エンドポイントの URL 形式です。
| エンドポイント | URL | |
|---|---|---|
| エンティティ一覧 | http://address:port/api.rsc/ | |
| テーブルメタデータ(例:albums) | http://address:port/api.rsc/albums/$metadata?@json | |
| テーブルデータ(例:albums) | http://address:port/api.rsc/albums |
これらの OData エンドポイントは、URL を使用して Power Automate で直接利用できるようになりました。Power Automate は OData をサポートしているため、ワークフローの自動化、アクションのトリガー、Workday からのライブデータを自動化プロセスに統合することが簡単にできます。
CData API Server は完全な OData フィルタリング機能をサポートしています。カスタムクエリやフィルターされたビジュアライゼーションには、$select、$filter、$orderby、$top、$skip などの標準 OData クエリパラメータをリクエストに追加できます。
ステップ 2:Power Automate でメールトリガーを自動化
CData API Server が起動し、Workday データから利用可能な OData エンドポイントができました。次に、条件に基づいてメールトリガーを自動化する Power Automate フローを構築しましょう。
この例では、Workday の Opportunity テーブルからリードと商談データを読み取るフローを構築します。このフローは ExpectedRevenue カラムで最も高い値を持つリードを特定し、そのリードの詳細を含むメールを自動的に送信します。
ここでは、Windows 11 上の Outlook アプリと Power Automate Desktop を使用します。Windows マシンに Outlook がインストールされていない場合は、Microsoft 365 公式サイトからダウンロードするか、Microsoft Store からインストールできます。
2.1 API OData エンドポイントのフィルタリング
CData API Server は OData URL フィルター (OData ABNF) を完全にサポートしているため、URL でテーブル (リソース) を直接フィルターして、フローに取り込む前に結果を制限・ソートできます。これにより、読み込み時間が短縮され、効率が向上します。サポートされているフィルターオプションの完全なリストは こちらで確認できます。
この例では、フィルターされた URL は次のようになります: http://localhost:8080/api.rsc/public_Opportunity?$top=1&$orderby=ExpectedRevenue desc
このようにエンドポイント URL を構築できます。各部分の意味は以下のとおりです:
| URL パート | 説明 |
|---|---|
| http://localhost:8080 | CData API Server がホストされているホスト名とポートを含むベース URL |
| /api.rsc/ | CData が API リソースを公開するために使用するデフォルトのエンドポイントパスプレフィックス |
| public_Opportunity | クエリするテーブル名(リソース)— この場合は public_Opportunity テーブル |
| ? | フィルタリングやソートなどに使用されるクエリ文字列パラメータの開始を示す |
| $top=1 | フィルターされた結果セットから最初のレコードのみを返す |
| $orderby=ExpectedRevenue desc | 結果を ExpectedRevenue カラムで降順にソート |
2.2 Power Automate Desktop でフローを構築
- Power Automate Desktop を起動し、左上の New をクリックして新しいフローを追加します。
-
フローに名前を付け(例:Email-Trigger)、「Create」をクリックします。
- フローデザイナーダッシュボードで、Actions ペインの下から Region を検索し、ダブルクリックして追加します。わかりやすい名前を付けて「Save」をクリックします。
-
Invoke Web Service を検索し、ダブルクリックして追加して、以下を設定します:
- URL: 先ほど作成したフィルター済み OData URL を入力します。
- Method: GET
- Accept: application/json
- Content-Type: application/json
- Save response: Get text into variable (for web pages)
- 「Save」をクリックします。
-
Convert JSON to Custom Object を検索し、ダブルクリックして追加します。
- 青い {x} アイコンをクリックし、変数 %WebServiceResponse% を選択します。
- 「Save」をクリックします。
- Outlook を検索し、Launch Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
-
Outlook を検索し、Send email message through Outlook を選択します。ダブルクリックして追加し、以下を設定します:
- Outlook instance: %OutlookInstance%
- Account: Outlook メールアドレスを入力します。
- Send email message from: Account
- To: 受信者のメールアドレスを入力します。
- Subject: メールの件名を追加します(例:New Opportunity with Highest Expected Revenue)
-
Body: 以下のシンプルな HTML コードを貼り付けます。ラベルとテーブル名は自分のものに置き換えてください:
Top Lead Details: Account ID: %JsonAsCustomObject['value'][0]['AccountId']% Name: %JsonAsCustomObject['value'][0]['Name']% Expected Revenue: %JsonAsCustomObject['value'][0]['ExpectedRevenue']% Close Date: %JsonAsCustomObject['value'][0]['CloseDate']% - Body is HTML: このオプションをオンにします。
- 「Save」をクリックします。
- Outlook を検索し、Close Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
- End region を検索し、ダブルクリックしてフローに追加します。
-
最終的なフローは次のようになります:
-
上部の「Run」をクリックしてフローを開始します。プロセスは自動的に Outlook を開き、フローで指定された受信者にメールを送信します。メールは次のようになります:
2.3 フローのスケジュールと改善
これで、最も高い ExpectedRevenue を持つ新しいリードが見つかったときにメールを送信するフローができました。Power Automate Desktop には組み込みのスケジュール機能がないため、Windows タスク スケジューラまたは Power Automate(クラウド)を使用して、設定した間隔で継続的に実行する必要があります。
重複メールを避けるには、Power Automate の Write text to file アクションを使用して Id フィールドをファイル(例:lastLead.txt)に保存します。実行するたびに、Read text from file アクションを使用して現在の Id と比較します。一致した場合はメールをスキップし、新しいリードに対してのみアラートが送信されるようにします。
このフローは始まりにすぎません。CRM レコードの更新、高価値リードの Excel へのログ記録、リアルタイム Slack アラートの送信など、リード管理プロセスのさらに多くのステップを自動化するように拡張できます。
CData API Server を 30 日間無料でお試しください
ローコード/ノーコードプラットフォームで OData REST API を構築し、ライブデータとのシームレスな統合を実現しましょう。CData API Server を 30 日間無料でお試しいただき、Workday(または 250 種類以上の他のコネクタ)からのライブデータを使用して Power Automate でタスクを自動化する方法を体験してください。
こちらから無料トライアルを開始できます。