# Custom task input_data


> Configure the custom job_type with exact prompt, inputFields, outputField, and supported product input_data field names.


Canonical URL: https://www.copyhero.app/help/technical-reference/task-input-data/custom

## Purpose [#purpose]

A Custom task gives selected product fields to a prompt and writes the generated
result to one selected field. Set `job_type` to `custom`.

## Valid JSON example [#valid-json-example]

```json
{
  "prompt": "Write a concise search description from the title, description, and tags.",
  "inputFields": ["title", "description", "tags"],
  "outputField": "seoDescription"
}
```

## JSON fields [#json-fields]

| Field         | Type         | Required | Values and meaning                                                                                                              |
| ------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`      | string       | Yes      | Non-empty instructions for the transformation. Refer to the selected inputs by their meaning, not by guessing unavailable data. |
| `inputFields` | string array | Yes      | One or more supported fields to provide as prompt context.                                                                      |
| `outputField` | string       | Yes      | One supported field where CopyHero writes the generated result.                                                                 |

Supported `inputFields` values are:

* `title`
* `description`
* `vendor`
* `productType`
* `tags`
* `variants`
* `images`
* `seoTitle`
* `seoDescription`
* `extra`

Supported `outputField` values are `title`, `description`, `vendor`,
`productType`, `tags`, `seoTitle`, `seoDescription`, and `extra`.

`extra` is workflow-internal working state. It can pass information to later
Custom or Agent steps, but it is not a Shopify product field and is not synced
to Shopify.

## Validation and run-time behavior [#validation-and-run-time-behavior]

* The editor requires a non-empty prompt, at least one input field, and one
  output field.
* Use `description`, not `descriptionHtml`, in this public `input_data` format.
* The task reads only the selected inputs. Selecting fewer relevant fields keeps
  the prompt context focused.
* Writing replaces the chosen output value for the following workflow steps.
  Do not overwrite a value that a later step still needs in its original form.
* A Custom task produces model-generated output. Review important content before
  publishing it.

## UI guide [#ui-guide]

Use [Create a Custom task](/help/tasks/custom-task) and
[Product fields for Custom tasks](/help/tasks/product-fields) for the
corresponding fields and steps in **Tasks**.