# 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**.