Box Developerドキュメント

リクエスト本文に基づいてワークフローを開始

post
https://api.box.com/2.0
/workflows/:workflow_id/start

トリガータイプがWORKFLOW_MANUAL_STARTのフローを開始します。

アプリケーションは、開発者コンソールでのManage Box Relayアプリケーションスコープの使用が承認されている必要があります。

リクエスト

bearer [ACCESS_TOKEN]
application/json

パスパラメータ

stringパス内必須
12345

ワークフローのID。

リクエスト本文

string本文内省略可能
"workflow_parameters"

パラメータオブジェクトのタイプ

次の値に固定: workflow_parameters

object array本文内必須

ワークフローが開始されるファイルの配列。すべてのファイルは、ワークフローの設定済みフォルダに存在する必要があります。

string本文内省略可能
"12345678"

ファイルのID

string本文内省略可能
"file"

ファイルオブジェクトのタイプ

次の値に固定: file

object本文内

トリガーされるフロー

string本文内必須
"123456789"

フローのID

string本文内必須
"flow"

フローオブジェクトのタイプ

object本文内

ワークフローが設定されているフォルダオブジェクト。

string本文内必須
"87654321"

フォルダのID

string本文内必須
"folder"

フォルダオブジェクトのタイプ

次の値に固定: folder

object array本文内省略可能

ワークフローで完了する必要がある設定可能な結果。

string本文内条件付きで必須
"17363629"

特定の結果のID

object本文内

ワークフローの結果の影響を受けたコラボレータのリストを取得します。

string本文内省略可能
"variable"

コラボレータオブジェクトタイプ。

次の値に固定: variable

string本文内省略可能
"user_list"

コラボレータオブジェクトの変数タイプ。

次の値に固定: user_list

object array本文内省略可能

ユーザーIDのリスト。

string本文内条件付きで必須
"636281"

ユーザーのID。

string本文内条件付きで必須
"user"

オブジェクトタイプ。

次の値に固定: user

操作をすべての担当者が完了する必要があるか、一人でも完了すればよいかを決定します。

string本文内省略可能
"variable"

完了ルールオブジェクトタイプ。

次の値に固定: variable

string本文内省略可能
"task_completion_rule"

完了ルールオブジェクトの変数タイプ。

次の値に固定: task_completion_rule

string本文内省略可能
"all_assignees"

完了ルールの変数値。

次の値のいずれか1つ: all_assignees,any_assignees

特定のコラボレータの役割がファイルに関するワークフローの結果の影響を受けるかどうかを決定します。

string本文内省略可能
"variable"

役割オブジェクトタイプ。

次の値に固定: variable

string本文内省略可能
"collaborator_role"

オブジェクトで使用される変数タイプ。

次の値に固定: collaborator_role

string本文内省略可能
"editor"

役割パラメータに使用できる変数値。

次の値のいずれか1つ: editor,viewer,previewer,uploader,previewer uploader,viewer uploader,co-owner

object本文内

特定のコラボレータの役割がワークフローの結果の影響を受けるかどうかを決定します。

string本文内省略可能
"variable"

役割オブジェクトタイプ。

次の値に固定: variable

string本文内省略可能
"collaborator_role"

オブジェクトで使用される変数タイプ。

次の値に固定: collaborator_role

string本文内省略可能
"editor"

役割パラメータに使用できる変数値。

次の値のいずれか1つ: editor,viewer,previewer,uploader,previewer uploader,viewer uploader,co-owner

タスクのワークフローの結果の影響を受けたコラボレータのリストを取得します。

string本文内省略可能
"variable"

コラボレータオブジェクトタイプ。

次の値に固定: variable

string本文内省略可能
"user_list"

コラボレータオブジェクトの変数タイプ。

次の値に固定: user_list

object array本文内省略可能

ユーザーIDのリスト。

string本文内条件付きで必須
"636281"

ユーザーのID。

string本文内条件付きで必須
"user"

オブジェクトタイプ。

次の値に固定: user

レスポンス

none

ワークフローを開始します。

パラメータが不足しているか無効の場合はエラーを返します。

  • ワークフローが有効でない場合はworkflow_is_not_enabled
  • 指定されたフォルダIDに対してワークフローが有効でない場合はworkflow_not_active_on_provided_folder
  • 指定されたパラメータが予期されたパラメータと一致しない場合はparameters_provided_do_not_match_target_outcome

権限が不足している場合にエラーを返します。

  • ユーザーにファイルまたはフォルダへのアクセス権限がない場合はinsufficient_access
  • ユーザーにRelay全体へのアクセス権限がない場合はmissing_relay_full_access

ワークフローが見つからない場合、または認証済みユーザーがワークフローにアクセスできない場合はエラーを返します。

  • ワークフローが見つからない場合はworkflow_not_found
  • フローが手動開始フローでない場合はflow_missing_or_inaccessible

予期しないクライアントエラー。

post
リクエスト本文に基づいてワークフローを開始
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X POST "https://api.box.com/2.0/workflows/42037322/start" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -d '{
       "type": "workflow_parameters",
       "flow": {
        "id": "8937625",
        "type": "flow"
       },
       "files": [{
          "type": "file",
          "id": "389047572"
        },
        {
          "type": "file",
          "id": "389047578"
        }],
       "folder": {
         "id": "2233212",
         "type": "folder"
       },
       "outcomes": [
          {
            "id": "34895783",
            "type": "outcome",
            "task_collaborators": {
                "type": "variable",
                "variable_type": "user_list",
                "variable_value": [{ "type": "user", "id": "890273642" }]
            },
            "completion_rule": {
                "type": "variable",
                "variable_type": "task_completion_rule",
                "variable_value": "all_assignees"
            },
            "file_collaborator_role": {
                "type": "variable",
                "variable_type": "collaborator_role",
                "variable_value": "viewer"
            }
          }
        ]
     }'
TypeScript Gen
await adminClient.workflows.startWorkflow(workflowToRun.id!, {
  type: 'workflow_parameters' as StartWorkflowRequestBodyTypeField,
  flow: {
    type: 'flow',
    id: workflowToRun.flows![0].id!,
  } satisfies StartWorkflowRequestBodyFlowField,
  files: [
    {
      type: 'file' as StartWorkflowRequestBodyFilesTypeField,
      id: workflowFileId,
    } satisfies StartWorkflowRequestBodyFilesField,
  ],
  folder: {
    type: 'folder' as StartWorkflowRequestBodyFolderTypeField,
    id: workflowFolderId,
  } satisfies StartWorkflowRequestBodyFolderField,
} satisfies StartWorkflowRequestBody);
Python Gen
admin_client.workflows.start_workflow(
    workflow_to_run.id,
    StartWorkflowFlow(type="flow", id=workflow_to_run.flows[0].id),
    [
        StartWorkflowFiles(
            type=StartWorkflowFilesTypeField.FILE.value, id=workflow_file_id
        )
    ],
    StartWorkflowFolder(
        type=StartWorkflowFolderTypeField.FOLDER.value, id=workflow_folder_id
    ),
    type=StartWorkflowType.WORKFLOW_PARAMETERS.value,
)
.NET Gen
await adminClient.Workflows.StartWorkflowAsync(workflowId: NullableUtils.Unwrap(workflowToRun.Id), requestBody: new StartWorkflowRequestBody(flow: new StartWorkflowRequestBodyFlowField() { Type = "flow", Id = NullableUtils.Unwrap(NullableUtils.Unwrap(workflowToRun.Flows)[0].Id) }, files: Array.AsReadOnly(new [] {new StartWorkflowRequestBodyFilesField() { Type = StartWorkflowRequestBodyFilesTypeField.File, Id = workflowFileId }}), folder: new StartWorkflowRequestBodyFolderField() { Type = StartWorkflowRequestBodyFolderTypeField.Folder, Id = workflowFolderId }) { Type = StartWorkflowRequestBodyTypeField.WorkflowParameters });