--- title: "createWorkflow" slug: "analytics-dataflow-createworkflow" updated: 2026-10-08T04:22:37Z published: 2026-10-08T04:22:37Z canonical: "api.ncloud-docs.com/analytics-dataflow-createworkflow" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # createWorkflow Available in VPC Create a workflow. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/workflows | ### Request headers For information about the request headers common to all Data Flow APIs, see [Data Flow request headers](/docs/en/analytics-dataflow#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | String | Required | Workflow name - Enter 3-100 characters by combining English letters, numbers, and special characters "_" and "-". - It must start with an English letter or "-". | | `nodes` | Array | Required | Node information: [nodes](/docs/en/analytics-dataflow-createworkflow#nodes1) | #### `nodes` The following describes `nodes`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | String | Required | Node ID - `triggerId` \| `jobId` - `triggerId`: See [getJobs](/docs/en/analytics-dataflow-getjobs) (if `type` is `TRIGGER`). - `jobId`: See [getTriggers](/docs/en/analytics-dataflow-gettriggers) (if `type` is `JOB`). | | `name` | String | Required | Node name - Trigger name \| job name - Trigger name: See [getTriggers](/docs/en/analytics-dataflow-gettriggers) (if `type` is `TRIGGER`). - Job name: See [getJobs](/docs/en/analytics-dataflow-getjobs) (if `type` is `JOB`). | | `type` | String | Required | Node type - `TRIGGER` \| `JOB` | | `parentNodeIds` | Array | Required | Parent node ID list - Enter the ID of the trigger node in the job node object. - Maintain empty values for trigger node objects. | | `triggerRule` | String | Optional | Trigger node execution option information - `RECURRING` \| `ONE_TIME` \| `NONE` - `RECURRING`: Run on a cycle. - `ONE_TIME`: Run on a specific date. - `NONE`: No execution option. | | `jobCondition` | Object | Required | Job execution option information | | `jobCondition.numWorker` | Integer | Optional | Number of workers - 2-10 | | `jobCondition.timeout` | Integer | Optional | Execution timeout (minute) - 1-1440 | | `jobCondition.nrn` | String | Required | NAVER Cloud Platform resource identification value for job | | `jobCondition.scriptPath` | String | Required | Job execution script storage path | | `jobCondition.logPath` | String | Required | Job execution history storage path | ### Request example The request example is as follows: ``` curl --location --request POST 'https://dataflow.apigw.ntruss.com/api/v1/workflows' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --data '{ "name": "workflow001", "nodes": [ { "id": "gqigvH******", "name": "job001", "type": "JOB", "parentNodeIds": [ "d125za******" ], "jobCondition": { "numWorker": 3, "timeout": 360, "nrn": "nrn:PUB:IAM::25****4:Role/****-a9d6-****-a85d-****", "scriptPath": "dataflow-33-****/scripts/", "logPath": "dataflow-33-****/sparkHistoryLogs/" } }, { "id": "d125za******", "name": "trigger001", "type": "TRIGGER", "parentNodeIds": [], "triggerRule": "RECURRING" } ] }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `workflowId` | String | - | Workflow ID | | `name` | String | - | Workflow name | | `nodes` | Array | - | Node information: [nodes](/docs/en/analytics-dataflow-createworkflow#nodes2) | | `createdDate` | String | - | Workflow creation date and time - ISO 8601 format (including UTC+9) | | `updatedDate` | String | - | Workflow modification date and time - ISO 8601 format (including UTC+9) | #### `nodes` The following describes `nodes`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | String | - | Node ID - Display `triggerId` or `jobId` according to `type`. | | `name` | String | - | Node name - Display the trigger name or job name according to `type`. | | `type` | String | - | Node type - `TRIGGER` \| `JOB` | | `parentNodeIds` | Array | - | Parent node ID list - Display the ID of the trigger node in the job node object. - Display an empty value for trigger node objects. | | `triggerRule` | String | - | Trigger node execution option information - `RECURRING` \| `ONE_TIME` \| `NONE` - `RECURRING`: Run on a cycle. - `ONE_TIME`: Run on a specific date. - `NONE`: No execution option. | | `isValid` | Boolean | - | Node deletion status (node availability) - `true` \| `false` - `true`: Not deleted (available) - `false`: Deleted (available) | | `jobCondition` | Object | - | Job execution option information | | `jobCondition.numWorker` | Integer | - | Number of workers - 2-10 | | `jobCondition.timeout` | Integer | - | Execution timeout (minute) - 1-1440 | | `jobCondition.nrn` | String | - | NAVER Cloud Platform resource identification value for job | | `jobCondition.scriptPath` | String | - | Job execution script storage path | | `jobCondition.logPath` | String | - | Job execution history storage path | ### Response status codes For information about the response status codes common to all Data Flow APIs, see [Data Flow response status codes](/docs/en/analytics-dataflow#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "workflowId" : "3tfNLP******", "name" : "workflow001", "nodes" : [ { "id" : "gqigvH******", "name" : "job001", "type" : "JOB", "parentNodeIds" : [ "8bjF7E******" ], "isValid" : true, "jobCondition" : { "numWorker" : 3, "timeout" : 360, "nrn" : "nrn:PUB:IAM::*******:Role/********-0496-11f0-baf6-246e96591a38", "scriptPath" : "dataflow-2706412-****/scripts/", "logPath" : "dataflow-2706412-****/sparkHistoryLogs/" } }, { "id" : "8bjF7E******", "name" : "trigger001", "type" : "TRIGGER", "parentNodeIds" : [ ], "triggerRule" : "RECURRING", "isValid" : true } ], "createdDate" : "2025-03-24T14:46:24+09:00", "updatedDate" : "2025-03-24T14:46:24+09:00" } ```