カスタムアクション

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

Workatoがすでにサポートしているコネクター用のアクションを作成しますか。 カスタムアクションを使用すると、HTTPユニバーサルコネクターまたはSDK経由でゼロから作成する代わりに、既存のコネクターフレームワークを使用して新しいアクションを作成できます。 カスタムアクションを使用すると、アクションのリクエストとレスポンスの形式をWorkatoに指定することで、アクションを簡単に作成できます。 これはAPIドキュメントから取得できます。

カスタムアクションの作成は、HTTPコネクター経由でアクションを作成する方法を高速化したものです。カスタムアクションは、コネクターの既存の認可フレームワークを利用し、そのアプリのAPIをすでに理解しているためです。

カスタムアクションのアプリサポート

Workato上のほとんどのアプリはカスタムアクションをサポートしています。 カスタムアクションは、コネクターのアクションピックリストにあります。

カスタムアクションの選択カスタムアクションの選択

カスタムアクションには、使用可能なスコープが一覧表示されます。 通常、読み取りまたは書き込みができるのは、スコープを持つオブジェクトのみです。 たとえば、Slackコネクターでカスタムアクションを選択すると、含まれるスコープが次のものだけであることがわかります。

channels:read, channels:write, chat:write:bot, chat:write:user, groups:read, groups:write,
users:read, users:read.email

カスタムアクションで使用可能なアプリスコープカスタムアクションで使用可能なアプリスコープ

追加のスコープが必要なアクションを作成すると、そのアクションがAPIでリクエストを実行しようとしたときにエラーが発生します。 たとえば、Slackでリマインダー作成アクションを作成しようとすると、reminders:write権限がないため、このエラーが返されます。

呼び出し時にAPIから返されたスコープエラー呼び出し時にAPIから返されたスコープエラー

Workato上のコネクターにカスタムアクションまたは追加のスコープを追加したい場合は、Customer Success Representativeに連絡して機能拡張リクエストを提出してください。

カスタムアクションの入力フィールド

このセクションでは、カスタムアクションの設定入力フィールドについて詳しく説明します。

入力フィールド説明
アクション名カスタムアクションの名前を指定します。 この名前はアクションタイトルとして表示されます。
リクエストタイプ呼び出すAPIエンドポイントのHTTPメソッドを指定します。
パスベースURIに追加する相対URIを指定します。 デフォルトパスを上書きする予定がない限り、先頭に/を付けないでください。 たとえば、SlackのベースURIはhttps://slack.com/api/です。 conversations.listを入力すると、リクエストはhttps://slack.com/api/conversations.listに送信されます。一方、/conversations.listhttps://slack.com/conversations.listに送信されます。 古いAPIバージョンなど、別のベースパスを使用する場合は、/プレフィックスを追加します。
URLパラメーター(GETおよびDELETEの場合)APIリクエストでGETまたはDELETEを使用する場合は、URLパラメーターを指定します。 これらは送信前にURLエンコードされます。
入力(POSTPUT、およびPATCHの場合)APIリクエストでPOSTPUT、またはPATCHを使用する場合は、JSONリクエスト本文を指定します。
出力APIが返すことを想定している出力スキーマをWorkatoに記述します。 これは出力データツリーの生成に使用されます。

カスタムアクションの例: Slackのlist conversationsアクションの作成

この例では、パブリックチャンネル、プライベートチャンネル、ダイレクトメッセージなど、チャンネルに似たオブジェクトである会話を一覧表示するカスタムSlackアクションを作成する方法を示します。 詳細については、Slack APIドキュメントを参照してください。

1

Slackアクションとしてカスタムアクションを選択します。

Slackカスタムアクションを選択Slackカスタムアクションを選択

2

アクション名フィールドに、List conversationsなどのアクション名を入力します。 これにより、レシピエディター内のアクションタイトルが変更されます。

カスタムアクションの命名カスタムアクションの命名

3

呼び出すAPIエンドポイントに基づいて、リクエストのHTTPメソッドを選択します。 Slackのlist.conversationsエンドポイントはGETメソッドを使用します。

list conversationsに関するSlackのAPIドキュメントlist conversationsに関するSlackのAPIドキュメント

4

該当するHTTPメソッドを選択すると、該当する入力フィールドが表示されます。

HTTPメソッドを選択すると追加フィールドが表示されるHTTPメソッドを選択すると追加フィールドが表示される

5

Pathフィールドにconversations.listまたはhttps://slack.com/api/conversations.listを入力します。

list conversations用URLエンドポイントの追加list conversations用URLエンドポイントの追加

6

Request URL parametersフィールドで、リクエストにURLパラメーターを追加します。 このAPIエンドポイントには、認証トークン以外に必須の引数はありません。認証トークンは、確立済みのSlackコネクションを通じてWorkatoが処理します。

list conversationsエンドポイントの引数に関するSlack APIドキュメントlist conversationsエンドポイントの引数に関するSlack APIドキュメント

アーカイブ済みの会話を除外し、返される会話の数を制限するには、次のパラメーターを定義します。

  • exclude_archived: データ型としてブール値を選択します。
  • limit: データ型として整数を選択します。

カスタムアクションのURLパラメーターの追加カスタムアクションのURLパラメーターの追加

パラメーターを定義したら、それらの値を指定します。 この例では、値はexclude_archivedtruelimit20としてハードコードされていますが、変数を渡す予定がある場合は、これらをデータピルに置き換えることができます。

パラメーター値の入力パラメーター値の入力

最後にもう1つ、出力スキーマを指定する必要があります。 これは通常、APIドキュメントからコピーしてWorkatoに貼り付けることができます。 Slack APIドキュメントからコピーしたJSONレスポンスを次に示します。

{
    "ok": true,
    "channels": [
        {
            "id": "C012AB3CD",
            "name": "general",
            "is_channel": true,
            "is_group": false,
            "is_im": false,
            "created": 1449252889,
            "creator": "U012A3CDE",
            "is_archived": false,
            "is_general": true,
            "unlinked": 0,
            "name_normalized": "general",
            "is_shared": false,
            "is_ext_shared": false,
            "is_org_shared": false,
            "pending_shared": [],
            "is_pending_ext_shared": false,
            "is_member": true,
            "is_private": false,
            "is_mpim": false,
            "updated": 1678229664302,
            "topic": {
                "value": "Company-wide announcements and work-based matters",
                "creator": "",
                "last_set": 0
            },
            "purpose": {
                "value": "This channel is for team-wide communication and announcements. All team members are in this channel.",
                "creator": "",
                "last_set": 0
            },
            "previous_names": [],
            "num_members": 4
        },
        {
            "id": "C061EG9T2",
            "name": "random",
            "is_channel": true,
            "is_group": false,
            "is_im": false,
            "created": 1449252889,
            "creator": "U061F7AUR",
            "is_archived": false,
            "is_general": false,
            "unlinked": 0,
            "name_normalized": "random",
            "is_shared": false,
            "is_ext_shared": false,
            "is_org_shared": false,
            "pending_shared": [],
            "is_pending_ext_shared": false,
            "is_member": true,
            "is_private": false,
            "is_mpim": false,
            "updated": 1678229664302,
            "topic": {
                "value": "Non-work banter and water cooler conversation",
                "creator": "",
                "last_set": 0
            },
            "purpose": {
                "value": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.",
                "creator": "",
                "last_set": 0
            },
            "previous_names": [],
            "num_members": 4
        }
    ],
    "response_metadata": {
        "next_cursor": "dGVhbTpDMDYxRkE1UEI="
    }
}

これをコピーしてWorkatoに貼り付けると、出力データツリーを生成できます。

APIドキュメントのJSONレスポンスサンプルを使用してWorkatoで出力データツリーを生成APIドキュメントのJSONレスポンスサンプルを使用してWorkatoで出力データツリーを生成

これにより、想定されるレスポンススキーマをWorkatoに伝えます。また、生成されたデータピルは、レシピの後続ステップでデータを他のアプリに移動するために使用できます。

Workatoで生成された出力データツリーWorkatoで生成された出力データツリー

ただし、実際のレスポンスに、このレスポンスサンプルで指定したデータが含まれていない場合、データピルには値が入りません。

カスタムSlackアクションをテストする準備ができました。 スケジューラー by Workatoの新しい定期イベントトリガーを使用し、テストレシピをクリックします。

会話を一覧表示する完成済みのSlackカスタムアクション会話を一覧表示する完成済みのSlackカスタムアクション

レシピをテストした後、アクションに渡された入力を詳細なジョブ履歴で確認できます。

ジョブ履歴: 入力データジョブ履歴: 入力データ

Slack APIによって返された詳細な出力を表示して、API呼び出しが成功したかどうかを確認することもできます。 Okフィールドがtrueの場合、呼び出しは成功しています。

ジョブ履歴: 返された会話データを示す出力ジョブ履歴: 返された会話データを示す出力

Last updated: