--- title: Create a task seotitle: Create a task for processing data in InfluxDB description: > Create a data processing task in InfluxDB using the InfluxDB UI or the `influx` CLI. menu: influxdb_2_2: name: Create a task parent: Manage tasks weight: 201 related: - /influxdb/v2.2/reference/cli/influx/task/create --- InfluxDB provides multiple ways to create tasks both in the InfluxDB user interface (UI) and the `influx` command line interface (CLI). _Before creating a task, review the [basics criteria for writing a task](/influxdb/v2.2/process-data/get-started)._ - [InfluxDB UI](#create-a-task-in-the-influxdb-ui) - [`influx` CLI](#create-a-task-using-the-influx-cli) - [InfluxDB API](#create-a-task-using-the-influxdb-api) ## Create a task in the InfluxDB UI The InfluxDB UI provides multiple ways to create a task: - [Create a task from the Data Explorer](#create-a-task-from-the-data-explorer) - [Create a task in the Task UI](#create-a-task-in-the-task-ui) - [Import a task](#import-a-task) - [Create a task from a template](#create-a-task-from-a-template) - [Clone a task](#clone-a-task) ### Create a task from the Data Explorer 1. In the navigation menu on the left, select **Data Explorer**. {{< nav-icon "data-explorer" >}} 2. Build a query and click **Save As** in the upper right. 3. Select the **{{< caps >}}Task{{< /caps >}}** heading. 4. Specify the task options. See [Task options](/influxdb/v2.2/process-data/task-options) for detailed information about each option. 5. Click **{{< caps >}}Save as Task{{< /caps >}}**. ### Create a task in the Task UI 1. In the navigation menu on the left, select **Tasks**. {{< nav-icon "tasks" >}} 2. Click **{{< caps >}}{{< icon "plus" >}} Create Task{{< /caps >}}** in the upper right. 3. In the left panel, specify the task options. See [Task options](/influxdb/v2.2/process-data/task-options) for detailed information about each option. 4. In the right panel, enter your task script. {{% note %}} ##### Leave out the option tasks assignment When creating a _new_ task in the InfluxDB Task UI, leave the code editor empty. When you save the task, the Task UI uses the [task options](/influxdb/v2.2/process-data/task-options/) you specify in the **Task options** form to populate `option task = {task_options}` for you. When you edit the saved task, you'll see the injected `option task = {task_options}`. {{% /note %}} 7. Click **Save** in the upper right. ### Import a task 1. In the navigation menu on the left, select **Tasks**. {{< nav-icon "tasks" >}} 2. Click **{{< caps >}}{{< icon "plus" >}} Create Task{{< /caps >}}** in the upper right. 3. In the left panel, specify the task options. See [Task options](/influxdb/v2.2/process-data/task-options) for detailed information about each option. 4. Paste a raw Flux task in the code editor to the right of the task options fields. 5. Click **{{< caps >}}Save{{< /caps >}}** in the upper right. ### Create a task from a template 1. In the navigation menu on the left, select **Settings** > **Templates**. {{< nav-icon "Settings" >}} 2. Find the template you want to use and click its **Resources** list to expand the list of resources. 3. In the **Resources** list, click the task you want to use. ### Clone a task 1. In the navigation menu on the left, select **Tasks**. {{< nav-icon "tasks" >}} 2. Find the task you would like to clone and click the **{{< icon "settings" >}}** icon located far right of the task name. 4. Click **Clone**. ## Create a task using the influx CLI Use the `influx task create` command to create a new task. It accepts either a file path or raw Flux. ###### Create a task using a file ```sh # Syntax influx task create --org -f # Example influx task create --org my-org -f /tasks/cq-mean-1h.flux ``` ###### Create a task using raw Flux ```sh influx task create --org my-org - # to open stdin pipe option task = { name: "task-name", every: 6h } # ... Task script ... # to close the pipe and submit the command ``` ## Create a task using the InfluxDB API Send a request using the **POST** method to the `/api/v2/tasks` InfluxDB API endpoint. Provide the following in your API request: ##### Request headers - **Content-Type**: application/json - **Authorization**: Token *`INFLUX_API_TOKEN`* ##### Request body JSON object with the following fields: - **flux** : raw Flux task string - **orgID**: your [InfluxDB organization ID](/influxdb/v2.2/organizations/view-orgs/#view-your-organization-id) - **status**: task status ("active" or "inactive") - **description**: task description ```sh curl --request POST 'https://us-west-2-1.aws.cloud2.influxdata.com/api/v2/tasks' \ --header 'Content-Type: application/json' \ --header 'Authorization: Token INFLUX_API_TOKEN' \ --data-raw '{ "flux": "option task = {name: \"CPU Total 1 Hour New\", every: 1h}\n\nfrom(bucket: \"telegraf\")\n\t|> range(start: -1h)\n\t|> filter(fn: (r) =>\n\t\t(r._measurement == \"cpu\"))\n\t|> filter(fn: (r) =>\n\t\t(r._field == \"usage_system\"))\n\t|> filter(fn: (r) =>\n\t\t(r.cpu == \"cpu-total\"))\n\t|> aggregateWindow(every: 1h, fn: max)\n\t|> to(bucket: \"cpu_usage_user_total_1h\", org: \"\")", "orgID": "INFLUX_ORG_ID", "status": "active", "description": "This task downsamples CPU data every hour" }' ```